[{"data":1,"prerenderedAt":569},["ShallowReactive",2],{"navigation_docs":3,"-platform-integrations":151,"-platform-integrations-surround":564},[4,15,75,136],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":14},"Getting Started","i-lucide-rocket","/getting-started","1.getting-started",[10],{"title":11,"path":12,"stem":13,"icon":6},"Quick Start","/getting-started/quick-start","1.getting-started/1.quick-start",false,{"title":16,"icon":17,"path":18,"stem":19,"children":20,"page":14},"Guides","i-lucide-book-open","/guides","2.guides",[21,26,31,36,41,46,51,56,61,66,71],{"title":22,"path":23,"stem":24,"icon":25},"Deployment","/guides/deployment","2.guides/1.deployment","i-lucide-server",{"title":27,"path":28,"stem":29,"icon":30},"Get Help","/guides/get-help","2.guides/10.get-help","i-lucide-message-circle",{"title":32,"path":33,"stem":34,"icon":35},"Glossary","/guides/glossary","2.guides/11.glossary","i-lucide-book-marked",{"title":37,"path":38,"stem":39,"icon":40},"Concepts","/guides/concepts","2.guides/2.concepts","i-lucide-list",{"title":42,"path":43,"stem":44,"icon":45},"Roadmap","/guides/roadmap","2.guides/3.roadmap","i-lucide-map",{"title":47,"path":48,"stem":49,"icon":50},"Contribution Guide","/guides/contribution-guide","2.guides/4.contribution-guide","i-lucide-git-pull-request",{"title":52,"path":53,"stem":54,"icon":55},"Using the Dashboard","/guides/using-the-dashboard","2.guides/5.using-the-dashboard","i-lucide-layout-dashboard",{"title":57,"path":58,"stem":59,"icon":60},"Privacy and Data","/guides/privacy-and-data","2.guides/6.privacy-and-data","i-lucide-shield",{"title":62,"path":63,"stem":64,"icon":65},"Changelog","/guides/changelog","2.guides/7.changelog","i-lucide-history",{"title":67,"path":68,"stem":69,"icon":70},"Limits and Quotas","/guides/limits-and-quotas","2.guides/8.limits-and-quotas","i-lucide-gauge",{"title":72,"path":73,"stem":74,"icon":25},"Self-Hosting","/guides/self-hosting","2.guides/9.self-hosting",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":14},"Platform","i-lucide-layers","/platform","3.platform",[81,86,91,96,100,105,110,114,119,123,128,132],{"title":82,"path":83,"stem":84,"icon":85},"Agent OS","/platform/agent","3.platform/1.agent","i-lucide-cpu",{"title":87,"path":88,"stem":89,"icon":90},"Store API Contract (for Agent OS)","/platform/store-api","3.platform/10.store-api","i-lucide-code-2",{"title":92,"path":93,"stem":94,"icon":95},"CLI Reference","/platform/cli-reference","3.platform/11.cli-reference","i-lucide-terminal",{"title":97,"path":98,"stem":99,"icon":25},"MCP Server Integration (optional)","/platform/mcp-server-integration","3.platform/12.mcp-server-integration",{"title":101,"path":102,"stem":103,"icon":104},"Channels (Telegram, Slack, Discord, Signal, Viber)","/platform/integrations","3.platform/2.integrations","i-lucide-plug",{"title":106,"path":107,"stem":108,"icon":109},"Skills Store (optional)","/platform/store","3.platform/3.store","i-lucide-store",{"title":111,"path":112,"stem":113,"icon":17},"Skills Authoring","/platform/skills-authoring","3.platform/4.skills-authoring",{"title":115,"path":116,"stem":117,"icon":118},"Security","/platform/security","3.platform/5.security","i-lucide-shield-check",{"title":120,"path":121,"stem":122,"icon":90},"Agent API Reference","/platform/agent-api","3.platform/6.agent-api",{"title":124,"path":125,"stem":126,"icon":127},"Agent Configuration","/platform/agent-config","3.platform/7.agent-config","i-lucide-settings",{"title":129,"path":130,"stem":131,"icon":127},"Channels Configuration","/platform/integrations-config","3.platform/8.integrations-config",{"title":133,"path":134,"stem":135,"icon":127},"Store Configuration (optional)","/platform/store-config","3.platform/9.store-config",{"title":137,"icon":138,"path":139,"stem":140,"children":141,"page":14},"Troubleshooting","i-lucide-wrench","/troubleshooting","4.troubleshooting",[142,146],{"title":143,"path":144,"stem":145,"icon":138},"Common Issues","/troubleshooting/common-issues","4.troubleshooting/1.common-issues",{"title":147,"path":148,"stem":149,"icon":150},"FAQ","/troubleshooting/faq","4.troubleshooting/2.faq","i-lucide-help-circle",{"id":152,"title":101,"body":153,"description":557,"extension":558,"links":559,"meta":560,"navigation":561,"path":102,"seo":562,"stem":103,"__hash__":563},"docs/3.platform/2.integrations.md",{"type":154,"value":155,"toc":546},"minimark",[156,161,169,208,211,256,275,278,326,329,370,373,413,416,454,457,500,504,515,540],[157,158,160],"h2",{"id":159},"overview","Overview",[162,163,164,168],"p",{},[165,166,167],"strong",{},"Channels"," let users talk to agents from messaging platforms. Agent OS supports:",[170,171,172,179,185,191,202],"ul",{},[173,174,175,178],"li",{},[165,176,177],{},"Telegram"," — Bot token + webhook or polling; default agent in config.",[173,180,181,184],{},[165,182,183],{},"Slack"," — Bot token + signing secret; Events API or slash command → webhook.",[173,186,187,190],{},[165,188,189],{},"Discord"," — Bot token + public key; interactions webhook.",[173,192,193,196,197,201],{},[165,194,195],{},"Signal"," — Bridge pattern: bridge POSTs to our webhook; we reply via bridge ",[198,199,200],"code",{},"/send",".",[173,203,204,207],{},[165,205,206],{},"Viber"," — Bot auth token; webhook + set_webhook.",[162,209,210],{},"Each channel has:",[170,212,213,224,241],{},[173,214,215,216,219,220,223],{},"A ",[165,217,218],{},"webhook endpoint"," (e.g. ",[198,221,222],{},"POST /api/channels/telegram/webhook",") that receives incoming messages or events.",[173,225,226,229,230,233,234,237,238,201],{},[165,227,228],{},"Config"," in ",[198,231,232],{},"~/.agent-os/config.json",": bot token, signing secret or public key if needed, and ",[165,235,236],{},"default agent id",". Editable in the dashboard under ",[165,239,240],{},"Settings → Channels",[173,242,243,244,247,248,251,252,255],{},"Optional ",[165,245,246],{},"status"," endpoint (e.g. ",[198,249,250],{},"GET /api/channels/telegram/status",") and ",[165,253,254],{},"set-webhook"," (Telegram, Viber) to register the webhook URL with the platform.",[162,257,258,259,262,263,266,267,270,271,274],{},"Flow: ",[165,260,261],{},"incoming message"," → resolve ",[165,264,265],{},"default agent"," for that channel → ",[165,268,269],{},"run agent"," with message text and conversation context → ",[165,272,273],{},"send reply"," back via the channel’s API.",[157,276,177],{"id":277},"telegram",[170,279,280,294,306,316],{},[173,281,282,285,286,289,290,293],{},[165,283,284],{},"Config:"," ",[198,287,288],{},"telegram_bot_token",", ",[198,291,292],{},"telegram_default_agent_id"," in config (or Settings → Channels → Telegram).",[173,295,296,285,299,301,302,305],{},[165,297,298],{},"Webhook:",[198,300,222],{},". Set the webhook URL with your bot (e.g. ",[198,303,304],{},"https://your-domain.com/api/channels/telegram/webhook","). Requires HTTPS.",[173,307,308,311,312,315],{},[165,309,310],{},"Polling:"," If webhook is not set, the server can use long polling (see ",[198,313,314],{},"startTelegramPolling"," in the repo).",[173,317,318,321,322,325],{},[165,319,320],{},"Docs:"," See ",[198,323,324],{},"doc/TELEGRAM_SETUP.md"," in the Agent OS repo for step-by-step setup.",[157,327,183],{"id":328},"slack",[170,330,331,344,354,362],{},[173,332,333,285,335,289,338,289,341,201],{},[165,334,284],{},[198,336,337],{},"slack_bot_token",[198,339,340],{},"slack_signing_secret",[198,342,343],{},"slack_default_agent_id",[173,345,346,285,348,351,352,201],{},[165,347,298],{},[198,349,350],{},"POST /api/channels/slack/webhook",". Configure your Slack app to send events or slash commands to this URL; verify signature with ",[198,353,340],{},[173,355,356,285,359,201],{},[165,357,358],{},"Status:",[198,360,361],{},"GET /api/channels/slack/status",[173,363,364,321,366,369],{},[165,365,320],{},[198,367,368],{},"doc/SLACK_SETUP.md"," in the repo.",[157,371,189],{"id":372},"discord",[170,374,375,388,399,406],{},[173,376,377,285,379,289,382,289,385,201],{},[165,378,284],{},[198,380,381],{},"discord_bot_token",[198,383,384],{},"discord_public_key",[198,386,387],{},"discord_default_agent_id",[173,389,390,285,392,395,396,398],{},[165,391,298],{},[198,393,394],{},"POST /api/channels/discord/webhook",". Discord sends interaction payloads; the server verifies the signature with ",[198,397,384],{}," and responds (e.g. slash command reply).",[173,400,401,285,403,201],{},[165,402,358],{},[198,404,405],{},"GET /api/channels/discord/status",[173,407,408,321,410,369],{},[165,409,320],{},[198,411,412],{},"doc/DISCORD_SETUP.md",[157,414,195],{"id":415},"signal",[170,417,418,433,440,447],{},[173,419,420,285,422,289,425,428,429,432],{},[165,421,284],{},[198,423,424],{},"signal_bridge_url",[198,426,427],{},"signal_default_agent_id",". The ",[165,430,431],{},"bridge"," is a separate service that receives Signal messages and POSTs them to our webhook; we reply by POSTing to the bridge’s send endpoint.",[173,434,435,285,437,201],{},[165,436,298],{},[198,438,439],{},"POST /api/channels/signal/webhook",[173,441,442,285,444,201],{},[165,443,358],{},[198,445,446],{},"GET /api/channels/signal/status",[173,448,449,321,451,369],{},[165,450,320],{},[198,452,453],{},"doc/SIGNAL_SETUP.md",[157,455,206],{"id":456},"viber",[170,458,459,469,477,486,493],{},[173,460,461,285,463,289,466,201],{},[165,462,284],{},[198,464,465],{},"viber_auth_token",[198,467,468],{},"viber_default_agent_id",[173,470,471,285,473,476],{},[165,472,298],{},[198,474,475],{},"POST /api/channels/viber/webhook",". Viber requires HTTPS for the webhook.",[173,478,479,285,482,485],{},[165,480,481],{},"Set webhook:",[198,483,484],{},"POST /api/channels/viber/set-webhook"," to register the URL with Viber.",[173,487,488,285,490,201],{},[165,489,358],{},[198,491,492],{},"GET /api/channels/viber/status",[173,494,495,321,497,369],{},[165,496,320],{},[198,498,499],{},"doc/VIBER_SETUP.md",[157,501,503],{"id":502},"optional-oauth-integrations-service","Optional: OAuth / Integrations service",[162,505,506,507,510,511,514],{},"Agent OS itself does not include a separate ",[165,508,509],{},"OAuth integrations server",". Skills that need ",[165,512,513],{},"OAuth tokens"," (e.g. Gmail, GitHub) can:",[170,516,517,533],{},[173,518,519,520,523,524,527,528,532],{},"Use a ",[165,521,522],{},"Portal / Integrations"," backend: you run or use an OAuth service; skills use a runtime-supplied base URL (e.g. ",[198,525,526],{},"{{base}}",") in tool definitions so the deployer points to their own portal. See ",[529,530,531],"a",{"href":112},"Skills authoring"," and the workspace rule: integration base URLs are runtime config, not hardcoded in skills.",[173,534,535,536,539],{},"Store credentials in ",[165,537,538],{},"skill config"," (e.g. user pastes a token or refresh token into the skill’s config in the dashboard).",[162,541,542,543,545],{},"Channel credentials (Telegram, Slack, etc.) are stored only in Agent OS config (",[198,544,232],{},"), not in a separate integrations service.",{"title":547,"searchDepth":548,"depth":548,"links":549},"",2,[550,551,552,553,554,555,556],{"id":159,"depth":548,"text":160},{"id":277,"depth":548,"text":177},{"id":328,"depth":548,"text":183},{"id":372,"depth":548,"text":189},{"id":415,"depth":548,"text":195},{"id":456,"depth":548,"text":206},{"id":502,"depth":548,"text":503},"Talk to Agent OS agents via messaging channels — webhooks, config, and default agent.","md",null,{},{"icon":104},{"title":101,"description":557},"P8oiJYOe8aLgl96tIzJ3TFwcgIZ6k_XexkfqF62gI1w",[565,567],{"title":97,"path":98,"stem":99,"description":566,"icon":25,"children":-1},"MCP (Model Context Protocol) servers can expose extra tools to the agent. Support depends on the Agent OS build.",{"title":106,"path":107,"stem":108,"description":568,"icon":109,"children":-1},"Optional skill store and registry for Agent OS — browse and install skills by slug.",1773850667751]