@symerian/symi 3.0.21 → 3.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (688) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/package.json +1 -1
  4. package/docs/.i18n/README.md +0 -31
  5. package/docs/.i18n/glossary.ja-JP.json +0 -14
  6. package/docs/.i18n/glossary.zh-CN.json +0 -210
  7. package/docs/.i18n/ja-JP.tm.jsonl +0 -0
  8. package/docs/.i18n/zh-CN.tm.jsonl +0 -1303
  9. package/docs/CNAME +0 -1
  10. package/docs/assets/install-script.svg +0 -1
  11. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  12. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  13. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  14. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  15. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  16. package/docs/assets/pixel-symi.svg +0 -60
  17. package/docs/assets/showcase/agents-ui.jpg +0 -0
  18. package/docs/assets/showcase/bambu-cli.png +0 -0
  19. package/docs/assets/showcase/codexmonitor.png +0 -0
  20. package/docs/assets/showcase/gohome-grafana.png +0 -0
  21. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  22. package/docs/assets/showcase/oura-health.png +0 -0
  23. package/docs/assets/showcase/padel-cli.svg +0 -11
  24. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  25. package/docs/assets/showcase/papla-tts.jpg +0 -0
  26. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  27. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  28. package/docs/assets/showcase/roborock-status.svg +0 -13
  29. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  30. package/docs/assets/showcase/snag.png +0 -0
  31. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  32. package/docs/assets/showcase/wienerlinien.png +0 -0
  33. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  34. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  35. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  36. package/docs/assets/sponsors/blacksmith.svg +0 -14
  37. package/docs/assets/sponsors/openai.svg +0 -3
  38. package/docs/assets/symi-logo-text-dark.png +0 -0
  39. package/docs/assets/symi-logo-text.png +0 -0
  40. package/docs/automation/auth-monitoring.md +0 -44
  41. package/docs/automation/cron-jobs.md +0 -540
  42. package/docs/automation/cron-vs-heartbeat.md +0 -286
  43. package/docs/automation/gmail-pubsub.md +0 -256
  44. package/docs/automation/hooks.md +0 -998
  45. package/docs/automation/poll.md +0 -61
  46. package/docs/automation/troubleshooting.md +0 -122
  47. package/docs/automation/webhook.md +0 -213
  48. package/docs/brave-search.md +0 -41
  49. package/docs/capabilities.md +0 -151
  50. package/docs/channels/bluebubbles.md +0 -346
  51. package/docs/channels/broadcast-groups.md +0 -441
  52. package/docs/channels/channel-routing.md +0 -112
  53. package/docs/channels/feishu.md +0 -586
  54. package/docs/channels/googlechat.md +0 -253
  55. package/docs/channels/grammy.md +0 -31
  56. package/docs/channels/group-messages.md +0 -82
  57. package/docs/channels/groups.md +0 -364
  58. package/docs/channels/imessage.md +0 -366
  59. package/docs/channels/index.md +0 -46
  60. package/docs/channels/irc.md +0 -234
  61. package/docs/channels/line.md +0 -186
  62. package/docs/channels/location.md +0 -56
  63. package/docs/channels/matrix.md +0 -300
  64. package/docs/channels/mattermost.md +0 -158
  65. package/docs/channels/msteams.md +0 -769
  66. package/docs/channels/nextcloud-talk.md +0 -138
  67. package/docs/channels/nostr.md +0 -233
  68. package/docs/channels/pairing.md +0 -100
  69. package/docs/channels/signal.md +0 -322
  70. package/docs/channels/slack.md +0 -510
  71. package/docs/channels/telegram.md +0 -748
  72. package/docs/channels/tlon.md +0 -148
  73. package/docs/channels/troubleshooting.md +0 -110
  74. package/docs/channels/twitch.md +0 -379
  75. package/docs/channels/whatsapp.md +0 -444
  76. package/docs/channels/zalo.md +0 -192
  77. package/docs/channels/zalouser.md +0 -140
  78. package/docs/ci.md +0 -50
  79. package/docs/cli/acp.md +0 -182
  80. package/docs/cli/agent.md +0 -24
  81. package/docs/cli/agents.md +0 -75
  82. package/docs/cli/approvals.md +0 -50
  83. package/docs/cli/browser.md +0 -107
  84. package/docs/cli/channels.md +0 -73
  85. package/docs/cli/config.md +0 -50
  86. package/docs/cli/configure.md +0 -32
  87. package/docs/cli/cron.md +0 -44
  88. package/docs/cli/dashboard.md +0 -16
  89. package/docs/cli/devices.md +0 -73
  90. package/docs/cli/directory.md +0 -62
  91. package/docs/cli/dns.md +0 -23
  92. package/docs/cli/docs.md +0 -15
  93. package/docs/cli/doctor.md +0 -41
  94. package/docs/cli/gateway.md +0 -202
  95. package/docs/cli/health.md +0 -21
  96. package/docs/cli/hooks.md +0 -313
  97. package/docs/cli/index.md +0 -1029
  98. package/docs/cli/logs.md +0 -28
  99. package/docs/cli/memory.md +0 -45
  100. package/docs/cli/message.md +0 -214
  101. package/docs/cli/models.md +0 -79
  102. package/docs/cli/node.md +0 -112
  103. package/docs/cli/nodes.md +0 -73
  104. package/docs/cli/onboard.md +0 -76
  105. package/docs/cli/pairing.md +0 -21
  106. package/docs/cli/plugins.md +0 -92
  107. package/docs/cli/reset.md +0 -17
  108. package/docs/cli/sandbox.md +0 -152
  109. package/docs/cli/security.md +0 -64
  110. package/docs/cli/sessions.md +0 -16
  111. package/docs/cli/setup.md +0 -29
  112. package/docs/cli/skills.md +0 -26
  113. package/docs/cli/status.md +0 -25
  114. package/docs/cli/system.md +0 -60
  115. package/docs/cli/tui.md +0 -23
  116. package/docs/cli/uninstall.md +0 -17
  117. package/docs/cli/update.md +0 -98
  118. package/docs/cli/voicecall.md +0 -34
  119. package/docs/cli/webhooks.md +0 -25
  120. package/docs/concepts/agent-loop.md +0 -148
  121. package/docs/concepts/agent-workspace.md +0 -234
  122. package/docs/concepts/agent.md +0 -123
  123. package/docs/concepts/architecture.md +0 -135
  124. package/docs/concepts/compaction.md +0 -61
  125. package/docs/concepts/context.md +0 -161
  126. package/docs/concepts/features.md +0 -51
  127. package/docs/concepts/markdown-formatting.md +0 -128
  128. package/docs/concepts/memory.md +0 -729
  129. package/docs/concepts/messages.md +0 -153
  130. package/docs/concepts/model-failover.md +0 -149
  131. package/docs/concepts/model-providers.md +0 -424
  132. package/docs/concepts/models.md +0 -208
  133. package/docs/concepts/multi-agent.md +0 -521
  134. package/docs/concepts/oauth.md +0 -145
  135. package/docs/concepts/presence.md +0 -102
  136. package/docs/concepts/queue.md +0 -86
  137. package/docs/concepts/retry.md +0 -64
  138. package/docs/concepts/session-pruning.md +0 -123
  139. package/docs/concepts/session-tool.md +0 -213
  140. package/docs/concepts/session.md +0 -199
  141. package/docs/concepts/sessions.md +0 -10
  142. package/docs/concepts/streaming.md +0 -129
  143. package/docs/concepts/system-prompt.md +0 -128
  144. package/docs/concepts/timezone.md +0 -90
  145. package/docs/concepts/typebox.md +0 -289
  146. package/docs/concepts/typing-indicators.md +0 -68
  147. package/docs/concepts/usage-tracking.md +0 -35
  148. package/docs/date-time.md +0 -127
  149. package/docs/debug/node-issue.md +0 -85
  150. package/docs/diagnostics/flags.md +0 -91
  151. package/docs/docs.json +0 -1849
  152. package/docs/experiments/onboarding-config-protocol.md +0 -40
  153. package/docs/experiments/plans/browser-evaluate-cdp-refactor.md +0 -229
  154. package/docs/experiments/plans/cron-add-hardening.md +0 -62
  155. package/docs/experiments/plans/group-policy-hardening.md +0 -40
  156. package/docs/experiments/plans/openresponses-gateway.md +0 -123
  157. package/docs/experiments/plans/pty-process-supervision.md +0 -192
  158. package/docs/experiments/plans/session-binding-channel-agnostic.md +0 -202
  159. package/docs/experiments/plans/thread-bound-subagents.md +0 -281
  160. package/docs/experiments/proposals/model-config.md +0 -36
  161. package/docs/experiments/research/memory.md +0 -228
  162. package/docs/gateway/authentication.md +0 -162
  163. package/docs/gateway/background-process.md +0 -96
  164. package/docs/gateway/bonjour.md +0 -177
  165. package/docs/gateway/bridge-protocol.md +0 -91
  166. package/docs/gateway/cli-backends.md +0 -225
  167. package/docs/gateway/configuration-examples.md +0 -610
  168. package/docs/gateway/configuration-reference.md +0 -2465
  169. package/docs/gateway/configuration.md +0 -488
  170. package/docs/gateway/discovery.md +0 -123
  171. package/docs/gateway/doctor.md +0 -282
  172. package/docs/gateway/gateway-lock.md +0 -34
  173. package/docs/gateway/health.md +0 -35
  174. package/docs/gateway/heartbeat.md +0 -374
  175. package/docs/gateway/index.md +0 -254
  176. package/docs/gateway/local-models.md +0 -150
  177. package/docs/gateway/logging.md +0 -113
  178. package/docs/gateway/multiple-gateways.md +0 -112
  179. package/docs/gateway/network-model.md +0 -20
  180. package/docs/gateway/openai-http-api.md +0 -119
  181. package/docs/gateway/openresponses-http-api.md +0 -333
  182. package/docs/gateway/pairing.md +0 -99
  183. package/docs/gateway/protocol.md +0 -221
  184. package/docs/gateway/remote-gateway-readme.md +0 -158
  185. package/docs/gateway/remote.md +0 -131
  186. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -128
  187. package/docs/gateway/sandboxing.md +0 -203
  188. package/docs/gateway/security/index.md +0 -931
  189. package/docs/gateway/tailscale.md +0 -132
  190. package/docs/gateway/tools-invoke-http-api.md +0 -110
  191. package/docs/gateway/troubleshooting.md +0 -317
  192. package/docs/gateway/trusted-proxy-auth.md +0 -270
  193. package/docs/glass-ui-rendering-invariants.md +0 -451
  194. package/docs/help/debugging.md +0 -162
  195. package/docs/help/environment.md +0 -107
  196. package/docs/help/faq.md +0 -2846
  197. package/docs/help/index.md +0 -21
  198. package/docs/help/scripts.md +0 -28
  199. package/docs/help/testing.md +0 -385
  200. package/docs/help/troubleshooting.md +0 -264
  201. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  202. package/docs/images/feishu-step2-create-app.png +0 -0
  203. package/docs/images/feishu-step3-credentials.png +0 -0
  204. package/docs/images/feishu-step4-permissions.png +0 -0
  205. package/docs/images/feishu-step5-bot-capability.png +0 -0
  206. package/docs/images/feishu-step6-event-subscription.png +0 -0
  207. package/docs/images/groups-flow.svg +0 -52
  208. package/docs/images/mobile-ui-screenshot.png +0 -0
  209. package/docs/index.md +0 -186
  210. package/docs/install/ansible.md +0 -207
  211. package/docs/install/bun.md +0 -59
  212. package/docs/install/development-channels.md +0 -75
  213. package/docs/install/docker.md +0 -583
  214. package/docs/install/exe-dev.md +0 -126
  215. package/docs/install/fly.md +0 -472
  216. package/docs/install/gcp.md +0 -499
  217. package/docs/install/hetzner.md +0 -347
  218. package/docs/install/index.md +0 -218
  219. package/docs/install/installer.md +0 -405
  220. package/docs/install/macos-vm.md +0 -281
  221. package/docs/install/migrating.md +0 -192
  222. package/docs/install/nix.md +0 -98
  223. package/docs/install/node.md +0 -138
  224. package/docs/install/northflank.mdx +0 -49
  225. package/docs/install/podman.md +0 -108
  226. package/docs/install/railway.mdx +0 -95
  227. package/docs/install/render.mdx +0 -158
  228. package/docs/install/uninstall.md +0 -128
  229. package/docs/install/updating.md +0 -231
  230. package/docs/ja-JP/AGENTS.md +0 -37
  231. package/docs/ja-JP/index.md +0 -183
  232. package/docs/ja-JP/start/getting-started.md +0 -125
  233. package/docs/ja-JP/start/wizard.md +0 -77
  234. package/docs/logging.md +0 -350
  235. package/docs/nav-tabs-underline.js +0 -100
  236. package/docs/network.md +0 -54
  237. package/docs/nodes/audio.md +0 -133
  238. package/docs/nodes/camera.md +0 -156
  239. package/docs/nodes/images.md +0 -72
  240. package/docs/nodes/index.md +0 -342
  241. package/docs/nodes/location-command.md +0 -113
  242. package/docs/nodes/media-understanding.md +0 -379
  243. package/docs/nodes/talk.md +0 -90
  244. package/docs/nodes/troubleshooting.md +0 -112
  245. package/docs/nodes/voicewake.md +0 -65
  246. package/docs/perplexity.md +0 -80
  247. package/docs/phase-6.5-pre-flight-audit.md +0 -268
  248. package/docs/pi-dev.md +0 -70
  249. package/docs/pi.md +0 -610
  250. package/docs/platforms/android.md +0 -151
  251. package/docs/platforms/digitalocean.md +0 -265
  252. package/docs/platforms/index.md +0 -53
  253. package/docs/platforms/ios.md +0 -108
  254. package/docs/platforms/linux.md +0 -94
  255. package/docs/platforms/mac/bundled-gateway.md +0 -73
  256. package/docs/platforms/mac/canvas.md +0 -125
  257. package/docs/platforms/mac/child-process.md +0 -69
  258. package/docs/platforms/mac/dev-setup.md +0 -104
  259. package/docs/platforms/mac/health.md +0 -34
  260. package/docs/platforms/mac/icon.md +0 -31
  261. package/docs/platforms/mac/logging.md +0 -57
  262. package/docs/platforms/mac/menu-bar.md +0 -81
  263. package/docs/platforms/mac/peekaboo.md +0 -65
  264. package/docs/platforms/mac/permissions.md +0 -50
  265. package/docs/platforms/mac/release.md +0 -85
  266. package/docs/platforms/mac/remote.md +0 -84
  267. package/docs/platforms/mac/signing.md +0 -47
  268. package/docs/platforms/mac/skills.md +0 -33
  269. package/docs/platforms/mac/voice-overlay.md +0 -60
  270. package/docs/platforms/mac/voicewake.md +0 -66
  271. package/docs/platforms/mac/webchat.md +0 -43
  272. package/docs/platforms/mac/xpc.md +0 -61
  273. package/docs/platforms/macos.md +0 -204
  274. package/docs/platforms/oracle.md +0 -303
  275. package/docs/platforms/raspberry-pi.md +0 -358
  276. package/docs/platforms/windows.md +0 -159
  277. package/docs/plugins/agent-tools.md +0 -99
  278. package/docs/plugins/community.md +0 -44
  279. package/docs/plugins/manifest.md +0 -71
  280. package/docs/plugins/voice-call.md +0 -322
  281. package/docs/plugins/zalouser.md +0 -81
  282. package/docs/prose.md +0 -134
  283. package/docs/providers/anthropic.md +0 -174
  284. package/docs/providers/bedrock.md +0 -176
  285. package/docs/providers/claude-max-api-proxy.md +0 -148
  286. package/docs/providers/cloudflare-ai-gateway.md +0 -71
  287. package/docs/providers/deepgram.md +0 -93
  288. package/docs/providers/github-copilot.md +0 -72
  289. package/docs/providers/glm.md +0 -33
  290. package/docs/providers/huggingface.md +0 -209
  291. package/docs/providers/index.md +0 -67
  292. package/docs/providers/litellm.md +0 -153
  293. package/docs/providers/minimax.md +0 -208
  294. package/docs/providers/models.md +0 -52
  295. package/docs/providers/moonshot.md +0 -142
  296. package/docs/providers/nvidia.md +0 -55
  297. package/docs/providers/ollama.md +0 -250
  298. package/docs/providers/openai.md +0 -62
  299. package/docs/providers/opencode.md +0 -36
  300. package/docs/providers/openrouter.md +0 -37
  301. package/docs/providers/qianfan.md +0 -38
  302. package/docs/providers/qwen.md +0 -53
  303. package/docs/providers/synthetic.md +0 -99
  304. package/docs/providers/together.md +0 -65
  305. package/docs/providers/venice.md +0 -267
  306. package/docs/providers/vercel-ai-gateway.md +0 -50
  307. package/docs/providers/vllm.md +0 -92
  308. package/docs/providers/xiaomi.md +0 -64
  309. package/docs/providers/zai.md +0 -38
  310. package/docs/refactor/exec-host.md +0 -316
  311. package/docs/refactor/outbound-session-mirroring.md +0 -83
  312. package/docs/refactor/plugin-sdk.md +0 -214
  313. package/docs/refactor/strict-config.md +0 -93
  314. package/docs/refactor/syminet.md +0 -417
  315. package/docs/reference/AGENTS.default.md +0 -123
  316. package/docs/reference/RELEASING.md +0 -120
  317. package/docs/reference/api-usage-costs.md +0 -138
  318. package/docs/reference/credits.md +0 -28
  319. package/docs/reference/device-models.md +0 -47
  320. package/docs/reference/rpc.md +0 -43
  321. package/docs/reference/session-management-compaction.md +0 -284
  322. package/docs/reference/test.md +0 -51
  323. package/docs/reference/token-use.md +0 -136
  324. package/docs/reference/transcript-hygiene.md +0 -151
  325. package/docs/reference/wizard.md +0 -265
  326. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -89
  327. package/docs/security/README.md +0 -16
  328. package/docs/security/THREAT-MODEL-ATLAS.md +0 -600
  329. package/docs/security/formal-verification.md +0 -164
  330. package/docs/start/bootstrapping.md +0 -41
  331. package/docs/start/docs-directory.md +0 -63
  332. package/docs/start/getting-started.md +0 -135
  333. package/docs/start/hubs.md +0 -196
  334. package/docs/start/lore.md +0 -216
  335. package/docs/start/onboarding-overview.md +0 -51
  336. package/docs/start/onboarding.md +0 -81
  337. package/docs/start/quickstart.md +0 -22
  338. package/docs/start/setup.md +0 -160
  339. package/docs/start/showcase.md +0 -414
  340. package/docs/start/symi.md +0 -211
  341. package/docs/start/wizard-cli-automation.md +0 -158
  342. package/docs/start/wizard-cli-reference.md +0 -255
  343. package/docs/start/wizard.md +0 -109
  344. package/docs/style.css +0 -37
  345. package/docs/tools/agent-send.md +0 -52
  346. package/docs/tools/apply-patch.md +0 -51
  347. package/docs/tools/browser-linux-troubleshooting.md +0 -139
  348. package/docs/tools/browser-login.md +0 -67
  349. package/docs/tools/browser.md +0 -587
  350. package/docs/tools/chrome-extension.md +0 -183
  351. package/docs/tools/creating-skills.md +0 -54
  352. package/docs/tools/elevated.md +0 -55
  353. package/docs/tools/exec-approvals.md +0 -261
  354. package/docs/tools/exec.md +0 -184
  355. package/docs/tools/firecrawl.md +0 -61
  356. package/docs/tools/index.md +0 -540
  357. package/docs/tools/llm-task.md +0 -115
  358. package/docs/tools/loop-detection.md +0 -98
  359. package/docs/tools/multi-agent-sandbox-tools.md +0 -396
  360. package/docs/tools/pipeline.md +0 -340
  361. package/docs/tools/plugin.md +0 -687
  362. package/docs/tools/reactions.md +0 -21
  363. package/docs/tools/skills-config.md +0 -76
  364. package/docs/tools/skills.md +0 -300
  365. package/docs/tools/slash-commands.md +0 -202
  366. package/docs/tools/subagents.md +0 -232
  367. package/docs/tools/symihub.md +0 -256
  368. package/docs/tools/thinking.md +0 -75
  369. package/docs/tools/web.md +0 -265
  370. package/docs/tts.md +0 -398
  371. package/docs/vps.md +0 -43
  372. package/docs/web/control-ui.md +0 -247
  373. package/docs/web/dashboard.md +0 -46
  374. package/docs/web/index.md +0 -118
  375. package/docs/web/tui.md +0 -162
  376. package/docs/web/webchat.md +0 -53
  377. package/docs/whatsapp-symi-ai-zh.jpg +0 -0
  378. package/docs/whatsapp-symi.jpg +0 -0
  379. package/docs/zh-CN/AGENTS.md +0 -59
  380. package/docs/zh-CN/automation/auth-monitoring.md +0 -47
  381. package/docs/zh-CN/automation/cron-jobs.md +0 -422
  382. package/docs/zh-CN/automation/cron-vs-heartbeat.md +0 -286
  383. package/docs/zh-CN/automation/gmail-pubsub.md +0 -249
  384. package/docs/zh-CN/automation/hooks.md +0 -881
  385. package/docs/zh-CN/automation/poll.md +0 -68
  386. package/docs/zh-CN/automation/troubleshooting.md +0 -8
  387. package/docs/zh-CN/automation/webhook.md +0 -161
  388. package/docs/zh-CN/brave-search.md +0 -48
  389. package/docs/zh-CN/channels/bluebubbles.md +0 -271
  390. package/docs/zh-CN/channels/broadcast-groups.md +0 -448
  391. package/docs/zh-CN/channels/channel-routing.md +0 -112
  392. package/docs/zh-CN/channels/feishu.md +0 -629
  393. package/docs/zh-CN/channels/googlechat.md +0 -257
  394. package/docs/zh-CN/channels/grammy.md +0 -38
  395. package/docs/zh-CN/channels/group-messages.md +0 -89
  396. package/docs/zh-CN/channels/groups.md +0 -369
  397. package/docs/zh-CN/channels/imessage.md +0 -300
  398. package/docs/zh-CN/channels/index.md +0 -52
  399. package/docs/zh-CN/channels/line.md +0 -180
  400. package/docs/zh-CN/channels/location.md +0 -63
  401. package/docs/zh-CN/channels/matrix.md +0 -221
  402. package/docs/zh-CN/channels/mattermost.md +0 -144
  403. package/docs/zh-CN/channels/msteams.md +0 -773
  404. package/docs/zh-CN/channels/nextcloud-talk.md +0 -142
  405. package/docs/zh-CN/channels/nostr.md +0 -240
  406. package/docs/zh-CN/channels/pairing.md +0 -86
  407. package/docs/zh-CN/channels/signal.md +0 -207
  408. package/docs/zh-CN/channels/slack.md +0 -529
  409. package/docs/zh-CN/channels/telegram.md +0 -748
  410. package/docs/zh-CN/channels/tlon.md +0 -136
  411. package/docs/zh-CN/channels/troubleshooting.md +0 -34
  412. package/docs/zh-CN/channels/twitch.md +0 -385
  413. package/docs/zh-CN/channels/whatsapp.md +0 -411
  414. package/docs/zh-CN/channels/zalo.md +0 -196
  415. package/docs/zh-CN/channels/zalouser.md +0 -147
  416. package/docs/zh-CN/cli/acp.md +0 -173
  417. package/docs/zh-CN/cli/agent.md +0 -30
  418. package/docs/zh-CN/cli/agents.md +0 -82
  419. package/docs/zh-CN/cli/approvals.md +0 -57
  420. package/docs/zh-CN/cli/browser.md +0 -114
  421. package/docs/zh-CN/cli/channels.md +0 -80
  422. package/docs/zh-CN/cli/config.md +0 -57
  423. package/docs/zh-CN/cli/configure.md +0 -37
  424. package/docs/zh-CN/cli/cron.md +0 -43
  425. package/docs/zh-CN/cli/dashboard.md +0 -23
  426. package/docs/zh-CN/cli/devices.md +0 -74
  427. package/docs/zh-CN/cli/directory.md +0 -69
  428. package/docs/zh-CN/cli/dns.md +0 -30
  429. package/docs/zh-CN/cli/docs.md +0 -22
  430. package/docs/zh-CN/cli/doctor.md +0 -48
  431. package/docs/zh-CN/cli/gateway.md +0 -206
  432. package/docs/zh-CN/cli/health.md +0 -28
  433. package/docs/zh-CN/cli/hooks.md +0 -298
  434. package/docs/zh-CN/cli/index.md +0 -1025
  435. package/docs/zh-CN/cli/logs.md +0 -31
  436. package/docs/zh-CN/cli/memory.md +0 -52
  437. package/docs/zh-CN/cli/message.md +0 -205
  438. package/docs/zh-CN/cli/models.md +0 -85
  439. package/docs/zh-CN/cli/node.md +0 -115
  440. package/docs/zh-CN/cli/nodes.md +0 -80
  441. package/docs/zh-CN/cli/onboard.md +0 -36
  442. package/docs/zh-CN/cli/pairing.md +0 -28
  443. package/docs/zh-CN/cli/plugins.md +0 -66
  444. package/docs/zh-CN/cli/reset.md +0 -24
  445. package/docs/zh-CN/cli/sandbox.md +0 -158
  446. package/docs/zh-CN/cli/security.md +0 -33
  447. package/docs/zh-CN/cli/sessions.md +0 -23
  448. package/docs/zh-CN/cli/setup.md +0 -36
  449. package/docs/zh-CN/cli/skills.md +0 -33
  450. package/docs/zh-CN/cli/status.md +0 -32
  451. package/docs/zh-CN/cli/system.md +0 -63
  452. package/docs/zh-CN/cli/tui.md +0 -30
  453. package/docs/zh-CN/cli/uninstall.md +0 -24
  454. package/docs/zh-CN/cli/update.md +0 -101
  455. package/docs/zh-CN/cli/voicecall.md +0 -41
  456. package/docs/zh-CN/cli/webhooks.md +0 -32
  457. package/docs/zh-CN/concepts/agent-loop.md +0 -146
  458. package/docs/zh-CN/concepts/agent-workspace.md +0 -219
  459. package/docs/zh-CN/concepts/agent.md +0 -115
  460. package/docs/zh-CN/concepts/architecture.md +0 -122
  461. package/docs/zh-CN/concepts/compaction.md +0 -67
  462. package/docs/zh-CN/concepts/context.md +0 -168
  463. package/docs/zh-CN/concepts/features.md +0 -57
  464. package/docs/zh-CN/concepts/markdown-formatting.md +0 -115
  465. package/docs/zh-CN/concepts/memory.md +0 -412
  466. package/docs/zh-CN/concepts/messages.md +0 -140
  467. package/docs/zh-CN/concepts/model-failover.md +0 -145
  468. package/docs/zh-CN/concepts/model-providers.md +0 -320
  469. package/docs/zh-CN/concepts/models.md +0 -196
  470. package/docs/zh-CN/concepts/multi-agent.md +0 -371
  471. package/docs/zh-CN/concepts/oauth.md +0 -151
  472. package/docs/zh-CN/concepts/presence.md +0 -99
  473. package/docs/zh-CN/concepts/queue.md +0 -91
  474. package/docs/zh-CN/concepts/retry.md +0 -71
  475. package/docs/zh-CN/concepts/session-pruning.md +0 -129
  476. package/docs/zh-CN/concepts/session-tool.md +0 -198
  477. package/docs/zh-CN/concepts/session.md +0 -158
  478. package/docs/zh-CN/concepts/sessions.md +0 -17
  479. package/docs/zh-CN/concepts/streaming.md +0 -131
  480. package/docs/zh-CN/concepts/system-prompt.md +0 -99
  481. package/docs/zh-CN/concepts/timezone.md +0 -94
  482. package/docs/zh-CN/concepts/typebox.md +0 -284
  483. package/docs/zh-CN/concepts/typing-indicators.md +0 -74
  484. package/docs/zh-CN/concepts/usage-tracking.md +0 -42
  485. package/docs/zh-CN/date-time.md +0 -128
  486. package/docs/zh-CN/debug/node-issue.md +0 -90
  487. package/docs/zh-CN/diagnostics/flags.md +0 -98
  488. package/docs/zh-CN/experiments/onboarding-config-protocol.md +0 -47
  489. package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -69
  490. package/docs/zh-CN/experiments/plans/group-policy-hardening.md +0 -45
  491. package/docs/zh-CN/experiments/plans/openresponses-gateway.md +0 -121
  492. package/docs/zh-CN/experiments/proposals/model-config.md +0 -42
  493. package/docs/zh-CN/experiments/research/memory.md +0 -235
  494. package/docs/zh-CN/gateway/authentication.md +0 -142
  495. package/docs/zh-CN/gateway/background-process.md +0 -100
  496. package/docs/zh-CN/gateway/bonjour.md +0 -174
  497. package/docs/zh-CN/gateway/bridge-protocol.md +0 -86
  498. package/docs/zh-CN/gateway/cli-backends.md +0 -213
  499. package/docs/zh-CN/gateway/configuration-examples.md +0 -580
  500. package/docs/zh-CN/gateway/configuration.md +0 -3284
  501. package/docs/zh-CN/gateway/discovery.md +0 -123
  502. package/docs/zh-CN/gateway/doctor.md +0 -238
  503. package/docs/zh-CN/gateway/gateway-lock.md +0 -41
  504. package/docs/zh-CN/gateway/health.md +0 -42
  505. package/docs/zh-CN/gateway/heartbeat.md +0 -272
  506. package/docs/zh-CN/gateway/index.md +0 -335
  507. package/docs/zh-CN/gateway/local-models.md +0 -157
  508. package/docs/zh-CN/gateway/logging.md +0 -114
  509. package/docs/zh-CN/gateway/multiple-gateways.md +0 -119
  510. package/docs/zh-CN/gateway/network-model.md +0 -23
  511. package/docs/zh-CN/gateway/openai-http-api.md +0 -125
  512. package/docs/zh-CN/gateway/openresponses-http-api.md +0 -317
  513. package/docs/zh-CN/gateway/pairing.md +0 -99
  514. package/docs/zh-CN/gateway/protocol.md +0 -220
  515. package/docs/zh-CN/gateway/remote-gateway-readme.md +0 -164
  516. package/docs/zh-CN/gateway/remote.md +0 -133
  517. package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -135
  518. package/docs/zh-CN/gateway/sandboxing.md +0 -188
  519. package/docs/zh-CN/gateway/security/index.md +0 -772
  520. package/docs/zh-CN/gateway/tailscale.md +0 -124
  521. package/docs/zh-CN/gateway/tools-invoke-http-api.md +0 -92
  522. package/docs/zh-CN/gateway/troubleshooting.md +0 -758
  523. package/docs/zh-CN/help/debugging.md +0 -160
  524. package/docs/zh-CN/help/environment.md +0 -88
  525. package/docs/zh-CN/help/faq.md +0 -2613
  526. package/docs/zh-CN/help/index.md +0 -28
  527. package/docs/zh-CN/help/scripts.md +0 -35
  528. package/docs/zh-CN/help/testing.md +0 -375
  529. package/docs/zh-CN/help/troubleshooting.md +0 -104
  530. package/docs/zh-CN/index.md +0 -183
  531. package/docs/zh-CN/install/ansible.md +0 -214
  532. package/docs/zh-CN/install/bun.md +0 -65
  533. package/docs/zh-CN/install/development-channels.md +0 -81
  534. package/docs/zh-CN/install/docker.md +0 -525
  535. package/docs/zh-CN/install/exe-dev.md +0 -127
  536. package/docs/zh-CN/install/fly.md +0 -476
  537. package/docs/zh-CN/install/gcp.md +0 -509
  538. package/docs/zh-CN/install/hetzner.md +0 -336
  539. package/docs/zh-CN/install/index.md +0 -193
  540. package/docs/zh-CN/install/installer.md +0 -128
  541. package/docs/zh-CN/install/macos-vm.md +0 -288
  542. package/docs/zh-CN/install/migrating.md +0 -199
  543. package/docs/zh-CN/install/nix.md +0 -99
  544. package/docs/zh-CN/install/node.md +0 -8
  545. package/docs/zh-CN/install/northflank.mdx +0 -56
  546. package/docs/zh-CN/install/railway.mdx +0 -102
  547. package/docs/zh-CN/install/render.mdx +0 -168
  548. package/docs/zh-CN/install/uninstall.md +0 -135
  549. package/docs/zh-CN/install/updating.md +0 -233
  550. package/docs/zh-CN/logging.md +0 -329
  551. package/docs/zh-CN/network.md +0 -59
  552. package/docs/zh-CN/nodes/audio.md +0 -120
  553. package/docs/zh-CN/nodes/camera.md +0 -162
  554. package/docs/zh-CN/nodes/images.md +0 -79
  555. package/docs/zh-CN/nodes/index.md +0 -348
  556. package/docs/zh-CN/nodes/location-command.md +0 -120
  557. package/docs/zh-CN/nodes/media-understanding.md +0 -380
  558. package/docs/zh-CN/nodes/talk.md +0 -97
  559. package/docs/zh-CN/nodes/troubleshooting.md +0 -8
  560. package/docs/zh-CN/nodes/voicewake.md +0 -72
  561. package/docs/zh-CN/perplexity.md +0 -84
  562. package/docs/zh-CN/pi-dev.md +0 -77
  563. package/docs/zh-CN/pi.md +0 -617
  564. package/docs/zh-CN/platforms/android.md +0 -155
  565. package/docs/zh-CN/platforms/digitalocean.md +0 -268
  566. package/docs/zh-CN/platforms/index.md +0 -60
  567. package/docs/zh-CN/platforms/ios.md +0 -114
  568. package/docs/zh-CN/platforms/linux.md +0 -101
  569. package/docs/zh-CN/platforms/mac/bundled-gateway.md +0 -75
  570. package/docs/zh-CN/platforms/mac/canvas.md +0 -128
  571. package/docs/zh-CN/platforms/mac/child-process.md +0 -73
  572. package/docs/zh-CN/platforms/mac/dev-setup.md +0 -109
  573. package/docs/zh-CN/platforms/mac/health.md +0 -41
  574. package/docs/zh-CN/platforms/mac/icon.md +0 -38
  575. package/docs/zh-CN/platforms/mac/logging.md +0 -64
  576. package/docs/zh-CN/platforms/mac/menu-bar.md +0 -88
  577. package/docs/zh-CN/platforms/mac/peekaboo.md +0 -62
  578. package/docs/zh-CN/platforms/mac/permissions.md +0 -46
  579. package/docs/zh-CN/platforms/mac/release.md +0 -92
  580. package/docs/zh-CN/platforms/mac/remote.md +0 -90
  581. package/docs/zh-CN/platforms/mac/signing.md +0 -54
  582. package/docs/zh-CN/platforms/mac/skills.md +0 -40
  583. package/docs/zh-CN/platforms/mac/voice-overlay.md +0 -67
  584. package/docs/zh-CN/platforms/mac/voicewake.md +0 -73
  585. package/docs/zh-CN/platforms/mac/webchat.md +0 -43
  586. package/docs/zh-CN/platforms/mac/xpc.md +0 -68
  587. package/docs/zh-CN/platforms/macos.md +0 -193
  588. package/docs/zh-CN/platforms/oracle.md +0 -310
  589. package/docs/zh-CN/platforms/raspberry-pi.md +0 -365
  590. package/docs/zh-CN/platforms/windows.md +0 -156
  591. package/docs/zh-CN/plugins/agent-tools.md +0 -99
  592. package/docs/zh-CN/plugins/manifest.md +0 -68
  593. package/docs/zh-CN/plugins/voice-call.md +0 -250
  594. package/docs/zh-CN/plugins/zalouser.md +0 -88
  595. package/docs/zh-CN/prose.md +0 -141
  596. package/docs/zh-CN/providers/anthropic.md +0 -159
  597. package/docs/zh-CN/providers/bedrock.md +0 -170
  598. package/docs/zh-CN/providers/claude-max-api-proxy.md +0 -155
  599. package/docs/zh-CN/providers/deepgram.md +0 -97
  600. package/docs/zh-CN/providers/github-copilot.md +0 -67
  601. package/docs/zh-CN/providers/glm.md +0 -39
  602. package/docs/zh-CN/providers/index.md +0 -66
  603. package/docs/zh-CN/providers/minimax.md +0 -206
  604. package/docs/zh-CN/providers/models.md +0 -55
  605. package/docs/zh-CN/providers/moonshot.md +0 -145
  606. package/docs/zh-CN/providers/ollama.md +0 -230
  607. package/docs/zh-CN/providers/openai.md +0 -68
  608. package/docs/zh-CN/providers/opencode.md +0 -41
  609. package/docs/zh-CN/providers/openrouter.md +0 -43
  610. package/docs/zh-CN/providers/qianfan.md +0 -8
  611. package/docs/zh-CN/providers/qwen.md +0 -55
  612. package/docs/zh-CN/providers/synthetic.md +0 -102
  613. package/docs/zh-CN/providers/venice.md +0 -274
  614. package/docs/zh-CN/providers/vercel-ai-gateway.md +0 -57
  615. package/docs/zh-CN/providers/xiaomi.md +0 -68
  616. package/docs/zh-CN/providers/zai.md +0 -41
  617. package/docs/zh-CN/refactor/exec-host.md +0 -323
  618. package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -90
  619. package/docs/zh-CN/refactor/plugin-sdk.md +0 -221
  620. package/docs/zh-CN/refactor/strict-config.md +0 -100
  621. package/docs/zh-CN/refactor/syminet.md +0 -424
  622. package/docs/zh-CN/reference/AGENTS.default.md +0 -130
  623. package/docs/zh-CN/reference/RELEASING.md +0 -122
  624. package/docs/zh-CN/reference/api-usage-costs.md +0 -136
  625. package/docs/zh-CN/reference/credits.md +0 -34
  626. package/docs/zh-CN/reference/device-models.md +0 -54
  627. package/docs/zh-CN/reference/rpc.md +0 -48
  628. package/docs/zh-CN/reference/session-management-compaction.md +0 -286
  629. package/docs/zh-CN/reference/templates/AGENTS.dev.md +0 -89
  630. package/docs/zh-CN/reference/templates/AGENTS.md +0 -234
  631. package/docs/zh-CN/reference/templates/BOOT.md +0 -17
  632. package/docs/zh-CN/reference/templates/BOOTSTRAP.md +0 -68
  633. package/docs/zh-CN/reference/templates/IDENTITY.dev.md +0 -54
  634. package/docs/zh-CN/reference/templates/IDENTITY.md +0 -36
  635. package/docs/zh-CN/reference/templates/SYMICORE.dev.md +0 -83
  636. package/docs/zh-CN/reference/templates/SYMICORE.md +0 -49
  637. package/docs/zh-CN/reference/templates/SYMIPULSE.md +0 -69
  638. package/docs/zh-CN/reference/templates/TOOLS.dev.md +0 -31
  639. package/docs/zh-CN/reference/templates/TOOLS.md +0 -53
  640. package/docs/zh-CN/reference/templates/USER.dev.md +0 -25
  641. package/docs/zh-CN/reference/templates/USER.md +0 -30
  642. package/docs/zh-CN/reference/test.md +0 -57
  643. package/docs/zh-CN/reference/token-use.md +0 -119
  644. package/docs/zh-CN/reference/transcript-hygiene.md +0 -109
  645. package/docs/zh-CN/reference/wizard.md +0 -9
  646. package/docs/zh-CN/security/formal-verification.md +0 -171
  647. package/docs/zh-CN/start/bootstrapping.md +0 -9
  648. package/docs/zh-CN/start/docs-directory.md +0 -69
  649. package/docs/zh-CN/start/getting-started.md +0 -201
  650. package/docs/zh-CN/start/hubs.md +0 -199
  651. package/docs/zh-CN/start/lore.md +0 -223
  652. package/docs/zh-CN/start/onboarding.md +0 -105
  653. package/docs/zh-CN/start/quickstart.md +0 -88
  654. package/docs/zh-CN/start/setup.md +0 -151
  655. package/docs/zh-CN/start/showcase.md +0 -421
  656. package/docs/zh-CN/start/symi.md +0 -244
  657. package/docs/zh-CN/start/wizard.md +0 -326
  658. package/docs/zh-CN/tools/agent-send.md +0 -58
  659. package/docs/zh-CN/tools/apply-patch.md +0 -57
  660. package/docs/zh-CN/tools/browser-linux-troubleshooting.md +0 -144
  661. package/docs/zh-CN/tools/browser-login.md +0 -75
  662. package/docs/zh-CN/tools/browser.md +0 -553
  663. package/docs/zh-CN/tools/chrome-extension.md +0 -183
  664. package/docs/zh-CN/tools/creating-skills.md +0 -61
  665. package/docs/zh-CN/tools/elevated.md +0 -62
  666. package/docs/zh-CN/tools/exec-approvals.md +0 -233
  667. package/docs/zh-CN/tools/exec.md +0 -169
  668. package/docs/zh-CN/tools/firecrawl.md +0 -68
  669. package/docs/zh-CN/tools/index.md +0 -508
  670. package/docs/zh-CN/tools/llm-task.md +0 -117
  671. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +0 -400
  672. package/docs/zh-CN/tools/pipeline.md +0 -349
  673. package/docs/zh-CN/tools/plugin.md +0 -639
  674. package/docs/zh-CN/tools/reactions.md +0 -28
  675. package/docs/zh-CN/tools/skills-config.md +0 -78
  676. package/docs/zh-CN/tools/skills.md +0 -279
  677. package/docs/zh-CN/tools/slash-commands.md +0 -196
  678. package/docs/zh-CN/tools/subagents.md +0 -167
  679. package/docs/zh-CN/tools/symihub.md +0 -209
  680. package/docs/zh-CN/tools/thinking.md +0 -80
  681. package/docs/zh-CN/tools/web.md +0 -257
  682. package/docs/zh-CN/tts.md +0 -373
  683. package/docs/zh-CN/vps.md +0 -47
  684. package/docs/zh-CN/web/control-ui.md +0 -190
  685. package/docs/zh-CN/web/dashboard.md +0 -53
  686. package/docs/zh-CN/web/index.md +0 -118
  687. package/docs/zh-CN/web/tui.md +0 -166
  688. package/docs/zh-CN/web/webchat.md +0 -56
@@ -1,521 +0,0 @@
1
- ---
2
- summary: "Multi-agent routing: isolated agents, channel accounts, and bindings"
3
- title: Multi-Agent Routing
4
- read_when: "You want multiple isolated agents (workspaces + auth) in one gateway process."
5
- status: active
6
- ---
7
-
8
- # Multi-Agent Routing
9
-
10
- Goal: multiple _isolated_ agents (separate workspace + `agentDir` + sessions), plus multiple channel accounts (e.g. two WhatsApps) in one running Gateway. Inbound is routed to an agent via bindings.
11
-
12
- ## What is “one agent”?
13
-
14
- An **agent** is a fully scoped brain with its own:
15
-
16
- - **Workspace** (files, AGENTS.md/SYMICORE.md/USER.md, local notes, persona rules).
17
- - **State directory** (`agentDir`) for auth profiles, model registry, and per-agent config.
18
- - **Session store** (chat history + routing state) under `~/.symi/agents/<agentId>/sessions`.
19
-
20
- Auth profiles are **per-agent**. Each agent reads from its own:
21
-
22
- ```text
23
- ~/.symi/agents/<agentId>/agent/auth-profiles.json
24
- ```
25
-
26
- Main agent credentials are **not** shared automatically. Never reuse `agentDir`
27
- across agents (it causes auth/session collisions). If you want to share creds,
28
- copy `auth-profiles.json` into the other agent's `agentDir`.
29
-
30
- Skills are per-agent via each workspace’s `skills/` folder, with shared skills
31
- available from `~/.symi/skills`. See [Skills: per-agent vs shared](/tools/skills#per-agent-vs-shared-skills).
32
-
33
- The Gateway can host **one agent** (default) or **many agents** side-by-side.
34
-
35
- **Workspace note:** each agent’s workspace is the **default cwd**, not a hard
36
- sandbox. Relative paths resolve inside the workspace, but absolute paths can
37
- reach other host locations unless sandboxing is enabled. See
38
- [Sandboxing](/gateway/sandboxing).
39
-
40
- ## Paths (quick map)
41
-
42
- - Config: `~/.symi/symi.json` (or `SYMI_CONFIG_PATH`)
43
- - State dir: `~/.symi` (or `SYMI_STATE_DIR`)
44
- - Workspace: `~/.symi/workspace` (or `~/.symi/workspace-<agentId>`)
45
- - Agent dir: `~/.symi/agents/<agentId>/agent` (or `agents.list[].agentDir`)
46
- - Sessions: `~/.symi/agents/<agentId>/sessions`
47
-
48
- ### Single-agent mode (default)
49
-
50
- If you do nothing, Symi runs a single agent:
51
-
52
- - `agentId` defaults to **`main`**.
53
- - Sessions are keyed as `agent:main:<mainKey>`.
54
- - Workspace defaults to `~/.symi/workspace` (or `~/.symi/workspace-<profile>` when `SYMI_PROFILE` is set).
55
- - State defaults to `~/.symi/agents/main/agent`.
56
-
57
- ## Agent helper
58
-
59
- Use the agent wizard to add a new isolated agent:
60
-
61
- ```bash
62
- symi agents add work
63
- ```
64
-
65
- Then add `bindings` (or let the wizard do it) to route inbound messages.
66
-
67
- Verify with:
68
-
69
- ```bash
70
- symi agents list --bindings
71
- ```
72
-
73
- ## Quick start
74
-
75
- <Steps>
76
- <Step title="Create each agent workspace">
77
-
78
- Use the wizard or create workspaces manually:
79
-
80
- ```bash
81
- symi agents add coding
82
- symi agents add social
83
- ```
84
-
85
- Each agent gets its own workspace with `SYMICORE.md`, `AGENTS.md`, and optional `USER.md`, plus a dedicated `agentDir` and session store under `~/.symi/agents/<agentId>`.
86
-
87
- </Step>
88
-
89
- <Step title="Create channel accounts">
90
-
91
- Create one account per agent on your preferred channels:
92
-
93
- - Telegram: one bot per agent via BotFather, copy each token.
94
- - WhatsApp: link each phone number per account.
95
-
96
- ```bash
97
- symi channels login --channel whatsapp --account work
98
- ```
99
-
100
- </Step>
101
-
102
- <Step title="Add agents, accounts, and bindings">
103
-
104
- Add agents under `agents.list`, channel accounts under `channels.<channel>.accounts`, and connect them with `bindings` (examples below).
105
-
106
- </Step>
107
-
108
- <Step title="Restart and verify">
109
-
110
- ```bash
111
- symi gateway restart
112
- symi agents list --bindings
113
- symi channels status --probe
114
- ```
115
-
116
- </Step>
117
- </Steps>
118
-
119
- ## Multiple agents = multiple people, multiple personalities
120
-
121
- With **multiple agents**, each `agentId` becomes a **fully isolated persona**:
122
-
123
- - **Different phone numbers/accounts** (per channel `accountId`).
124
- - **Different personalities** (per-agent workspace files like `AGENTS.md` and `SYMICORE.md`).
125
- - **Separate auth + sessions** (no cross-talk unless explicitly enabled).
126
-
127
- This lets **multiple people** share one Gateway server while keeping their AI “brains” and data isolated.
128
-
129
- ## One WhatsApp number, multiple people (DM split)
130
-
131
- You can route **different WhatsApp DMs** to different agents while staying on **one WhatsApp account**. Match on sender E.164 (like `+15551234567`) with `peer.kind: "direct"`. Replies still come from the same WhatsApp number (no per‑agent sender identity).
132
-
133
- Important detail: direct chats collapse to the agent’s **main session key**, so true isolation requires **one agent per person**.
134
-
135
- Example:
136
-
137
- ```json5
138
- {
139
- agents: {
140
- list: [
141
- { id: "alex", workspace: "~/.symi/workspace-alex" },
142
- { id: "mia", workspace: "~/.symi/workspace-mia" },
143
- ],
144
- },
145
- bindings: [
146
- {
147
- agentId: "alex",
148
- match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551230001" } },
149
- },
150
- {
151
- agentId: "mia",
152
- match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551230002" } },
153
- },
154
- ],
155
- channels: {
156
- whatsapp: {
157
- dmPolicy: "allowlist",
158
- allowFrom: ["+15551230001", "+15551230002"],
159
- },
160
- },
161
- }
162
- ```
163
-
164
- Notes:
165
-
166
- - DM access control is **global per WhatsApp account** (pairing/allowlist), not per agent.
167
- - For shared groups, bind the group to one agent or use [Broadcast groups](/channels/broadcast-groups).
168
-
169
- ## Routing rules (how messages pick an agent)
170
-
171
- Bindings are **deterministic** and **most-specific wins**:
172
-
173
- 1. `peer` match (exact DM/group/channel id)
174
- 2. `parentPeer` match (thread inheritance)
175
- 3. `teamId` (Slack)
176
- 4. `accountId` match for a channel
177
- 5. channel-level match (`accountId: "*"`)
178
- 6. fallback to default agent (`agents.list[].default`, else first list entry, default: `main`)
179
-
180
- If multiple bindings match in the same tier, the first one in config order wins.
181
- If a binding sets multiple match fields (for example `peer` + `guildId`), all specified fields are required (`AND` semantics).
182
-
183
- ## Multiple accounts / phone numbers
184
-
185
- Channels that support **multiple accounts** (e.g. WhatsApp) use `accountId` to identify
186
- each login. Each `accountId` can be routed to a different agent, so one server can host
187
- multiple phone numbers without mixing sessions.
188
-
189
- ## Concepts
190
-
191
- - `agentId`: one “brain” (workspace, per-agent auth, per-agent session store).
192
- - `accountId`: one channel account instance (e.g. WhatsApp account `"personal"` vs `"biz"`).
193
- - `binding`: routes inbound messages to an `agentId` by `(channel, accountId, peer)` and optionally guild/team ids.
194
- - Direct chats collapse to `agent:<agentId>:<mainKey>` (per-agent “main”; `session.mainKey`).
195
-
196
- ## Platform examples
197
-
198
- ```json5
199
- {
200
- agents: {
201
- list: [
202
- { id: "main", workspace: "~/.symi/workspace-main" },
203
- { id: "coding", workspace: "~/.symi/workspace-coding" },
204
- ],
205
- },
206
- bindings: [
207
- ],
208
- channels: {
209
- groupPolicy: "allowlist",
210
- accounts: {
211
- default: {
212
- guilds: {
213
- "123456789012345678": {
214
- channels: {
215
- "222222222222222222": { allow: true, requireMention: false },
216
- },
217
- },
218
- },
219
- },
220
- coding: {
221
- guilds: {
222
- "123456789012345678": {
223
- channels: {
224
- "333333333333333333": { allow: true, requireMention: false },
225
- },
226
- },
227
- },
228
- },
229
- },
230
- },
231
- },
232
- }
233
- ```
234
-
235
- Notes:
236
-
237
- - Invite each bot to the guild and enable Message Content Intent.
238
-
239
- ### Telegram bots per agent
240
-
241
- ```json5
242
- {
243
- agents: {
244
- list: [
245
- { id: "main", workspace: "~/.symi/workspace-main" },
246
- { id: "alerts", workspace: "~/.symi/workspace-alerts" },
247
- ],
248
- },
249
- bindings: [
250
- { agentId: "main", match: { channel: "telegram", accountId: "default" } },
251
- { agentId: "alerts", match: { channel: "telegram", accountId: "alerts" } },
252
- ],
253
- channels: {
254
- telegram: {
255
- accounts: {
256
- default: {
257
- botToken: "123456:ABC...",
258
- dmPolicy: "pairing",
259
- },
260
- alerts: {
261
- botToken: "987654:XYZ...",
262
- dmPolicy: "allowlist",
263
- allowFrom: ["tg:123456789"],
264
- },
265
- },
266
- },
267
- },
268
- }
269
- ```
270
-
271
- Notes:
272
-
273
- - Create one bot per agent with BotFather and copy each token.
274
- - Tokens live in `channels.telegram.accounts.<id>.botToken` (default account can use `TELEGRAM_BOT_TOKEN`).
275
-
276
- ### WhatsApp numbers per agent
277
-
278
- Link each account before starting the gateway:
279
-
280
- ```bash
281
- symi channels login --channel whatsapp --account personal
282
- symi channels login --channel whatsapp --account biz
283
- ```
284
-
285
- `~/.symi/symi.json` (JSON5):
286
-
287
- ```js
288
- {
289
- agents: {
290
- list: [
291
- {
292
- id: "home",
293
- default: true,
294
- name: "Home",
295
- workspace: "~/.symi/workspace-home",
296
- agentDir: "~/.symi/agents/home/agent",
297
- },
298
- {
299
- id: "work",
300
- name: "Work",
301
- workspace: "~/.symi/workspace-work",
302
- agentDir: "~/.symi/agents/work/agent",
303
- },
304
- ],
305
- },
306
-
307
- // Deterministic routing: first match wins (most-specific first).
308
- bindings: [
309
- { agentId: "home", match: { channel: "whatsapp", accountId: "personal" } },
310
- { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } },
311
-
312
- // Optional per-peer override (example: send a specific group to work agent).
313
- {
314
- agentId: "work",
315
- match: {
316
- channel: "whatsapp",
317
- accountId: "personal",
318
- peer: { kind: "group", id: "1203630...@g.us" },
319
- },
320
- },
321
- ],
322
-
323
- // Off by default: agent-to-agent messaging must be explicitly enabled + allowlisted.
324
- tools: {
325
- agentToAgent: {
326
- enabled: false,
327
- allow: ["home", "work"],
328
- },
329
- },
330
-
331
- channels: {
332
- whatsapp: {
333
- accounts: {
334
- personal: {
335
- // Optional override. Default: ~/.symi/credentials/whatsapp/personal
336
- // authDir: "~/.symi/credentials/whatsapp/personal",
337
- },
338
- biz: {
339
- // Optional override. Default: ~/.symi/credentials/whatsapp/biz
340
- // authDir: "~/.symi/credentials/whatsapp/biz",
341
- },
342
- },
343
- },
344
- },
345
- }
346
- ```
347
-
348
- ## Example: WhatsApp daily chat + Telegram deep work
349
-
350
- Split by channel: route WhatsApp to a fast everyday agent and Telegram to an Opus agent.
351
-
352
- ```json5
353
- {
354
- agents: {
355
- list: [
356
- {
357
- id: "chat",
358
- name: "Everyday",
359
- workspace: "~/.symi/workspace-chat",
360
- model: "anthropic/claude-sonnet-4-5",
361
- },
362
- {
363
- id: "opus",
364
- name: "Deep Work",
365
- workspace: "~/.symi/workspace-opus",
366
- model: "anthropic/claude-opus-4-6",
367
- },
368
- ],
369
- },
370
- bindings: [
371
- { agentId: "chat", match: { channel: "whatsapp" } },
372
- { agentId: "opus", match: { channel: "telegram" } },
373
- ],
374
- }
375
- ```
376
-
377
- Notes:
378
-
379
- - If you have multiple accounts for a channel, add `accountId` to the binding (for example `{ channel: "whatsapp", accountId: "personal" }`).
380
- - To route a single DM/group to Opus while keeping the rest on chat, add a `match.peer` binding for that peer; peer matches always win over channel-wide rules.
381
-
382
- ## Example: same channel, one peer to Opus
383
-
384
- Keep WhatsApp on the fast agent, but route one DM to Opus:
385
-
386
- ```json5
387
- {
388
- agents: {
389
- list: [
390
- {
391
- id: "chat",
392
- name: "Everyday",
393
- workspace: "~/.symi/workspace-chat",
394
- model: "anthropic/claude-sonnet-4-5",
395
- },
396
- {
397
- id: "opus",
398
- name: "Deep Work",
399
- workspace: "~/.symi/workspace-opus",
400
- model: "anthropic/claude-opus-4-6",
401
- },
402
- ],
403
- },
404
- bindings: [
405
- {
406
- agentId: "opus",
407
- match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551234567" } },
408
- },
409
- { agentId: "chat", match: { channel: "whatsapp" } },
410
- ],
411
- }
412
- ```
413
-
414
- Peer bindings always win, so keep them above the channel-wide rule.
415
-
416
- ## Family agent bound to a WhatsApp group
417
-
418
- Bind a dedicated family agent to a single WhatsApp group, with mention gating
419
- and a tighter tool policy:
420
-
421
- ```json5
422
- {
423
- agents: {
424
- list: [
425
- {
426
- id: "family",
427
- name: "Family",
428
- workspace: "~/.symi/workspace-family",
429
- identity: { name: "Family Bot" },
430
- groupChat: {
431
- mentionPatterns: ["@family", "@familybot", "@Family Bot"],
432
- },
433
- sandbox: {
434
- mode: "all",
435
- scope: "agent",
436
- },
437
- tools: {
438
- allow: [
439
- "exec",
440
- "read",
441
- "sessions_list",
442
- "sessions_history",
443
- "sessions_send",
444
- "sessions_spawn",
445
- "session_status",
446
- ],
447
- deny: ["write", "edit", "apply_patch", "browser", "canvas", "nodes", "cron"],
448
- },
449
- },
450
- ],
451
- },
452
- bindings: [
453
- {
454
- agentId: "family",
455
- match: {
456
- channel: "whatsapp",
457
- peer: { kind: "group", id: "120363999999999999@g.us" },
458
- },
459
- },
460
- ],
461
- }
462
- ```
463
-
464
- Notes:
465
-
466
- - Tool allow/deny lists are **tools**, not skills. If a skill needs to run a
467
- binary, ensure `exec` is allowed and the binary exists in the sandbox.
468
- - For stricter gating, set `agents.list[].groupChat.mentionPatterns` and keep
469
- group allowlists enabled for the channel.
470
-
471
- ## Per-Agent Sandbox and Tool Configuration
472
-
473
- Starting with v2026.1.6, each agent can have its own sandbox and tool restrictions:
474
-
475
- ```js
476
- {
477
- agents: {
478
- list: [
479
- {
480
- id: "personal",
481
- workspace: "~/.symi/workspace-personal",
482
- sandbox: {
483
- mode: "off", // No sandbox for personal agent
484
- },
485
- // No tool restrictions - all tools available
486
- },
487
- {
488
- id: "family",
489
- workspace: "~/.symi/workspace-family",
490
- sandbox: {
491
- mode: "all", // Always sandboxed
492
- scope: "agent", // One container per agent
493
- docker: {
494
- // Optional one-time setup after container creation
495
- setupCommand: "apt-get update && apt-get install -y git curl",
496
- },
497
- },
498
- tools: {
499
- allow: ["read"], // Only read tool
500
- deny: ["exec", "write", "edit", "apply_patch"], // Deny others
501
- },
502
- },
503
- ],
504
- },
505
- }
506
- ```
507
-
508
- Note: `setupCommand` lives under `sandbox.docker` and runs once on container creation.
509
- Per-agent `sandbox.docker.*` overrides are ignored when the resolved scope is `"shared"`.
510
-
511
- **Benefits:**
512
-
513
- - **Security isolation**: Restrict tools for untrusted agents
514
- - **Resource control**: Sandbox specific agents while keeping others on host
515
- - **Flexible policies**: Different permissions per agent
516
-
517
- Note: `tools.elevated` is **global** and sender-based; it is not configurable per agent.
518
- If you need per-agent boundaries, use `agents.list[].tools` to deny `exec`.
519
- For group targeting, use `agents.list[].groupChat.mentionPatterns` so @mentions map cleanly to the intended agent.
520
-
521
- See [Multi-Agent Sandbox & Tools](/tools/multi-agent-sandbox-tools) for detailed examples.
@@ -1,145 +0,0 @@
1
- ---
2
- summary: "OAuth in Symi: token exchange, storage, and multi-account patterns"
3
- read_when:
4
- - You want to understand Symi OAuth end-to-end
5
- - You hit token invalidation / logout issues
6
- - You want setup-token or OAuth auth flows
7
- - You want multiple accounts or profile routing
8
- title: "OAuth"
9
- ---
10
-
11
- # OAuth
12
-
13
- Symi supports “subscription auth” via OAuth for providers that offer it (notably **OpenAI Codex (ChatGPT OAuth)**). For Anthropic subscriptions, use the **setup-token** flow. This page explains:
14
-
15
- - how the OAuth **token exchange** works (PKCE)
16
- - where tokens are **stored** (and why)
17
- - how to handle **multiple accounts** (profiles + per-session overrides)
18
-
19
- Symi also supports **provider plugins** that ship their own OAuth or API‑key
20
- flows. Run them via:
21
-
22
- ```bash
23
- symi models auth login --provider <id>
24
- ```
25
-
26
- ## The token sink (why it exists)
27
-
28
- OAuth providers commonly mint a **new refresh token** during login/refresh flows. Some providers (or OAuth clients) can invalidate older refresh tokens when a new one is issued for the same user/app.
29
-
30
- Practical symptom:
31
-
32
- - you log in via Symi _and_ via Claude Code / Codex CLI → one of them randomly gets “logged out” later
33
-
34
- To reduce that, Symi treats `auth-profiles.json` as a **token sink**:
35
-
36
- - the runtime reads credentials from **one place**
37
- - we can keep multiple profiles and route them deterministically
38
-
39
- ## Storage (where tokens live)
40
-
41
- Secrets are stored **per-agent**:
42
-
43
- - Auth profiles (OAuth + API keys): `~/.symi/agents/<agentId>/agent/auth-profiles.json`
44
- - Runtime cache (managed automatically; don’t edit): `~/.symi/agents/<agentId>/agent/auth.json`
45
-
46
- Legacy import-only file (still supported, but not the main store):
47
-
48
- - `~/.symi/credentials/oauth.json` (imported into `auth-profiles.json` on first use)
49
-
50
- All of the above also respect `$SYMI_STATE_DIR` (state dir override). Full reference: [/gateway/configuration](/gateway/configuration#auth-storage-oauth--api-keys)
51
-
52
- ## Anthropic setup-token (subscription auth)
53
-
54
- Run `claude setup-token` on any machine, then paste it into Symi:
55
-
56
- ```bash
57
- symi models auth setup-token --provider anthropic
58
- ```
59
-
60
- If you generated the token elsewhere, paste it manually:
61
-
62
- ```bash
63
- symi models auth paste-token --provider anthropic
64
- ```
65
-
66
- Verify:
67
-
68
- ```bash
69
- symi models status
70
- ```
71
-
72
- ## OAuth exchange (how login works)
73
-
74
- Symi’s interactive login flows are implemented in `@mariozechner/pi-ai` and wired into the wizards/commands.
75
-
76
- ### Anthropic (Claude Pro/Max) setup-token
77
-
78
- Flow shape:
79
-
80
- 1. run `claude setup-token`
81
- 2. paste the token into Symi
82
- 3. store as a token auth profile (no refresh)
83
-
84
- The wizard path is `symi onboard` → auth choice `setup-token` (Anthropic).
85
-
86
- ### OpenAI Codex (ChatGPT OAuth)
87
-
88
- Flow shape (PKCE):
89
-
90
- 1. generate PKCE verifier/challenge + random `state`
91
- 2. open `https://auth.openai.com/oauth/authorize?...`
92
- 3. try to capture callback on `http://127.0.0.1:1455/auth/callback`
93
- 4. if callback can’t bind (or you’re remote/headless), paste the redirect URL/code
94
- 5. exchange at `https://auth.openai.com/oauth/token`
95
- 6. extract `accountId` from the access token and store `{ access, refresh, expires, accountId }`
96
-
97
- Wizard path is `symi onboard` → auth choice `openai-codex`.
98
-
99
- ## Refresh + expiry
100
-
101
- Profiles store an `expires` timestamp.
102
-
103
- At runtime:
104
-
105
- - if `expires` is in the future → use the stored access token
106
- - if expired → refresh (under a file lock) and overwrite the stored credentials
107
-
108
- The refresh flow is automatic; you generally don't need to manage tokens manually.
109
-
110
- ## Multiple accounts (profiles) + routing
111
-
112
- Two patterns:
113
-
114
- ### 1) Preferred: separate agents
115
-
116
- If you want “personal” and “work” to never interact, use isolated agents (separate sessions + credentials + workspace):
117
-
118
- ```bash
119
- symi agents add work
120
- symi agents add personal
121
- ```
122
-
123
- Then configure auth per-agent (wizard) and route chats to the right agent.
124
-
125
- ### 2) Advanced: multiple profiles in one agent
126
-
127
- `auth-profiles.json` supports multiple profile IDs for the same provider.
128
-
129
- Pick which profile is used:
130
-
131
- - globally via config ordering (`auth.order`)
132
- - per-session via `/model ...@<profileId>`
133
-
134
- Example (session override):
135
-
136
- - `/model Opus@anthropic:work`
137
-
138
- How to see what profile IDs exist:
139
-
140
- - `symi channels list --json` (shows `auth[]`)
141
-
142
- Related docs:
143
-
144
- - [/concepts/model-failover](/concepts/model-failover) (rotation + cooldown rules)
145
- - [/tools/slash-commands](/tools/slash-commands) (command surface)