@symerian/symi 3.0.16 → 3.0.18

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 (310) hide show
  1. package/dist/{audio-preflight-CBDFctZN.js → audio-preflight-BfmZbg4Y.js} +4 -4
  2. package/dist/{audio-preflight-gsZSpG-6.js → audio-preflight-DcuC-liM.js} +4 -4
  3. package/dist/build-info.json +3 -3
  4. package/dist/bundled/boot-md/handler.js +8 -8
  5. package/dist/bundled/session-memory/handler.js +7 -7
  6. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  7. package/dist/{chrome-nPMY1XTJ.js → chrome-Bo7cbvFK.js} +5 -5
  8. package/dist/{chrome-BjVab8gM.js → chrome-DYp18Q0t.js} +5 -5
  9. package/dist/{deliver-D-QFqm31.js → deliver-ChSIbiMM.js} +1 -1
  10. package/dist/{deliver-B4-bcot9.js → deliver-DEgRQM4J.js} +1 -1
  11. package/dist/extensionAPI.js +7 -7
  12. package/dist/{image-CDwtQjmt.js → image-Bx-hvoNJ.js} +1 -1
  13. package/dist/{image-CcS-vzTA.js → image-CQl_mjWk.js} +1 -1
  14. package/dist/llm-slug-generator.js +7 -7
  15. package/dist/{manager-BnEdHzmO.js → manager-D_pn0urG.js} +1 -1
  16. package/dist/{manager-09r0qPze.js → manager-YQxK2t0C.js} +1 -1
  17. package/dist/{pi-embedded-CWsY69-4.js → pi-embedded-CLw_ZzEZ.js} +16 -16
  18. package/dist/{pi-embedded-helpers-BBMy-lqr.js → pi-embedded-helpers-B5I53aw6.js} +4 -4
  19. package/dist/{pi-embedded-helpers-ChEYbgVj.js → pi-embedded-helpers-sUAEIC9X.js} +4 -4
  20. package/dist/plugin-sdk/{accounts-BfyWsC_i.js → accounts-CWFytwbR.js} +3 -3
  21. package/dist/plugin-sdk/{active-listener-DcJW7xAT.js → active-listener-BkZ4jHrL.js} +2 -2
  22. package/dist/plugin-sdk/{agent-scope-ChbGV6of.js → agent-scope-C9gfY_Gk.js} +2 -2
  23. package/dist/plugin-sdk/{audio-preflight-D3GtNLqW.js → audio-preflight-HKbdzXLZ.js} +21 -21
  24. package/dist/plugin-sdk/{bindings-CN2Qmefj.js → bindings-BaKIqPPy.js} +2 -2
  25. package/dist/plugin-sdk/{channel-web-DTyqujjA.js → channel-web-D5nWiTH1.js} +18 -18
  26. package/dist/plugin-sdk/{chrome-BKzAKr3K.js → chrome-klTSnz-9.js} +3 -3
  27. package/dist/plugin-sdk/{chunk-DhDkBujV.js → chunk-BbrYSny_.js} +1 -1
  28. package/dist/plugin-sdk/{command-format-CVrYFyZS.js → command-format-BN6tyZt6.js} +1 -1
  29. package/dist/plugin-sdk/{commands-registry-17yfZkHZ.js → commands-registry-CTzKKtY6.js} +4 -4
  30. package/dist/plugin-sdk/{config-7wk65zKC.js → config-Crv2qEdJ.js} +9 -9
  31. package/dist/plugin-sdk/{consolidate-exbAW0ml.js → consolidate-DT1QH65Q.js} +2 -2
  32. package/dist/plugin-sdk/{deliver-TxAcw7J5.js → deliver-7rOvAlrc.js} +12 -12
  33. package/dist/plugin-sdk/{diagnostic-Debx4frd.js → diagnostic-0nsxhWp7.js} +1 -1
  34. package/dist/plugin-sdk/{fs-safe-wBYbAkJF.js → fs-safe-DfWYBeWF.js} +1 -1
  35. package/dist/plugin-sdk/{gemini-auth-7U2pm2Ky.js → gemini-auth-C0N0_u49.js} +1 -1
  36. package/dist/plugin-sdk/{image-BtDVmYA5.js → image-WOSl2apK.js} +4 -4
  37. package/dist/plugin-sdk/index.js +43 -43
  38. package/dist/plugin-sdk/{ir-CKMvRrGW.js → ir-9J84MTls.js} +4 -4
  39. package/dist/plugin-sdk/{local-roots-c_gaPs01.js → local-roots-OLRDbvyY.js} +3 -3
  40. package/dist/plugin-sdk/{login-DUym1Jy0.js → login-C7x4q0i2.js} +7 -7
  41. package/dist/plugin-sdk/{login-qr-B-WBdvrX.js → login-qr-Dv5_MoAW.js} +9 -9
  42. package/dist/plugin-sdk/{manager-B71SCzos.js → manager-C83tK17x.js} +8 -8
  43. package/dist/plugin-sdk/{manifest-registry-Dnic6Chh.js → manifest-registry-CJMV-PI7.js} +1 -1
  44. package/dist/plugin-sdk/{markdown-tables-Dur7OTlM.js → markdown-tables-DXNKz5y_.js} +1 -1
  45. package/dist/plugin-sdk/{message-channel-BrAhJJV_.js → message-channel-aGy1HbQQ.js} +1 -1
  46. package/dist/plugin-sdk/{model-selection-B9qaVQSJ.js → model-selection-C-3-tpe7.js} +4 -4
  47. package/dist/plugin-sdk/{outbound-DB1wDM8b.js → outbound-DquCeSy5.js} +6 -6
  48. package/dist/plugin-sdk/{pi-auth-json-ZO118hoy.js → pi-auth-json-D9PDCXGn.js} +1 -1
  49. package/dist/plugin-sdk/{pi-embedded-helpers-s_U0Un7j.js → pi-embedded-helpers-D3ygfH7l.js} +16 -16
  50. package/dist/plugin-sdk/{plugins-DF81oSaI.js → plugins-DOwnSg9D.js} +4 -4
  51. package/dist/plugin-sdk/{pw-ai-CTwP02uv.js → pw-ai-rlengLjb.js} +8 -8
  52. package/dist/plugin-sdk/{qmd-manager-CBaSGant.js → qmd-manager-BzxFjRFa.js} +4 -4
  53. package/dist/plugin-sdk/{registry-CZVURNhF.js → registry-5iFfixlB.js} +2 -2
  54. package/dist/plugin-sdk/{replies-hwRbkU3z.js → replies-BXOzO_H5.js} +7 -7
  55. package/dist/plugin-sdk/{reply-prefix-CaXmzZlx.js → reply-prefix-INAKTqCU.js} +1 -1
  56. package/dist/plugin-sdk/{resolve-outbound-target-fxVSOBmk.js → resolve-outbound-target-DvbxHtqp.js} +2 -2
  57. package/dist/plugin-sdk/{resolve-route-ClCyiOeu.js → resolve-route-URXlY3AK.js} +3 -3
  58. package/dist/plugin-sdk/{runner-Cq5jvwQ7.js → runner-Bv0_DWoH.js} +9 -9
  59. package/dist/plugin-sdk/{session-B_TkB65Y.js → session-C3r8l7ou.js} +4 -4
  60. package/dist/plugin-sdk/{skill-commands-0LF9HTGr.js → skill-commands-KjLUGIdZ.js} +5 -5
  61. package/dist/plugin-sdk/{skills-BIT_O7J0.js → skills-BrsD4L5c.js} +7 -7
  62. package/dist/plugin-sdk/{sqlite-Bx5Y5U5X.js → sqlite-CjW7ME1H.js} +1 -1
  63. package/dist/plugin-sdk/{subsystem-CXqYeDy-.js → subsystem-DcOg1xJr.js} +1 -1
  64. package/dist/plugin-sdk/{synthesis-DtsYAj1E.js → synthesis-CY7YAasV.js} +38 -38
  65. package/dist/plugin-sdk/{target-errors-B8mokOeH.js → target-errors-BVWJGWFq.js} +2 -2
  66. package/dist/plugin-sdk/{thinking-Ca0DhqzO.js → thinking-CtsTDPOi.js} +3 -3
  67. package/dist/plugin-sdk/{tokens-CvlONEqh.js → tokens-8lqOTZCB.js} +1 -1
  68. package/dist/plugin-sdk/{tool-images-DpBaWEHT.js → tool-images-Cl_rGIUZ.js} +2 -2
  69. package/dist/plugin-sdk/{tool-loop-detection-BOvUFa0f.js → tool-loop-detection-Da4WUT_P.js} +2 -2
  70. package/dist/plugin-sdk/{unified-runner-CnM7lyNd.js → unified-runner-nwMnsZyj.js} +60 -60
  71. package/dist/plugin-sdk/web-BlweOZDp.js +54 -0
  72. package/dist/plugin-sdk/{whatsapp-actions-CvnfsFJm.js → whatsapp-actions-DpfaGYs7.js} +21 -21
  73. package/dist/{pw-ai-BW8_KeDf.js → pw-ai-BqxJG-Wh.js} +1 -1
  74. package/dist/{pw-ai-j9IE1K0-.js → pw-ai-C-NSGye0.js} +1 -1
  75. package/dist/{runner-8ALr2UII.js → runner-COGFTeDw.js} +1 -1
  76. package/dist/{runner-C4-9kFdR.js → runner-DhCi2lT1.js} +1 -1
  77. package/dist/{synthesis-Cph3LhA1.js → synthesis-CXZu24Vx.js} +7 -7
  78. package/dist/{synthesis-Cus0A2dL.js → synthesis-DrPxcMlQ.js} +7 -7
  79. package/dist/{unified-runner-CX80YMTk.js → unified-runner-iByUazvW.js} +16 -16
  80. package/dist/{web-ChozvJ7I.js → web-EsMQBIYf.js} +7 -7
  81. package/dist/{web-DFlsbXmQ.js → web-PPg5y6xI.js} +7 -7
  82. package/docs/.i18n/zh-CN.tm.jsonl +0 -20
  83. package/docs/automation/cron-jobs.md +0 -2
  84. package/docs/automation/hooks.md +0 -2
  85. package/docs/automation/poll.md +0 -8
  86. package/docs/automation/webhook.md +0 -2
  87. package/docs/capabilities.md +0 -2
  88. package/docs/channels/broadcast-groups.md +0 -1
  89. package/docs/channels/channel-routing.md +4 -10
  90. package/docs/channels/group-messages.md +0 -2
  91. package/docs/channels/groups.md +0 -10
  92. package/docs/channels/index.md +0 -1
  93. package/docs/channels/matrix.md +0 -2
  94. package/docs/channels/msteams.md +0 -2
  95. package/docs/channels/pairing.md +0 -3
  96. package/docs/channels/signal.md +0 -2
  97. package/docs/channels/troubleshooting.md +0 -7
  98. package/docs/cli/channels.md +0 -6
  99. package/docs/cli/configure.md +0 -1
  100. package/docs/cli/directory.md +0 -1
  101. package/docs/cli/index.md +0 -7
  102. package/docs/cli/message.md +1 -47
  103. package/docs/cli/status.md +0 -1
  104. package/docs/concepts/architecture.md +0 -1
  105. package/docs/concepts/features.md +0 -2
  106. package/docs/concepts/markdown-formatting.md +6 -8
  107. package/docs/concepts/memory.md +0 -4
  108. package/docs/concepts/messages.md +0 -1
  109. package/docs/concepts/models.md +0 -1
  110. package/docs/concepts/multi-agent.md +4 -19
  111. package/docs/concepts/queue.md +0 -3
  112. package/docs/concepts/retry.md +0 -5
  113. package/docs/concepts/session-tool.md +0 -2
  114. package/docs/concepts/session.md +2 -9
  115. package/docs/concepts/streaming.md +0 -2
  116. package/docs/concepts/system-prompt.md +0 -1
  117. package/docs/concepts/timezone.md +0 -1
  118. package/docs/date-time.md +0 -1
  119. package/docs/docs.json +2 -11
  120. package/docs/experiments/plans/cron-add-hardening.md +0 -1
  121. package/docs/experiments/plans/session-binding-channel-agnostic.md +2 -23
  122. package/docs/experiments/plans/thread-bound-subagents.md +7 -64
  123. package/docs/gateway/configuration-examples.md +0 -10
  124. package/docs/gateway/configuration-reference.md +22 -47
  125. package/docs/gateway/configuration.md +0 -3
  126. package/docs/gateway/heartbeat.md +0 -2
  127. package/docs/gateway/security/index.md +1 -6
  128. package/docs/gateway/troubleshooting.md +0 -1
  129. package/docs/help/faq.md +0 -13
  130. package/docs/help/troubleshooting.md +0 -1
  131. package/docs/index.md +0 -6
  132. package/docs/install/ansible.md +2 -3
  133. package/docs/install/docker.md +1 -7
  134. package/docs/install/fly.md +0 -14
  135. package/docs/install/northflank.mdx +7 -11
  136. package/docs/install/railway.mdx +6 -10
  137. package/docs/install/render.mdx +1 -2
  138. package/docs/ja-JP/index.md +0 -3
  139. package/docs/pi.md +3 -5
  140. package/docs/platforms/digitalocean.md +0 -1
  141. package/docs/platforms/mac/voicewake.md +0 -1
  142. package/docs/providers/index.md +0 -2
  143. package/docs/refactor/outbound-session-mirroring.md +0 -2
  144. package/docs/reference/AGENTS.default.md +0 -1
  145. package/docs/reference/RELEASING.md +0 -1
  146. package/docs/reference/session-management-compaction.md +0 -1
  147. package/docs/reference/templates/AGENTS.md +0 -7
  148. package/docs/reference/wizard.md +0 -4
  149. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -1
  150. package/docs/security/README.md +0 -1
  151. package/docs/security/THREAT-MODEL-ATLAS.md +7 -10
  152. package/docs/start/docs-directory.md +0 -1
  153. package/docs/start/hubs.md +0 -1
  154. package/docs/start/lore.md +0 -3
  155. package/docs/start/setup.md +0 -2
  156. package/docs/start/showcase.md +0 -2
  157. package/docs/start/symi.md +0 -4
  158. package/docs/start/wizard-cli-reference.md +0 -4
  159. package/docs/start/wizard.md +3 -4
  160. package/docs/tools/agent-send.md +0 -1
  161. package/docs/tools/elevated.md +0 -2
  162. package/docs/tools/exec-approvals.md +0 -1
  163. package/docs/tools/index.md +0 -7
  164. package/docs/tools/multi-agent-sandbox-tools.md +1 -2
  165. package/docs/tools/reactions.md +0 -1
  166. package/docs/tools/slash-commands.md +0 -14
  167. package/docs/tools/symihub.md +0 -1
  168. package/docs/tts.md +0 -1
  169. package/docs/web/control-ui.md +0 -1
  170. package/docs/zh-CN/automation/cron-jobs.md +0 -2
  171. package/docs/zh-CN/automation/poll.md +0 -8
  172. package/docs/zh-CN/automation/webhook.md +0 -2
  173. package/docs/zh-CN/channels/broadcast-groups.md +0 -1
  174. package/docs/zh-CN/channels/channel-routing.md +4 -9
  175. package/docs/zh-CN/channels/group-messages.md +0 -2
  176. package/docs/zh-CN/channels/groups.md +0 -10
  177. package/docs/zh-CN/channels/imessage.md +0 -2
  178. package/docs/zh-CN/channels/index.md +0 -1
  179. package/docs/zh-CN/channels/msteams.md +0 -2
  180. package/docs/zh-CN/channels/pairing.md +0 -3
  181. package/docs/zh-CN/channels/signal.md +0 -2
  182. package/docs/zh-CN/channels/slack.md +0 -2
  183. package/docs/zh-CN/channels/telegram.md +0 -3
  184. package/docs/zh-CN/channels/troubleshooting.md +0 -2
  185. package/docs/zh-CN/cli/channels.md +0 -6
  186. package/docs/zh-CN/cli/configure.md +0 -1
  187. package/docs/zh-CN/cli/directory.md +0 -1
  188. package/docs/zh-CN/cli/index.md +0 -7
  189. package/docs/zh-CN/cli/message.md +1 -42
  190. package/docs/zh-CN/cli/status.md +0 -1
  191. package/docs/zh-CN/concepts/architecture.md +0 -1
  192. package/docs/zh-CN/concepts/features.md +0 -2
  193. package/docs/zh-CN/concepts/markdown-formatting.md +6 -8
  194. package/docs/zh-CN/concepts/messages.md +0 -1
  195. package/docs/zh-CN/concepts/multi-agent.md +4 -5
  196. package/docs/zh-CN/concepts/queue.md +0 -3
  197. package/docs/zh-CN/concepts/retry.md +0 -5
  198. package/docs/zh-CN/concepts/session-tool.md +0 -2
  199. package/docs/zh-CN/concepts/session.md +3 -11
  200. package/docs/zh-CN/concepts/streaming.md +0 -2
  201. package/docs/zh-CN/concepts/system-prompt.md +0 -2
  202. package/docs/zh-CN/concepts/timezone.md +0 -2
  203. package/docs/zh-CN/date-time.md +0 -1
  204. package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -1
  205. package/docs/zh-CN/gateway/configuration-examples.md +0 -7
  206. package/docs/zh-CN/gateway/configuration.md +2 -50
  207. package/docs/zh-CN/gateway/heartbeat.md +0 -2
  208. package/docs/zh-CN/gateway/security/index.md +1 -6
  209. package/docs/zh-CN/gateway/troubleshooting.md +1 -14
  210. package/docs/zh-CN/help/faq.md +0 -15
  211. package/docs/zh-CN/index.md +0 -3
  212. package/docs/zh-CN/install/ansible.md +2 -3
  213. package/docs/zh-CN/install/docker.md +1 -7
  214. package/docs/zh-CN/install/fly.md +0 -14
  215. package/docs/zh-CN/install/northflank.mdx +7 -11
  216. package/docs/zh-CN/install/railway.mdx +6 -10
  217. package/docs/zh-CN/install/render.mdx +1 -2
  218. package/docs/zh-CN/pi.md +3 -5
  219. package/docs/zh-CN/platforms/digitalocean.md +0 -1
  220. package/docs/zh-CN/platforms/mac/voicewake.md +0 -1
  221. package/docs/zh-CN/providers/index.md +0 -2
  222. package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -2
  223. package/docs/zh-CN/reference/AGENTS.default.md +0 -1
  224. package/docs/zh-CN/reference/RELEASING.md +0 -1
  225. package/docs/zh-CN/reference/session-management-compaction.md +0 -1
  226. package/docs/zh-CN/reference/templates/AGENTS.md +0 -5
  227. package/docs/zh-CN/start/docs-directory.md +0 -1
  228. package/docs/zh-CN/start/getting-started.md +0 -5
  229. package/docs/zh-CN/start/hubs.md +0 -1
  230. package/docs/zh-CN/start/lore.md +0 -3
  231. package/docs/zh-CN/start/setup.md +0 -2
  232. package/docs/zh-CN/start/showcase.md +0 -2
  233. package/docs/zh-CN/start/symi.md +0 -4
  234. package/docs/zh-CN/start/wizard.md +0 -5
  235. package/docs/zh-CN/tools/agent-send.md +0 -1
  236. package/docs/zh-CN/tools/elevated.md +0 -2
  237. package/docs/zh-CN/tools/exec-approvals.md +0 -1
  238. package/docs/zh-CN/tools/index.md +0 -7
  239. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +1 -2
  240. package/docs/zh-CN/tools/reactions.md +0 -1
  241. package/docs/zh-CN/tools/slash-commands.md +0 -9
  242. package/docs/zh-CN/tts.md +0 -2
  243. package/docs/zh-CN/web/control-ui.md +0 -1
  244. package/package.json +1 -1
  245. package/dist/plugin-sdk/web-CIPJBHAU.js +0 -54
  246. package/docs/channels/discord.md +0 -998
  247. package/docs/zh-CN/channels/discord.md +0 -468
  248. package/skills/1password/SKILL.md +0 -71
  249. package/skills/1password/references/cli-examples.md +0 -29
  250. package/skills/1password/references/get-started.md +0 -17
  251. package/skills/apple-notes/SKILL.md +0 -78
  252. package/skills/apple-reminders/SKILL.md +0 -119
  253. package/skills/bear-notes/SKILL.md +0 -108
  254. package/skills/blogwatcher/SKILL.md +0 -70
  255. package/skills/blucli/SKILL.md +0 -48
  256. package/skills/bluebubbles/SKILL.md +0 -132
  257. package/skills/camsnap/SKILL.md +0 -46
  258. package/skills/canvas/SKILL.md +0 -204
  259. package/skills/connect-email/SKILL.md +0 -142
  260. package/skills/document-generation/SKILL.md +0 -83
  261. package/skills/eightctl/SKILL.md +0 -51
  262. package/skills/food-order/SKILL.md +0 -49
  263. package/skills/gemini/SKILL.md +0 -44
  264. package/skills/gh-issues/SKILL.md +0 -865
  265. package/skills/gifgrep/SKILL.md +0 -80
  266. package/skills/github/SKILL.md +0 -164
  267. package/skills/gog/SKILL.md +0 -117
  268. package/skills/goplaces/SKILL.md +0 -53
  269. package/skills/healthcheck/SKILL.md +0 -246
  270. package/skills/himalaya/SKILL.md +0 -258
  271. package/skills/himalaya/references/configuration.md +0 -184
  272. package/skills/himalaya/references/message-composition.md +0 -199
  273. package/skills/imsg/SKILL.md +0 -122
  274. package/skills/long-task/SKILL.md +0 -58
  275. package/skills/long-task/scripts/detach-task.sh +0 -187
  276. package/skills/nano-banana-pro/SKILL.md +0 -59
  277. package/skills/nano-banana-pro/scripts/generate_image.py +0 -184
  278. package/skills/nano-pdf/SKILL.md +0 -39
  279. package/skills/notion/SKILL.md +0 -173
  280. package/skills/obsidian/SKILL.md +0 -82
  281. package/skills/openai-image-gen/SKILL.md +0 -90
  282. package/skills/openai-image-gen/scripts/gen.py +0 -240
  283. package/skills/openai-whisper/SKILL.md +0 -39
  284. package/skills/openai-whisper-api/SKILL.md +0 -53
  285. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
  286. package/skills/openhue/SKILL.md +0 -113
  287. package/skills/oracle/SKILL.md +0 -126
  288. package/skills/ordercli/SKILL.md +0 -79
  289. package/skills/peekaboo/SKILL.md +0 -191
  290. package/skills/reactions-extensive/SKILL.md +0 -30
  291. package/skills/reactions-minimal/SKILL.md +0 -31
  292. package/skills/safe-edit/SKILL.md +0 -51
  293. package/skills/sag/SKILL.md +0 -88
  294. package/skills/sherpa-onnx-tts/SKILL.md +0 -104
  295. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  296. package/skills/songsee/SKILL.md +0 -50
  297. package/skills/sonoscli/SKILL.md +0 -66
  298. package/skills/spotify-player/SKILL.md +0 -65
  299. package/skills/symihub/SKILL.md +0 -78
  300. package/skills/things-mac/SKILL.md +0 -87
  301. package/skills/tmux/SKILL.md +0 -153
  302. package/skills/tmux/scripts/find-sessions.sh +0 -112
  303. package/skills/tmux/scripts/wait-for-text.sh +0 -83
  304. package/skills/trello/SKILL.md +0 -96
  305. package/skills/video-frames/SKILL.md +0 -47
  306. package/skills/video-frames/scripts/frame.sh +0 -81
  307. package/skills/voice-call/SKILL.md +0 -46
  308. package/skills/wacli/SKILL.md +0 -73
  309. package/skills/weather/SKILL.md +0 -113
  310. package/skills/xurl/SKILL.md +0 -462
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  read_when:
3
3
  - 更改群聊行为或提及限制
4
- summary: 跨平台的群聊行为(WhatsApp/Telegram/Discord/Slack/Signal/iMessage/Microsoft Teams)
5
4
  title: 群组
6
5
  x-i18n:
7
6
  generated_at: "2026-02-03T07:47:08Z"
@@ -14,8 +13,6 @@ x-i18n:
14
13
 
15
14
  # 群组
16
15
 
17
- Symi 在各平台上统一处理群聊:WhatsApp、Telegram、Discord、Slack、Signal、iMessage、Microsoft Teams。
18
-
19
16
  ## 新手入门(2 分钟)
20
17
 
21
18
  Symi"运行"在你自己的消息账户上。没有单独的 WhatsApp 机器人用户。如果**你**在一个群组中,Symi 就可以看到该群组并在其中回复。
@@ -157,7 +154,6 @@ requireMention? 是 -> 被提及? 否 -> 仅存储为上下文
157
154
  groupPolicy: "disabled",
158
155
  groupAllowFrom: ["user@org.com"],
159
156
  },
160
- discord: {
161
157
  groupPolicy: "allowlist",
162
158
  guilds: {
163
159
  GUILD_ID: { channels: { help: { allow: true } } },
@@ -189,10 +185,8 @@ requireMention? 是 -> 被提及? 否 -> 仅存储为上下文
189
185
 
190
186
  - `groupPolicy` 与提及限制(需要 @ 提及)是分开的。
191
187
  - WhatsApp/Telegram/Signal/iMessage/Microsoft Teams:使用 `groupAllowFrom`(回退:显式 `allowFrom`)。
192
- - Discord:允许列表使用 `channels.discord.guilds.<id>.channels`。
193
188
  - Slack:允许列表使用 `channels.slack.channels`。
194
189
  - Matrix:允许列表使用 `channels.matrix.groups`(房间 ID、别名或名称)。使用 `channels.matrix.groupAllowFrom` 限制发送者;也支持每个房间的 `users` 允许列表。
195
- - 群组私信单独控制(`channels.discord.dm.*`、`channels.slack.dm.*`)。
196
190
  - Telegram 允许列表可以匹配用户 ID(`"123456789"`、`"telegram:123456789"`、`"tg:123456789"`)或用户名(`"@alice"` 或 `"alice"`);前缀不区分大小写。
197
191
  - 默认为 `groupPolicy: "allowlist"`;如果你的群组允许列表为空,群组消息将被阻止。
198
192
 
@@ -206,8 +200,6 @@ requireMention? 是 -> 被提及? 否 -> 仅存储为上下文
206
200
 
207
201
  群组消息需要提及,除非按群组覆盖。默认值位于 `*.groups."*"` 下的每个子系统中。
208
202
 
209
- 回复机器人消息被视为隐式提及(当渠道支持回复元数据时)。这适用于 Telegram、WhatsApp、Slack、Discord 和 Microsoft Teams。
210
-
211
203
  ```json5
212
204
  {
213
205
  channels: {
@@ -250,7 +242,6 @@ requireMention? 是 -> 被提及? 否 -> 仅存储为上下文
250
242
  - 提供显式提及的平台仍然通过;模式是回退。
251
243
  - 每个智能体覆盖:`agents.list[].groupChat.mentionPatterns`(当多个智能体共享一个群组时有用)。
252
244
  - 提及限制仅在提及检测可行时强制执行(原生提及或 `mentionPatterns` 已配置)。
253
- - Discord 默认值位于 `channels.discord.guilds."*"`(可按服务器/频道覆盖)。
254
245
  - 群组历史上下文在渠道间统一包装,并且是**仅待处理**(由于提及限制而跳过的消息);使用 `messages.groupChat.historyLimit` 作为全局默认值,使用 `channels.<channel>.historyLimit`(或 `channels.<channel>.accounts.*.historyLimit`)进行覆盖。设置 `0` 以禁用。
255
246
 
256
247
  ## 群组/频道工具限制(可选)
@@ -290,7 +281,6 @@ requireMention? 是 -> 被提及? 否 -> 仅存储为上下文
290
281
  注意事项:
291
282
 
292
283
  - 群组/频道工具限制在全局/智能体工具策略之外额外应用(deny 仍然优先)。
293
- - 某些渠道对房间/频道使用不同的嵌套结构(例如,Discord `guilds.*.channels.*`、Slack `channels.*`、MS Teams `teams.*.channels.*`)。
294
284
 
295
285
  ## 群组允许列表
296
286
 
@@ -194,8 +194,6 @@ exec ssh -T bot@mac-mini.tailnet-1234.ts.net imsg "$@"
194
194
  - 使用 SSH 密钥使 `ssh bot@mac-mini.tailnet-1234.ts.net` 无需提示即可工作。
195
195
  - `remoteHost` 应与 SSH 目标匹配,以便 SCP 可以获取附件。
196
196
 
197
- 多账户支持:使用 `channels.imessage.accounts` 配置每个账户及可选的 `name`。参见 [`gateway/configuration`](/gateway/configuration#telegramaccounts--discordaccounts--slackaccounts--signalaccounts--imessageaccounts) 了解共享模式。不要提交 `~/.symi/symi.json`(它通常包含令牌)。
198
-
199
197
  ## 访问控制(私信 + 群组)
200
198
 
201
199
  私信:
@@ -22,7 +22,6 @@ Symi 可以在你已经使用的任何聊天应用上与你交流。每个渠道
22
22
 
23
23
  - [WhatsApp](/channels/whatsapp) — 最受欢迎;使用 Baileys,需要二维码配对。
24
24
  - [Telegram](/channels/telegram) — 通过 grammY 使用 Bot API;支持群组。
25
- - [Discord](/channels/discord) — Discord Bot API + Gateway;支持服务器、频道和私信。
26
25
  - [Slack](/channels/slack) — Bolt SDK;工作区应用。
27
26
  - [飞书](/channels/feishu) — 飞书(Lark)机器人(插件,需单独安装)。
28
27
  - [Google Chat](/channels/googlechat) — 通过 HTTP webhook 的 Google Chat API 应用。
@@ -444,8 +444,6 @@ Symi 通过快速返回并主动发送回复来处理这个问题,但非常慢
444
444
 
445
445
  ### 格式化
446
446
 
447
- Teams markdown 比 Slack 或 Discord 更有限:
448
-
449
447
  - 基本格式化有效:**粗体**、_斜体_、`代码`、链接
450
448
  - 复杂的 markdown(表格、嵌套列表)可能无法正确渲染
451
449
  - 支持 Adaptive Cards 用于投票和任意卡片发送(见下文)
@@ -42,8 +42,6 @@ symi pairing list telegram
42
42
  symi pairing approve telegram <CODE>
43
43
  ```
44
44
 
45
- 支持的渠道:`telegram`、`whatsapp`、`signal`、`imessage`、`discord`、`slack`。
46
-
47
45
  ### 状态存储位置
48
46
 
49
47
  存储在 `~/.symi/credentials/` 下:
@@ -85,5 +83,4 @@ symi devices reject <requestId>
85
83
  - WhatsApp:[WhatsApp](/channels/whatsapp)
86
84
  - Signal:[Signal](/channels/signal)
87
85
  - iMessage:[iMessage](/channels/imessage)
88
- - Discord:[Discord](/channels/discord)
89
86
  - Slack:[Slack](/channels/slack)
@@ -88,8 +88,6 @@ x-i18n:
88
88
  }
89
89
  ```
90
90
 
91
- 多账户支持:使用 `channels.signal.accounts` 配置每个账户及可选的 `name`。共享模式请参见 [`gateway/configuration`](/gateway/configuration#telegramaccounts--discordaccounts--slackaccounts--signalaccounts--imessageaccounts)。
92
-
93
91
  ## 外部守护进程模式(httpUrl)
94
92
 
95
93
  如果你想自己管理 `signal-cli`(JVM 冷启动慢、容器初始化或共享 CPU),请单独运行守护进程并将 Symi 指向它:
@@ -54,8 +54,6 @@ x-i18n:
54
54
 
55
55
  使用下面的 manifest 以保持权限范围和事件同步。
56
56
 
57
- 多账户支持:使用 `channels.slack.accounts` 配置每个账户的令牌和可选的 `name`。参见 [`gateway/configuration`](/gateway/configuration#telegramaccounts--discordaccounts--slackaccounts--signalaccounts--imessageaccounts) 了解共享模式。
58
-
59
57
  ### Symi 配置(最小)
60
58
 
61
59
  通过环境变量设置令牌(推荐):
@@ -79,8 +79,6 @@ x-i18n:
79
79
  环境变量选项:`TELEGRAM_BOT_TOKEN=...`(适用于默认账户)。
80
80
  如果环境变量和配置都设置了,配置优先。
81
81
 
82
- 多账户支持:使用 `channels.telegram.accounts`,每个账户有独立的 token 和可选的 `name`。参见 [`gateway/configuration`](/gateway/configuration#telegramaccounts--discordaccounts--slackaccounts--signalaccounts--imessageaccounts) 了解共享模式。
83
-
84
82
  3. 启动 Gateway 网关。当 token 解析成功时 Telegram 启动(配置优先,环境变量回退)。
85
83
  4. 私信访问默认为配对模式。机器人首次被联系时批准配对码。
86
84
  5. 对于群组:添加机器人,决定隐私/管理员行为(见下文),然后设置 `channels.telegram.groups` 来控制提及门控和允许列表。
@@ -747,5 +745,4 @@ Telegram 反应作为**单独的 `message_reaction` 事件**到达,而不是
747
745
 
748
746
  - `agents.list[].groupChat.mentionPatterns`(提及门控模式)。
749
747
  - `messages.groupChat.mentionPatterns`(全局回退)。
750
- - `commands.native`(默认为 `"auto"` → Telegram/Discord 开启,Slack 关闭)、`commands.text`、`commands.useAccessGroups`(命令行为)。使用 `channels.telegram.commands.native` 覆盖。
751
748
  - `messages.responsePrefix`、`messages.ackReaction`、`messages.ackReactionScope`、`messages.removeAckAfterReply`。
@@ -2,7 +2,6 @@
2
2
  read_when:
3
3
  - 渠道已连接但消息无法流通
4
4
  - 排查渠道配置错误(意图、权限、隐私模式)
5
- summary: 渠道专属故障排除快捷指南(Discord/Telegram/WhatsApp)
6
5
  title: 渠道故障排除
7
6
  x-i18n:
8
7
  generated_at: "2026-02-01T19:58:09Z"
@@ -26,7 +25,6 @@ symi channels status --probe
26
25
 
27
26
  ## 渠道
28
27
 
29
- - Discord:[/channels/discord#troubleshooting](/channels/discord#troubleshooting)
30
28
  - Telegram:[/channels/telegram#troubleshooting](/channels/telegram#troubleshooting)
31
29
  - WhatsApp:[/channels/whatsapp#troubleshooting-quick](/channels/whatsapp#troubleshooting-quick)
32
30
 
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  read_when:
3
- - 你想添加/删除渠道账户(WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost(插件)/Signal/iMessage)
4
3
  - 你想检查渠道状态或跟踪渠道日志
5
4
  summary: "`symi channels` 的 CLI 参考(账户、状态、登录/登出、日志)"
6
5
  title: channels
@@ -28,7 +27,6 @@ x-i18n:
28
27
  symi channels list
29
28
  symi channels status
30
29
  symi channels capabilities
31
- symi channels capabilities --channel discord --target channel:123
32
30
  symi channels resolve --channel slack "#general" "@jane"
33
31
  symi channels logs --channel all
34
32
  ```
@@ -61,14 +59,11 @@ symi channels logout --channel whatsapp
61
59
 
62
60
  ```bash
63
61
  symi channels capabilities
64
- symi channels capabilities --channel discord --target channel:123
65
62
  ```
66
63
 
67
64
  说明:
68
65
 
69
66
  - `--channel` 是可选的;省略它可列出所有渠道(包括扩展)。
70
- - `--target` 接受 `channel:<id>` 或原始数字频道 id,仅适用于 Discord。
71
- - 探测是特定于提供商的:Discord intents + 可选的频道权限;Slack bot + user scopes;Telegram bot 标志 + webhook;Signal daemon 版本;MS Teams app token + Graph roles/scopes(在已知处标注)。没有探测功能的渠道报告 `Probe: unavailable`。
72
67
 
73
68
  ## 解析名称为 ID
74
69
 
@@ -76,7 +71,6 @@ symi channels capabilities --channel discord --target channel:123
76
71
 
77
72
  ```bash
78
73
  symi channels resolve --channel slack "#general" "@jane"
79
- symi channels resolve --channel discord "My Server/#support" "@someone"
80
74
  symi channels resolve --channel matrix "Project Room"
81
75
  ```
82
76
 
@@ -28,7 +28,6 @@ x-i18n:
28
28
  注意事项:
29
29
 
30
30
  - 选择 Gateway 网关运行位置始终会更新 `gateway.mode`。如果这是你唯一需要的,可以不选择其他部分直接选择"继续"。
31
- - 面向渠道的服务(Slack/Discord/Matrix/Microsoft Teams)在设置期间会提示输入频道/房间允许列表。你可以输入名称或 ID;向导会尽可能将名称解析为 ID。
32
31
 
33
32
  ## 示例
34
33
 
@@ -41,7 +41,6 @@ symi message send --channel slack --target user:U012ABCDEF --message "hello"
41
41
  - WhatsApp:`+15551234567`(私聊),`1234567890-1234567890@g.us`(群组)
42
42
  - Telegram:`@username` 或数字聊天 ID;群组为数字 ID
43
43
  - Slack:`user:U…` 和 `channel:C…`
44
- - Discord:`user:<id>` 和 `channel:<id>`
45
44
  - Matrix(插件):`user:@user:server`、`room:!roomId:server` 或 `#alias:server`
46
45
  - Microsoft Teams(插件):`user:<id>` 和 `conversation:<id>`
47
46
  - Zalo(插件):用户 ID(Bot API)
@@ -373,8 +373,6 @@ symi [--dev] [--profile <name>] <command>
373
373
 
374
374
  ### `channels`
375
375
 
376
- 管理聊天渠道账户(WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost(插件)/Signal/iMessage/MS Teams)。
377
-
378
376
  子命令:
379
377
 
380
378
  - `channels list`:显示已配置的渠道和认证配置文件。
@@ -388,7 +386,6 @@ symi [--dev] [--profile <name>] <command>
388
386
 
389
387
  通用选项:
390
388
 
391
- - `--channel <name>`:`whatsapp|telegram|discord|googlechat|slack|mattermost|signal|imessage|msteams`
392
389
  - `--account <id>`:渠道账户 id(默认 `default`)
393
390
  - `--name <label>`:账户的显示名称
394
391
 
@@ -420,8 +417,6 @@ symi [--dev] [--profile <name>] <command>
420
417
 
421
418
  ```bash
422
419
  symi channels add --channel telegram --account alerts --name "Alerts Bot" --token $TELEGRAM_BOT_TOKEN
423
- symi channels add --channel discord --account work --name "Work Bot" --token $DISCORD_BOT_TOKEN
424
- symi channels remove --channel discord --account work --delete
425
420
  symi channels status --probe
426
421
  symi status --deep
427
422
  ```
@@ -493,7 +488,6 @@ Gmail Pub/Sub 钩子设置 + 运行器。参见 [/automation/gmail-pubsub](/auto
493
488
  示例:
494
489
 
495
490
  - `symi message send --target +15555550123 --message "Hi"`
496
- - `symi message poll --channel discord --target channel:123 --poll-question "Snack?" --poll-option Pizza --poll-option Sushi`
497
491
 
498
492
  ### `agent`
499
493
 
@@ -509,7 +503,6 @@ Gmail Pub/Sub 钩子设置 + 运行器。参见 [/automation/gmail-pubsub](/auto
509
503
  - `--session-id <id>`
510
504
  - `--thinking <off|minimal|low|medium|high|xhigh>`(仅限 GPT-5.2 + Codex 模型)
511
505
  - `--verbose <on|full|off>`
512
- - `--channel <whatsapp|telegram|discord|slack|mattermost|signal|imessage|msteams>`
513
506
  - `--local`
514
507
  - `--deliver`
515
508
  - `--json`
@@ -16,7 +16,6 @@ x-i18n:
16
16
  # `symi message`
17
17
 
18
18
  用于发送消息和渠道操作的单一出站命令
19
- (Discord/Google Chat/Slack/Mattermost(插件)/Telegram/WhatsApp/Signal/iMessage/MS Teams)。
20
19
 
21
20
  ## 用法
22
21
 
@@ -28,13 +27,11 @@ symi message <subcommand> [flags]
28
27
 
29
28
  - 如果配置了多个渠道,则必须指定 `--channel`。
30
29
  - 如果只配置了一个渠道,则该渠道为默认值。
31
- - 可选值:`whatsapp|telegram|discord|googlechat|slack|mattermost|signal|imessage|msteams`(Mattermost 需要插件)
32
30
 
33
31
  目标格式(`--target`):
34
32
 
35
33
  - WhatsApp:E.164 或群组 JID
36
34
  - Telegram:聊天 ID 或 `@username`
37
- - Discord:`channel:<id>` 或 `user:<id>`(或 `<@id>` 提及;纯数字 ID 被视为频道)
38
35
  - Google Chat:`spaces/<spaceId>` 或 `users/<userId>`
39
36
  - Slack:`channel:<id>` 或 `user:<id>`(接受纯频道 ID)
40
37
  - Mattermost(插件):`channel:<id>`、`user:<id>` 或 `@username`(纯 ID 被视为频道)
@@ -44,7 +41,6 @@ symi message <subcommand> [flags]
44
41
 
45
42
  名称查找:
46
43
 
47
- - 对于支持的提供商(Discord/Slack 等),如 `Help` 或 `#help` 之类的频道名称会通过目录缓存进行解析。
48
44
  - 缓存未命中时,如果提供商支持,Symi 将尝试实时目录查找。
49
45
 
50
46
  ## 通用标志
@@ -62,7 +58,6 @@ symi message <subcommand> [flags]
62
58
  ### 核心
63
59
 
64
60
  - `send`
65
- - 渠道:WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost(插件)/Signal/iMessage/MS Teams
66
61
  - 必需:`--target`,以及 `--message` 或 `--media`
67
62
  - 可选:`--media`、`--reply-to`、`--thread-id`、`--gif-playback`
68
63
  - 仅限 Telegram:`--buttons`(需要 `channels.telegram.capabilities.inlineButtons` 以启用)
@@ -71,13 +66,10 @@ symi message <subcommand> [flags]
71
66
  - 仅限 WhatsApp:`--gif-playback`
72
67
 
73
68
  - `poll`
74
- - 渠道:WhatsApp/Discord/MS Teams
75
69
  - 必需:`--target`、`--poll-question`、`--poll-option`(可重复)
76
70
  - 可选:`--poll-multi`
77
- - 仅限 Discord:`--poll-duration-hours`、`--message`
78
71
 
79
72
  - `react`
80
- - 渠道:Discord/Google Chat/Slack/Telegram/WhatsApp/Signal
81
73
  - 必需:`--message-id`、`--target`
82
74
  - 可选:`--emoji`、`--remove`、`--participant`、`--from-me`、`--target-author`、`--target-author-uuid`
83
75
  - 注意:`--remove` 需要 `--emoji`(省略 `--emoji` 可清除自己的表情回应(如果支持);参见 /tools/reactions)
@@ -85,96 +77,69 @@ symi message <subcommand> [flags]
85
77
  - Signal 群组表情回应:需要 `--target-author` 或 `--target-author-uuid`
86
78
 
87
79
  - `reactions`
88
- - 渠道:Discord/Google Chat/Slack
89
80
  - 必需:`--message-id`、`--target`
90
81
  - 可选:`--limit`
91
82
 
92
83
  - `read`
93
- - 渠道:Discord/Slack
94
84
  - 必需:`--target`
95
85
  - 可选:`--limit`、`--before`、`--after`
96
- - 仅限 Discord:`--around`
97
86
 
98
87
  - `edit`
99
- - 渠道:Discord/Slack
100
88
  - 必需:`--message-id`、`--message`、`--target`
101
89
 
102
90
  - `delete`
103
- - 渠道:Discord/Slack/Telegram
104
91
  - 必需:`--message-id`、`--target`
105
92
 
106
93
  - `pin` / `unpin`
107
- - 渠道:Discord/Slack
108
94
  - 必需:`--message-id`、`--target`
109
95
 
110
96
  - `pins`(列表)
111
- - 渠道:Discord/Slack
112
97
  - 必需:`--target`
113
98
 
114
99
  - `permissions`
115
- - 渠道:Discord
116
100
  - 必需:`--target`
117
101
 
118
102
  - `search`
119
- - 渠道:Discord
120
103
  - 必需:`--guild-id`、`--query`
121
104
  - 可选:`--channel-id`、`--channel-ids`(可重复)、`--author-id`、`--author-ids`(可重复)、`--limit`
122
105
 
123
106
  ### 线程
124
107
 
125
108
  - `thread create`
126
- - 渠道:Discord
127
109
  - 必需:`--thread-name`、`--target`(频道 ID)
128
110
  - 可选:`--message-id`、`--auto-archive-min`
129
111
 
130
112
  - `thread list`
131
- - 渠道:Discord
132
113
  - 必需:`--guild-id`
133
114
  - 可选:`--channel-id`、`--include-archived`、`--before`、`--limit`
134
115
 
135
116
  - `thread reply`
136
- - 渠道:Discord
137
117
  - 必需:`--target`(线程 ID)、`--message`
138
118
  - 可选:`--media`、`--reply-to`
139
119
 
140
120
  ### 表情符号
141
121
 
142
122
  - `emoji list`
143
- - Discord:`--guild-id`
144
123
  - Slack:无需额外标志
145
124
 
146
125
  - `emoji upload`
147
- - 渠道:Discord
148
126
  - 必需:`--guild-id`、`--emoji-name`、`--media`
149
127
  - 可选:`--role-ids`(可重复)
150
128
 
151
129
  ### 贴纸
152
130
 
153
131
  - `sticker send`
154
- - 渠道:Discord
155
132
  - 必需:`--target`、`--sticker-id`(可重复)
156
133
  - 可选:`--message`
157
134
 
158
135
  - `sticker upload`
159
- - 渠道:Discord
160
136
  - 必需:`--guild-id`、`--sticker-name`、`--sticker-desc`、`--sticker-tags`、`--media`
161
137
 
162
138
  ### 角色 / 频道 / 成员 / 语音
163
139
 
164
- - `role info`(Discord):`--guild-id`
165
- - `role add` / `role remove`(Discord):`--guild-id`、`--user-id`、`--role-id`
166
- - `channel info`(Discord):`--target`
167
- - `channel list`(Discord):`--guild-id`
168
- - `member info`(Discord/Slack):`--user-id`(Discord 还需要 `--guild-id`)
169
- - `voice status`(Discord):`--guild-id`、`--user-id`
170
-
171
140
  ### 事件
172
141
 
173
- - `event list`(Discord):`--guild-id`
174
- - `event create`(Discord):`--guild-id`、`--event-name`、`--start-time`
175
- - 可选:`--end-time`、`--desc`、`--channel-id`、`--location`、`--event-type`
176
-
177
- ### 管理(Discord)
142
+ - 可选:`--end-time`、`--desc`、`--channel-id`、`--location`、`--event-type`
178
143
 
179
144
  - `timeout`:`--guild-id`、`--user-id`(可选 `--duration-min` 或 `--until`;两者都省略则清除超时)
180
145
  - `kick`:`--guild-id`、`--user-id`(+ `--reason`)
@@ -190,17 +155,11 @@ symi message <subcommand> [flags]
190
155
 
191
156
  ## 示例
192
157
 
193
- 发送 Discord 回复:
194
-
195
158
  ```
196
- symi message send --channel discord \
197
159
  --target channel:123 --message "hi" --reply-to 456
198
160
  ```
199
161
 
200
- 创建 Discord 投票:
201
-
202
162
  ```
203
- symi message poll --channel discord \
204
163
  --target channel:123 \
205
164
  --poll-question "Snack?" \
206
165
  --poll-option Pizza --poll-option Sushi \
@@ -26,7 +26,6 @@ symi status --usage
26
26
 
27
27
  注意事项:
28
28
 
29
- - `--deep` 运行实时探测(WhatsApp Web + Telegram + Discord + Google Chat + Slack + Signal)。
30
29
  - 当配置了多个智能体时,输出包含每个智能体的会话存储。
31
30
  - 概览包含 Gateway 网关 + 节点主机服务安装/运行时状态(如果可用)。
32
31
  - 概览包含更新渠道 + git SHA(用于源代码检出)。
@@ -18,7 +18,6 @@ x-i18n:
18
18
 
19
19
  ## 概述
20
20
 
21
- - 单个长期运行的 **Gateway 网关**拥有所有消息平台(通过 Baileys 的 WhatsApp、通过 grammY 的 Telegram、Slack、Discord、Signal、iMessage、WebChat)。
22
21
  - 控制平面客户端(macOS 应用、CLI、Web 界面、自动化)通过配置的绑定主机(默认 `127.0.0.1:18789`)上的 **WebSocket** 连接到 Gateway 网关。
23
22
  - **节点**(macOS/iOS/Android/无头设备)也通过 **WebSocket** 连接,但声明 `role: node` 并带有明确的能力/命令。
24
23
  - 每台主机一个 Gateway 网关;它是唯一打开 WhatsApp 会话的位置。
@@ -16,7 +16,6 @@ x-i18n:
16
16
 
17
17
  <Columns>
18
18
  <Card title="渠道" icon="message-square">
19
- 通过单个 Gateway 网关支持 WhatsApp、Telegram、Discord 和 iMessage。
20
19
  </Card>
21
20
  <Card title="插件" icon="plug">
22
21
  通过扩展添加 Mattermost 等更多平台。
@@ -39,7 +38,6 @@ x-i18n:
39
38
 
40
39
  - 通过 WhatsApp Web(Baileys)集成 WhatsApp
41
40
  - Telegram 机器人支持(grammY)
42
- - Discord 机器人支持(channels.discord.js)
43
41
  - Mattermost 机器人支持(插件)
44
42
  - 通过本地 imsg CLI 集成 iMessage(macOS)
45
43
  - Pi 的智能体桥接,支持 RPC 模式和工具流式传输
@@ -59,7 +59,6 @@ IR(示意):
59
59
  ## 使用场景
60
60
 
61
61
  - Slack、Telegram 和 Signal 的出站适配器从 IR 进行渲染。
62
- - 其他渠道(WhatsApp、iMessage、Microsoft Teams、Discord)仍使用纯文本或各自的格式化规则,启用时会在分块前应用 Markdown 表格转换。
63
62
 
64
63
  ## 表格处理
65
64
 
@@ -73,13 +72,12 @@ Markdown 表格在各聊天客户端中的支持并不一致。使用 `markdown.
73
72
 
74
73
  ```yaml
75
74
  channels:
76
- discord:
77
- markdown:
78
- tables: code
79
- accounts:
80
- work:
81
- markdown:
82
- tables: off
75
+ markdown:
76
+ tables: code
77
+ accounts:
78
+ work:
79
+ markdown:
80
+ tables: off
83
81
  ```
84
82
 
85
83
  ## 分块规则
@@ -54,7 +54,6 @@ x-i18n:
54
54
  byChannel: {
55
55
  whatsapp: 5000,
56
56
  slack: 1500,
57
- discord: 1500,
58
57
  },
59
58
  },
60
59
  },
@@ -120,11 +120,10 @@ symi agents list --bindings
120
120
  绑定是**确定性的**,**最具体的优先**:
121
121
 
122
122
  1. `peer` 匹配(精确私信/群组/频道 id)
123
- 2. `guildId`(Discord
124
- 3. `teamId`(Slack)
125
- 4. 渠道的 `accountId` 匹配
126
- 5. 渠道级匹配(`accountId: "*"`)
127
- 6. 回退到默认智能体(`agents.list[].default`,否则列表中的第一个条目,默认:`main`)
123
+ 2. `teamId`(Slack
124
+ 3. 渠道的 `accountId` 匹配
125
+ 4. 渠道级匹配(`accountId: "*"`)
126
+ 5. 回退到默认智能体(`agents.list[].default`,否则列表中的第一个条目,默认:`main`)
128
127
 
129
128
  ## 多账户/电话号码
130
129
 
@@ -41,7 +41,6 @@ x-i18n:
41
41
  - `queue`(旧版别名):与 `steer` 相同。
42
42
 
43
43
  steer-backlog 意味着你可以在被引导的运行之后获得后续响应,因此流式传输界面可能看起来像重复。如果你希望每条入站消息只有一个响应,请优先使用 `collect`/`steer`。
44
- 发送 `/queue collect` 作为独立命令(按会话)或设置 `messages.queue.byChannel.discord: "collect"`。
45
44
 
46
45
  默认值(配置中未设置时):
47
46
 
@@ -57,7 +56,6 @@ steer-backlog 意味着你可以在被引导的运行之后获得后续响应,
57
56
  debounceMs: 1000,
58
57
  cap: 20,
59
58
  drop: "summarize",
60
- byChannel: { discord: "collect" },
61
59
  },
62
60
  },
63
61
  }
@@ -82,7 +80,6 @@ summarize 保留被丢弃消息的简短要点列表,并将其作为合成的
82
80
 
83
81
  ## 范围和保证
84
82
 
85
- - 适用于所有使用 Gateway 网关回复管道的入站渠道的自动回复智能体运行(WhatsApp 网页版、Telegram、Slack、Discord、Signal、iMessage、网页聊天等)。
86
83
  - 默认通道(`main`)对入站 + 主心跳是进程范围的;设置 `agents.defaults.maxConcurrent` 以允许多个会话并行。
87
84
  - 可能存在额外的通道(例如 `cron`、`subagent`),以便后台任务可以并行运行而不阻塞入站回复。
88
85
  - 按会话通道保证一次只有一个智能体运行触及给定会话。
@@ -28,14 +28,10 @@ x-i18n:
28
28
  - 抖动:0.1(10%)
29
29
  - 提供商默认值:
30
30
  - Telegram 最小延迟:400 毫秒
31
- - Discord 最小延迟:500 毫秒
32
31
 
33
32
  ## 行为
34
33
 
35
- ### Discord
36
-
37
34
  - 仅在速率限制错误(HTTP 429)时重试。
38
- - 可用时使用 Discord `retry_after`,否则使用指数退避。
39
35
 
40
36
  ### Telegram
41
37
 
@@ -58,7 +54,6 @@ x-i18n:
58
54
  jitter: 0.1,
59
55
  },
60
56
  },
61
- discord: {
62
57
  retry: {
63
58
  attempts: 3,
64
59
  minDelayMs: 500,
@@ -54,7 +54,6 @@ x-i18n:
54
54
 
55
55
  - `key`:会话键(字符串)
56
56
  - `kind`:`main | group | cron | hook | node | other`
57
- - `channel`:`whatsapp | telegram | discord | signal | imessage | webchat | internal | unknown`
58
57
  - `displayName`(如果可用的群组显示标签)
59
58
  - `updatedAt`(毫秒)
60
59
  - `sessionId`
@@ -127,7 +126,6 @@ x-i18n:
127
126
  "sendPolicy": {
128
127
  "rules": [
129
128
  {
130
- "match": { "channel": "discord", "chatType": "group" },
131
129
  "action": "deny"
132
130
  }
133
131
  ],
@@ -74,7 +74,6 @@ Symi 将**每个智能体的一个直接聊天会话**视为主会话。直接
74
74
  - 每日重置:默认为 **Gateway 网关主机本地时间凌晨 4:00**。当会话的最后更新早于最近的每日重置时间时,会话即为过期。
75
75
  - 空闲重置(可选):`idleMinutes` 添加一个滑动空闲窗口。当同时配置每日和空闲重置时,**先过期者**强制新会话。
76
76
  - 旧版仅空闲模式:如果你设置了 `session.idleMinutes` 而没有任何 `session.reset`/`resetByType` 配置,Symi 会保持仅空闲模式以保持向后兼容。
77
- - 按类型覆盖(可选):`resetByType` 允许你覆盖 `dm`、`group` 和 `thread` 会话的策略(thread = Slack/Discord 线程、Telegram 话题、连接器提供的 Matrix 线程)。
78
77
  - 按渠道覆盖(可选):`resetByChannel` 覆盖渠道的重置策略(适用于该渠道的所有会话类型,优先于 `reset`/`resetByType`)。
79
78
  - 重置触发器:精确的 `/new` 或 `/reset`(加上 `resetTriggers` 中的任何额外项)启动新的会话 ID 并传递消息的其余部分。`/new <model>` 接受模型别名、`provider/model` 或提供商名称(模糊匹配)来设置新会话模型。如果单独发送 `/new` 或 `/reset`,Symi 会运行一个简短的"问候"轮次来确认重置。
80
79
  - 手动重置:从存储中删除特定键或删除 JSONL 对话记录;下一条消息会重新创建它们。
@@ -88,10 +87,7 @@ Symi 将**每个智能体的一个直接聊天会话**视为主会话。直接
88
87
  {
89
88
  session: {
90
89
  sendPolicy: {
91
- rules: [
92
- { action: "deny", match: { channel: "discord", chatType: "group" } },
93
- { action: "deny", match: { keyPrefix: "cron:" } },
94
- ],
90
+ rules: [{ action: "deny", match: { keyPrefix: "cron:" } }],
95
91
  default: "allow",
96
92
  },
97
93
  },
@@ -113,9 +109,7 @@ Symi 将**每个智能体的一个直接聊天会话**视为主会话。直接
113
109
  session: {
114
110
  scope: "per-sender", // keep group keys separate
115
111
  dmScope: "main", // DM continuity (set per-channel-peer/per-account-channel-peer for shared inboxes)
116
- identityLinks: {
117
- alice: ["telegram:123456789", "discord:987654321012345678"],
118
- },
112
+ identityLinks: {},
119
113
  reset: {
120
114
  // Defaults: mode=daily, atHour=4 (gateway host local time).
121
115
  // If you also set idleMinutes, whichever expires first wins.
@@ -128,9 +122,7 @@ Symi 将**每个智能体的一个直接聊天会话**视为主会话。直接
128
122
  dm: { mode: "idle", idleMinutes: 240 },
129
123
  group: { mode: "idle", idleMinutes: 120 },
130
124
  },
131
- resetByChannel: {
132
- discord: { mode: "idle", idleMinutes: 10080 },
133
- },
125
+ resetByChannel: {},
134
126
  resetTriggers: ["/new", "/reset"],
135
127
  store: "~/.symi/agents/{agentId}/sessions/sessions.json",
136
128
  mainKey: "main",
@@ -52,7 +52,6 @@ Symi 有两个独立的"流式传输"层:
52
52
  - `agents.defaults.blockStreamingCoalesce`:`{ minChars?, maxChars?, idleMs? }`(发送前合并流式块)。
53
53
  - 渠道硬上限:`*.textChunkLimit`(例如 `channels.whatsapp.textChunkLimit`)。
54
54
  - 渠道分块模式:`*.chunkMode`(默认 `length`,`newline` 在长度分块之前按空行(段落边界)分割)。
55
- - Discord 软上限:`channels.discord.maxLinesPerMessage`(默认 17)分割高度较大的回复以避免 UI 裁剪。
56
55
 
57
56
  **边界语义:**
58
57
 
@@ -81,7 +80,6 @@ Symi 有两个独立的"流式传输"层:
81
80
  - `minChars` 防止微小片段发送,直到累积足够文本(最终刷新始终发送剩余文本)。
82
81
  - 连接符从 `blockStreamingChunk.breakPreference` 派生(`paragraph` → `\n\n`,`newline` → `\n`,`sentence` → 空格)。
83
82
  - 渠道覆盖通过 `*.blockStreamingCoalesce` 可用(包括每账户配置)。
84
- - 除非覆盖,Signal/Slack/Discord 的默认合并 `minChars` 提高到 1500。
85
83
 
86
84
  ## 块之间的类人节奏
87
85
 
@@ -97,5 +97,3 @@ Symi 可以为子智能体渲染更小的系统提示词。运行时为每次运
97
97
  这使基础提示词保持小巧,同时仍然支持有针对性的 Skill 使用。
98
98
 
99
99
  ## 文档
100
-
101
- 如果可用,系统提示词包含一个 **Documentation** 部分,指向本地 Symi 文档目录(仓库工作区中的 `docs/` 或打包的 npm 包文档),并注明公共镜像、源仓库、社区 Discord 和 SymiHub (https://symihub.com) 用于 Skills 发现。提示词指示模型首先查阅本地文档了解 Symi 行为、命令、配置或架构,并尽可能自己运行 `symi status`(仅在无法访问时询问用户)。
@@ -69,8 +69,6 @@ Symi 对时间戳进行标准化,使模型看到**单一的参考时间**。
69
69
 
70
70
  ## 工具负载(原始提供商数据 + 规范化字段)
71
71
 
72
- 工具调用(`channels.discord.readMessages`、`channels.slack.readMessages` 等)返回**原始提供商时间戳**。我们还附加规范化字段以保持一致性:
73
-
74
72
  - `timestampMs`(UTC 纪元毫秒数)
75
73
  - `timestampUtc`(ISO 8601 UTC 字符串)
76
74