Local Model Plus Outbound Delivery
Use this playbook when you want local or self-hosted inference but only need governed outbound delivery instead of a reply-loop service runtime. This page is intentionally narrow:- the model runtime stays local or self-hosted
- delivery stays outbound-only
- nothing here is documented as if it joins the runtime-backed gateway owner contract
When This Is The Right Playbook
- local control over the model runtime matters more than hosted convenience
- no inbound or reply-loop channel is required on day one
- the team wants notifications, reports, or alerts delivered outward without overclaiming runtime support
Use A Different Playbook If
| If you actually need… | Go here instead |
|---|---|
| a hosted provider plus a team-chat runtime | Volcengine Plus Feishu Or Lark or WeCom Rollout |
| a dedicated coding lane plus a lightweight bot surface | BytePlus Coding Plus Telegram |
| provider-only local setup without delivery guidance | Provider Guides and Provider Recipes |
Step 1: Bring Up The Local Provider
Ollama example:- if the server effectively serves one production model, pin
modelexplicitly instead of forcing catalog discovery drama
Step 2: Add One Outbound Surface
Webhook example:Step 3: Keep The Boundary Truthful
Rules that matter:- webhook, email, Slack, Discord, Teams, and similar surfaces are outbound-only
- they do not join the same reply-loop owner model as Feishu / Lark, Telegram, Matrix, or WeCom
- do not route this setup description toward
gateway runas if outbound-only delivery became a supervised runtime
Step 4: Adjust The Outbound HTTP Boundary When Needed
HTTP-backed outbound delivery blocks private or special-use hosts by default. If you intentionally target a private bridge or loopback service, widen that boundary explicitly:Variants
Other local or self-hosted providers fit the same shape:lm_studiollamacppvllmsglang
Troubleshooting
| Symptom | What to check |
|---|---|
ask is unstable before delivery is even involved | fix the local provider first; do not start with the outbound surface |
| a local webhook target is rejected | add [outbound_http] allow_private_hosts = true only if the private target is intentional |
| the setup starts being described as a channel runtime | correct the docs or runbook wording; this path is outbound-only |
Continue Reading
- Continue to Common Setups for the setup hub.
- Continue to Provider Guides for the full built-in provider matrix.
- Continue to Provider Recipes for the broader local and self-hosted provider recipe set.
- Continue to Channel Guides for the full shipped channel matrix.
- Continue to Channel Recipes for the broader outbound-only delivery recipe set.