@symerian/symi 3.0.20 → 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.
- package/dist/{audio-preflight-BaCdNfrk.js → audio-preflight-D7BVT-ls.js} +4 -4
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{chrome-UfmVM0xR.js → chrome-B5CO2vB5.js} +7 -7
- package/dist/{deliver-BqXdac6W.js → deliver-CrwjsDwv.js} +1 -1
- package/dist/extensionAPI.js +7 -7
- package/dist/{image-DIWsXYcW.js → image-Csu7WcLW.js} +1 -1
- package/dist/{manager-DW3SxcPr.js → manager-BkkVjTO8.js} +1 -1
- package/dist/{pi-embedded-BNch0U5F.js → pi-embedded-Dhp64z5l.js} +16 -16
- package/dist/{pi-embedded-helpers-IkHl02JF.js → pi-embedded-helpers-840E4hop.js} +4 -4
- package/dist/{pw-ai-nMkA-oDJ.js → pw-ai-CBgJf_RR.js} +1 -1
- package/dist/{runner-DNEC58JI.js → runner-BbFKo1ne.js} +1 -1
- package/dist/{synthesis-BWAr0sZ9.js → synthesis-DoEM0E8_.js} +7 -7
- package/dist/{web-7a-m_UxL.js → web-BYXJn-Ps.js} +7 -7
- package/package.json +1 -1
- package/docs/.i18n/README.md +0 -31
- package/docs/.i18n/glossary.ja-JP.json +0 -14
- package/docs/.i18n/glossary.zh-CN.json +0 -210
- package/docs/.i18n/ja-JP.tm.jsonl +0 -0
- package/docs/.i18n/zh-CN.tm.jsonl +0 -1303
- package/docs/CNAME +0 -1
- package/docs/assets/install-script.svg +0 -1
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/pixel-symi.svg +0 -60
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +0 -11
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +0 -13
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/assets/sponsors/blacksmith.svg +0 -14
- package/docs/assets/sponsors/openai.svg +0 -3
- package/docs/assets/symi-logo-text-dark.png +0 -0
- package/docs/assets/symi-logo-text.png +0 -0
- package/docs/automation/auth-monitoring.md +0 -44
- package/docs/automation/cron-jobs.md +0 -540
- package/docs/automation/cron-vs-heartbeat.md +0 -286
- package/docs/automation/gmail-pubsub.md +0 -256
- package/docs/automation/hooks.md +0 -998
- package/docs/automation/poll.md +0 -61
- package/docs/automation/troubleshooting.md +0 -122
- package/docs/automation/webhook.md +0 -213
- package/docs/brave-search.md +0 -41
- package/docs/capabilities.md +0 -151
- package/docs/channels/bluebubbles.md +0 -346
- package/docs/channels/broadcast-groups.md +0 -441
- package/docs/channels/channel-routing.md +0 -112
- package/docs/channels/feishu.md +0 -586
- package/docs/channels/googlechat.md +0 -253
- package/docs/channels/grammy.md +0 -31
- package/docs/channels/group-messages.md +0 -82
- package/docs/channels/groups.md +0 -364
- package/docs/channels/imessage.md +0 -366
- package/docs/channels/index.md +0 -46
- package/docs/channels/irc.md +0 -234
- package/docs/channels/line.md +0 -186
- package/docs/channels/location.md +0 -56
- package/docs/channels/matrix.md +0 -300
- package/docs/channels/mattermost.md +0 -158
- package/docs/channels/msteams.md +0 -769
- package/docs/channels/nextcloud-talk.md +0 -138
- package/docs/channels/nostr.md +0 -233
- package/docs/channels/pairing.md +0 -100
- package/docs/channels/signal.md +0 -322
- package/docs/channels/slack.md +0 -510
- package/docs/channels/telegram.md +0 -748
- package/docs/channels/tlon.md +0 -148
- package/docs/channels/troubleshooting.md +0 -110
- package/docs/channels/twitch.md +0 -379
- package/docs/channels/whatsapp.md +0 -444
- package/docs/channels/zalo.md +0 -192
- package/docs/channels/zalouser.md +0 -140
- package/docs/ci.md +0 -50
- package/docs/cli/acp.md +0 -182
- package/docs/cli/agent.md +0 -24
- package/docs/cli/agents.md +0 -75
- package/docs/cli/approvals.md +0 -50
- package/docs/cli/browser.md +0 -107
- package/docs/cli/channels.md +0 -73
- package/docs/cli/config.md +0 -50
- package/docs/cli/configure.md +0 -32
- package/docs/cli/cron.md +0 -44
- package/docs/cli/dashboard.md +0 -16
- package/docs/cli/devices.md +0 -73
- package/docs/cli/directory.md +0 -62
- package/docs/cli/dns.md +0 -23
- package/docs/cli/docs.md +0 -15
- package/docs/cli/doctor.md +0 -41
- package/docs/cli/gateway.md +0 -202
- package/docs/cli/health.md +0 -21
- package/docs/cli/hooks.md +0 -313
- package/docs/cli/index.md +0 -1029
- package/docs/cli/logs.md +0 -28
- package/docs/cli/memory.md +0 -45
- package/docs/cli/message.md +0 -214
- package/docs/cli/models.md +0 -79
- package/docs/cli/node.md +0 -112
- package/docs/cli/nodes.md +0 -73
- package/docs/cli/onboard.md +0 -76
- package/docs/cli/pairing.md +0 -21
- package/docs/cli/plugins.md +0 -92
- package/docs/cli/reset.md +0 -17
- package/docs/cli/sandbox.md +0 -152
- package/docs/cli/security.md +0 -64
- package/docs/cli/sessions.md +0 -16
- package/docs/cli/setup.md +0 -29
- package/docs/cli/skills.md +0 -26
- package/docs/cli/status.md +0 -25
- package/docs/cli/system.md +0 -60
- package/docs/cli/tui.md +0 -23
- package/docs/cli/uninstall.md +0 -17
- package/docs/cli/update.md +0 -98
- package/docs/cli/voicecall.md +0 -34
- package/docs/cli/webhooks.md +0 -25
- package/docs/concepts/agent-loop.md +0 -148
- package/docs/concepts/agent-workspace.md +0 -234
- package/docs/concepts/agent.md +0 -123
- package/docs/concepts/architecture.md +0 -135
- package/docs/concepts/compaction.md +0 -61
- package/docs/concepts/context.md +0 -161
- package/docs/concepts/features.md +0 -51
- package/docs/concepts/markdown-formatting.md +0 -128
- package/docs/concepts/memory.md +0 -729
- package/docs/concepts/messages.md +0 -153
- package/docs/concepts/model-failover.md +0 -149
- package/docs/concepts/model-providers.md +0 -424
- package/docs/concepts/models.md +0 -208
- package/docs/concepts/multi-agent.md +0 -521
- package/docs/concepts/oauth.md +0 -145
- package/docs/concepts/presence.md +0 -102
- package/docs/concepts/queue.md +0 -86
- package/docs/concepts/retry.md +0 -64
- package/docs/concepts/session-pruning.md +0 -123
- package/docs/concepts/session-tool.md +0 -213
- package/docs/concepts/session.md +0 -199
- package/docs/concepts/sessions.md +0 -10
- package/docs/concepts/streaming.md +0 -129
- package/docs/concepts/system-prompt.md +0 -128
- package/docs/concepts/timezone.md +0 -90
- package/docs/concepts/typebox.md +0 -289
- package/docs/concepts/typing-indicators.md +0 -68
- package/docs/concepts/usage-tracking.md +0 -35
- package/docs/date-time.md +0 -127
- package/docs/debug/node-issue.md +0 -85
- package/docs/diagnostics/flags.md +0 -91
- package/docs/docs.json +0 -1849
- package/docs/experiments/onboarding-config-protocol.md +0 -40
- package/docs/experiments/plans/browser-evaluate-cdp-refactor.md +0 -229
- package/docs/experiments/plans/cron-add-hardening.md +0 -62
- package/docs/experiments/plans/group-policy-hardening.md +0 -40
- package/docs/experiments/plans/openresponses-gateway.md +0 -123
- package/docs/experiments/plans/pty-process-supervision.md +0 -192
- package/docs/experiments/plans/session-binding-channel-agnostic.md +0 -202
- package/docs/experiments/plans/thread-bound-subagents.md +0 -281
- package/docs/experiments/proposals/model-config.md +0 -36
- package/docs/experiments/research/memory.md +0 -228
- package/docs/gateway/authentication.md +0 -162
- package/docs/gateway/background-process.md +0 -96
- package/docs/gateway/bonjour.md +0 -177
- package/docs/gateway/bridge-protocol.md +0 -91
- package/docs/gateway/cli-backends.md +0 -225
- package/docs/gateway/configuration-examples.md +0 -610
- package/docs/gateway/configuration-reference.md +0 -2465
- package/docs/gateway/configuration.md +0 -488
- package/docs/gateway/discovery.md +0 -123
- package/docs/gateway/doctor.md +0 -282
- package/docs/gateway/gateway-lock.md +0 -34
- package/docs/gateway/health.md +0 -35
- package/docs/gateway/heartbeat.md +0 -374
- package/docs/gateway/index.md +0 -254
- package/docs/gateway/local-models.md +0 -150
- package/docs/gateway/logging.md +0 -113
- package/docs/gateway/multiple-gateways.md +0 -112
- package/docs/gateway/network-model.md +0 -20
- package/docs/gateway/openai-http-api.md +0 -119
- package/docs/gateway/openresponses-http-api.md +0 -333
- package/docs/gateway/pairing.md +0 -99
- package/docs/gateway/protocol.md +0 -221
- package/docs/gateway/remote-gateway-readme.md +0 -158
- package/docs/gateway/remote.md +0 -131
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -128
- package/docs/gateway/sandboxing.md +0 -203
- package/docs/gateway/security/index.md +0 -931
- package/docs/gateway/tailscale.md +0 -132
- package/docs/gateway/tools-invoke-http-api.md +0 -110
- package/docs/gateway/troubleshooting.md +0 -317
- package/docs/gateway/trusted-proxy-auth.md +0 -270
- package/docs/glass-ui-rendering-invariants.md +0 -451
- package/docs/help/debugging.md +0 -162
- package/docs/help/environment.md +0 -107
- package/docs/help/faq.md +0 -2846
- package/docs/help/index.md +0 -21
- package/docs/help/scripts.md +0 -28
- package/docs/help/testing.md +0 -385
- package/docs/help/troubleshooting.md +0 -264
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/groups-flow.svg +0 -52
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +0 -186
- package/docs/install/ansible.md +0 -207
- package/docs/install/bun.md +0 -59
- package/docs/install/development-channels.md +0 -75
- package/docs/install/docker.md +0 -583
- package/docs/install/exe-dev.md +0 -126
- package/docs/install/fly.md +0 -472
- package/docs/install/gcp.md +0 -499
- package/docs/install/hetzner.md +0 -347
- package/docs/install/index.md +0 -218
- package/docs/install/installer.md +0 -405
- package/docs/install/macos-vm.md +0 -281
- package/docs/install/migrating.md +0 -192
- package/docs/install/nix.md +0 -98
- package/docs/install/node.md +0 -138
- package/docs/install/northflank.mdx +0 -49
- package/docs/install/podman.md +0 -108
- package/docs/install/railway.mdx +0 -95
- package/docs/install/render.mdx +0 -158
- package/docs/install/uninstall.md +0 -128
- package/docs/install/updating.md +0 -231
- package/docs/ja-JP/AGENTS.md +0 -37
- package/docs/ja-JP/index.md +0 -183
- package/docs/ja-JP/start/getting-started.md +0 -125
- package/docs/ja-JP/start/wizard.md +0 -77
- package/docs/logging.md +0 -350
- package/docs/nav-tabs-underline.js +0 -100
- package/docs/network.md +0 -54
- package/docs/nodes/audio.md +0 -133
- package/docs/nodes/camera.md +0 -156
- package/docs/nodes/images.md +0 -72
- package/docs/nodes/index.md +0 -342
- package/docs/nodes/location-command.md +0 -113
- package/docs/nodes/media-understanding.md +0 -379
- package/docs/nodes/talk.md +0 -90
- package/docs/nodes/troubleshooting.md +0 -112
- package/docs/nodes/voicewake.md +0 -65
- package/docs/perplexity.md +0 -80
- package/docs/phase-6.5-pre-flight-audit.md +0 -268
- package/docs/pi-dev.md +0 -70
- package/docs/pi.md +0 -610
- package/docs/platforms/android.md +0 -151
- package/docs/platforms/digitalocean.md +0 -265
- package/docs/platforms/index.md +0 -53
- package/docs/platforms/ios.md +0 -108
- package/docs/platforms/linux.md +0 -94
- package/docs/platforms/mac/bundled-gateway.md +0 -73
- package/docs/platforms/mac/canvas.md +0 -125
- package/docs/platforms/mac/child-process.md +0 -69
- package/docs/platforms/mac/dev-setup.md +0 -104
- package/docs/platforms/mac/health.md +0 -34
- package/docs/platforms/mac/icon.md +0 -31
- package/docs/platforms/mac/logging.md +0 -57
- package/docs/platforms/mac/menu-bar.md +0 -81
- package/docs/platforms/mac/peekaboo.md +0 -65
- package/docs/platforms/mac/permissions.md +0 -50
- package/docs/platforms/mac/release.md +0 -85
- package/docs/platforms/mac/remote.md +0 -84
- package/docs/platforms/mac/signing.md +0 -47
- package/docs/platforms/mac/skills.md +0 -33
- package/docs/platforms/mac/voice-overlay.md +0 -60
- package/docs/platforms/mac/voicewake.md +0 -66
- package/docs/platforms/mac/webchat.md +0 -43
- package/docs/platforms/mac/xpc.md +0 -61
- package/docs/platforms/macos.md +0 -204
- package/docs/platforms/oracle.md +0 -303
- package/docs/platforms/raspberry-pi.md +0 -358
- package/docs/platforms/windows.md +0 -159
- package/docs/plugins/agent-tools.md +0 -99
- package/docs/plugins/community.md +0 -44
- package/docs/plugins/manifest.md +0 -71
- package/docs/plugins/voice-call.md +0 -322
- package/docs/plugins/zalouser.md +0 -81
- package/docs/prose.md +0 -134
- package/docs/providers/anthropic.md +0 -174
- package/docs/providers/bedrock.md +0 -176
- package/docs/providers/claude-max-api-proxy.md +0 -148
- package/docs/providers/cloudflare-ai-gateway.md +0 -71
- package/docs/providers/deepgram.md +0 -93
- package/docs/providers/github-copilot.md +0 -72
- package/docs/providers/glm.md +0 -33
- package/docs/providers/huggingface.md +0 -209
- package/docs/providers/index.md +0 -67
- package/docs/providers/litellm.md +0 -153
- package/docs/providers/minimax.md +0 -208
- package/docs/providers/models.md +0 -52
- package/docs/providers/moonshot.md +0 -142
- package/docs/providers/nvidia.md +0 -55
- package/docs/providers/ollama.md +0 -250
- package/docs/providers/openai.md +0 -62
- package/docs/providers/opencode.md +0 -36
- package/docs/providers/openrouter.md +0 -37
- package/docs/providers/qianfan.md +0 -38
- package/docs/providers/qwen.md +0 -53
- package/docs/providers/synthetic.md +0 -99
- package/docs/providers/together.md +0 -65
- package/docs/providers/venice.md +0 -267
- package/docs/providers/vercel-ai-gateway.md +0 -50
- package/docs/providers/vllm.md +0 -92
- package/docs/providers/xiaomi.md +0 -64
- package/docs/providers/zai.md +0 -38
- package/docs/refactor/exec-host.md +0 -316
- package/docs/refactor/outbound-session-mirroring.md +0 -83
- package/docs/refactor/plugin-sdk.md +0 -214
- package/docs/refactor/strict-config.md +0 -93
- package/docs/refactor/syminet.md +0 -417
- package/docs/reference/AGENTS.default.md +0 -123
- package/docs/reference/RELEASING.md +0 -120
- package/docs/reference/api-usage-costs.md +0 -138
- package/docs/reference/credits.md +0 -28
- package/docs/reference/device-models.md +0 -47
- package/docs/reference/rpc.md +0 -43
- package/docs/reference/session-management-compaction.md +0 -284
- package/docs/reference/test.md +0 -51
- package/docs/reference/token-use.md +0 -136
- package/docs/reference/transcript-hygiene.md +0 -151
- package/docs/reference/wizard.md +0 -265
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -89
- package/docs/security/README.md +0 -16
- package/docs/security/THREAT-MODEL-ATLAS.md +0 -600
- package/docs/security/formal-verification.md +0 -164
- package/docs/start/bootstrapping.md +0 -41
- package/docs/start/docs-directory.md +0 -63
- package/docs/start/getting-started.md +0 -135
- package/docs/start/hubs.md +0 -196
- package/docs/start/lore.md +0 -216
- package/docs/start/onboarding-overview.md +0 -51
- package/docs/start/onboarding.md +0 -81
- package/docs/start/quickstart.md +0 -22
- package/docs/start/setup.md +0 -160
- package/docs/start/showcase.md +0 -414
- package/docs/start/symi.md +0 -211
- package/docs/start/wizard-cli-automation.md +0 -158
- package/docs/start/wizard-cli-reference.md +0 -255
- package/docs/start/wizard.md +0 -109
- package/docs/style.css +0 -37
- package/docs/tools/agent-send.md +0 -52
- package/docs/tools/apply-patch.md +0 -51
- package/docs/tools/browser-linux-troubleshooting.md +0 -139
- package/docs/tools/browser-login.md +0 -67
- package/docs/tools/browser.md +0 -587
- package/docs/tools/chrome-extension.md +0 -183
- package/docs/tools/creating-skills.md +0 -54
- package/docs/tools/elevated.md +0 -55
- package/docs/tools/exec-approvals.md +0 -261
- package/docs/tools/exec.md +0 -184
- package/docs/tools/firecrawl.md +0 -61
- package/docs/tools/index.md +0 -540
- package/docs/tools/llm-task.md +0 -115
- package/docs/tools/loop-detection.md +0 -98
- package/docs/tools/multi-agent-sandbox-tools.md +0 -396
- package/docs/tools/pipeline.md +0 -340
- package/docs/tools/plugin.md +0 -687
- package/docs/tools/reactions.md +0 -21
- package/docs/tools/skills-config.md +0 -76
- package/docs/tools/skills.md +0 -300
- package/docs/tools/slash-commands.md +0 -202
- package/docs/tools/subagents.md +0 -232
- package/docs/tools/symihub.md +0 -256
- package/docs/tools/thinking.md +0 -75
- package/docs/tools/web.md +0 -265
- package/docs/tts.md +0 -398
- package/docs/vps.md +0 -43
- package/docs/web/control-ui.md +0 -247
- package/docs/web/dashboard.md +0 -46
- package/docs/web/index.md +0 -118
- package/docs/web/tui.md +0 -162
- package/docs/web/webchat.md +0 -53
- package/docs/whatsapp-symi-ai-zh.jpg +0 -0
- package/docs/whatsapp-symi.jpg +0 -0
- package/docs/zh-CN/AGENTS.md +0 -59
- package/docs/zh-CN/automation/auth-monitoring.md +0 -47
- package/docs/zh-CN/automation/cron-jobs.md +0 -422
- package/docs/zh-CN/automation/cron-vs-heartbeat.md +0 -286
- package/docs/zh-CN/automation/gmail-pubsub.md +0 -249
- package/docs/zh-CN/automation/hooks.md +0 -881
- package/docs/zh-CN/automation/poll.md +0 -68
- package/docs/zh-CN/automation/troubleshooting.md +0 -8
- package/docs/zh-CN/automation/webhook.md +0 -161
- package/docs/zh-CN/brave-search.md +0 -48
- package/docs/zh-CN/channels/bluebubbles.md +0 -271
- package/docs/zh-CN/channels/broadcast-groups.md +0 -448
- package/docs/zh-CN/channels/channel-routing.md +0 -112
- package/docs/zh-CN/channels/feishu.md +0 -629
- package/docs/zh-CN/channels/googlechat.md +0 -257
- package/docs/zh-CN/channels/grammy.md +0 -38
- package/docs/zh-CN/channels/group-messages.md +0 -89
- package/docs/zh-CN/channels/groups.md +0 -369
- package/docs/zh-CN/channels/imessage.md +0 -300
- package/docs/zh-CN/channels/index.md +0 -52
- package/docs/zh-CN/channels/line.md +0 -180
- package/docs/zh-CN/channels/location.md +0 -63
- package/docs/zh-CN/channels/matrix.md +0 -221
- package/docs/zh-CN/channels/mattermost.md +0 -144
- package/docs/zh-CN/channels/msteams.md +0 -773
- package/docs/zh-CN/channels/nextcloud-talk.md +0 -142
- package/docs/zh-CN/channels/nostr.md +0 -240
- package/docs/zh-CN/channels/pairing.md +0 -86
- package/docs/zh-CN/channels/signal.md +0 -207
- package/docs/zh-CN/channels/slack.md +0 -529
- package/docs/zh-CN/channels/telegram.md +0 -748
- package/docs/zh-CN/channels/tlon.md +0 -136
- package/docs/zh-CN/channels/troubleshooting.md +0 -34
- package/docs/zh-CN/channels/twitch.md +0 -385
- package/docs/zh-CN/channels/whatsapp.md +0 -411
- package/docs/zh-CN/channels/zalo.md +0 -196
- package/docs/zh-CN/channels/zalouser.md +0 -147
- package/docs/zh-CN/cli/acp.md +0 -173
- package/docs/zh-CN/cli/agent.md +0 -30
- package/docs/zh-CN/cli/agents.md +0 -82
- package/docs/zh-CN/cli/approvals.md +0 -57
- package/docs/zh-CN/cli/browser.md +0 -114
- package/docs/zh-CN/cli/channels.md +0 -80
- package/docs/zh-CN/cli/config.md +0 -57
- package/docs/zh-CN/cli/configure.md +0 -37
- package/docs/zh-CN/cli/cron.md +0 -43
- package/docs/zh-CN/cli/dashboard.md +0 -23
- package/docs/zh-CN/cli/devices.md +0 -74
- package/docs/zh-CN/cli/directory.md +0 -69
- package/docs/zh-CN/cli/dns.md +0 -30
- package/docs/zh-CN/cli/docs.md +0 -22
- package/docs/zh-CN/cli/doctor.md +0 -48
- package/docs/zh-CN/cli/gateway.md +0 -206
- package/docs/zh-CN/cli/health.md +0 -28
- package/docs/zh-CN/cli/hooks.md +0 -298
- package/docs/zh-CN/cli/index.md +0 -1025
- package/docs/zh-CN/cli/logs.md +0 -31
- package/docs/zh-CN/cli/memory.md +0 -52
- package/docs/zh-CN/cli/message.md +0 -205
- package/docs/zh-CN/cli/models.md +0 -85
- package/docs/zh-CN/cli/node.md +0 -115
- package/docs/zh-CN/cli/nodes.md +0 -80
- package/docs/zh-CN/cli/onboard.md +0 -36
- package/docs/zh-CN/cli/pairing.md +0 -28
- package/docs/zh-CN/cli/plugins.md +0 -66
- package/docs/zh-CN/cli/reset.md +0 -24
- package/docs/zh-CN/cli/sandbox.md +0 -158
- package/docs/zh-CN/cli/security.md +0 -33
- package/docs/zh-CN/cli/sessions.md +0 -23
- package/docs/zh-CN/cli/setup.md +0 -36
- package/docs/zh-CN/cli/skills.md +0 -33
- package/docs/zh-CN/cli/status.md +0 -32
- package/docs/zh-CN/cli/system.md +0 -63
- package/docs/zh-CN/cli/tui.md +0 -30
- package/docs/zh-CN/cli/uninstall.md +0 -24
- package/docs/zh-CN/cli/update.md +0 -101
- package/docs/zh-CN/cli/voicecall.md +0 -41
- package/docs/zh-CN/cli/webhooks.md +0 -32
- package/docs/zh-CN/concepts/agent-loop.md +0 -146
- package/docs/zh-CN/concepts/agent-workspace.md +0 -219
- package/docs/zh-CN/concepts/agent.md +0 -115
- package/docs/zh-CN/concepts/architecture.md +0 -122
- package/docs/zh-CN/concepts/compaction.md +0 -67
- package/docs/zh-CN/concepts/context.md +0 -168
- package/docs/zh-CN/concepts/features.md +0 -57
- package/docs/zh-CN/concepts/markdown-formatting.md +0 -115
- package/docs/zh-CN/concepts/memory.md +0 -412
- package/docs/zh-CN/concepts/messages.md +0 -140
- package/docs/zh-CN/concepts/model-failover.md +0 -145
- package/docs/zh-CN/concepts/model-providers.md +0 -320
- package/docs/zh-CN/concepts/models.md +0 -196
- package/docs/zh-CN/concepts/multi-agent.md +0 -371
- package/docs/zh-CN/concepts/oauth.md +0 -151
- package/docs/zh-CN/concepts/presence.md +0 -99
- package/docs/zh-CN/concepts/queue.md +0 -91
- package/docs/zh-CN/concepts/retry.md +0 -71
- package/docs/zh-CN/concepts/session-pruning.md +0 -129
- package/docs/zh-CN/concepts/session-tool.md +0 -198
- package/docs/zh-CN/concepts/session.md +0 -158
- package/docs/zh-CN/concepts/sessions.md +0 -17
- package/docs/zh-CN/concepts/streaming.md +0 -131
- package/docs/zh-CN/concepts/system-prompt.md +0 -99
- package/docs/zh-CN/concepts/timezone.md +0 -94
- package/docs/zh-CN/concepts/typebox.md +0 -284
- package/docs/zh-CN/concepts/typing-indicators.md +0 -74
- package/docs/zh-CN/concepts/usage-tracking.md +0 -42
- package/docs/zh-CN/date-time.md +0 -128
- package/docs/zh-CN/debug/node-issue.md +0 -90
- package/docs/zh-CN/diagnostics/flags.md +0 -98
- package/docs/zh-CN/experiments/onboarding-config-protocol.md +0 -47
- package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -69
- package/docs/zh-CN/experiments/plans/group-policy-hardening.md +0 -45
- package/docs/zh-CN/experiments/plans/openresponses-gateway.md +0 -121
- package/docs/zh-CN/experiments/proposals/model-config.md +0 -42
- package/docs/zh-CN/experiments/research/memory.md +0 -235
- package/docs/zh-CN/gateway/authentication.md +0 -142
- package/docs/zh-CN/gateway/background-process.md +0 -100
- package/docs/zh-CN/gateway/bonjour.md +0 -174
- package/docs/zh-CN/gateway/bridge-protocol.md +0 -86
- package/docs/zh-CN/gateway/cli-backends.md +0 -213
- package/docs/zh-CN/gateway/configuration-examples.md +0 -580
- package/docs/zh-CN/gateway/configuration.md +0 -3284
- package/docs/zh-CN/gateway/discovery.md +0 -123
- package/docs/zh-CN/gateway/doctor.md +0 -238
- package/docs/zh-CN/gateway/gateway-lock.md +0 -41
- package/docs/zh-CN/gateway/health.md +0 -42
- package/docs/zh-CN/gateway/heartbeat.md +0 -272
- package/docs/zh-CN/gateway/index.md +0 -335
- package/docs/zh-CN/gateway/local-models.md +0 -157
- package/docs/zh-CN/gateway/logging.md +0 -114
- package/docs/zh-CN/gateway/multiple-gateways.md +0 -119
- package/docs/zh-CN/gateway/network-model.md +0 -23
- package/docs/zh-CN/gateway/openai-http-api.md +0 -125
- package/docs/zh-CN/gateway/openresponses-http-api.md +0 -317
- package/docs/zh-CN/gateway/pairing.md +0 -99
- package/docs/zh-CN/gateway/protocol.md +0 -220
- package/docs/zh-CN/gateway/remote-gateway-readme.md +0 -164
- package/docs/zh-CN/gateway/remote.md +0 -133
- package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -135
- package/docs/zh-CN/gateway/sandboxing.md +0 -188
- package/docs/zh-CN/gateway/security/index.md +0 -772
- package/docs/zh-CN/gateway/tailscale.md +0 -124
- package/docs/zh-CN/gateway/tools-invoke-http-api.md +0 -92
- package/docs/zh-CN/gateway/troubleshooting.md +0 -758
- package/docs/zh-CN/help/debugging.md +0 -160
- package/docs/zh-CN/help/environment.md +0 -88
- package/docs/zh-CN/help/faq.md +0 -2613
- package/docs/zh-CN/help/index.md +0 -28
- package/docs/zh-CN/help/scripts.md +0 -35
- package/docs/zh-CN/help/testing.md +0 -375
- package/docs/zh-CN/help/troubleshooting.md +0 -104
- package/docs/zh-CN/index.md +0 -183
- package/docs/zh-CN/install/ansible.md +0 -214
- package/docs/zh-CN/install/bun.md +0 -65
- package/docs/zh-CN/install/development-channels.md +0 -81
- package/docs/zh-CN/install/docker.md +0 -525
- package/docs/zh-CN/install/exe-dev.md +0 -127
- package/docs/zh-CN/install/fly.md +0 -476
- package/docs/zh-CN/install/gcp.md +0 -509
- package/docs/zh-CN/install/hetzner.md +0 -336
- package/docs/zh-CN/install/index.md +0 -193
- package/docs/zh-CN/install/installer.md +0 -128
- package/docs/zh-CN/install/macos-vm.md +0 -288
- package/docs/zh-CN/install/migrating.md +0 -199
- package/docs/zh-CN/install/nix.md +0 -99
- package/docs/zh-CN/install/node.md +0 -8
- package/docs/zh-CN/install/northflank.mdx +0 -56
- package/docs/zh-CN/install/railway.mdx +0 -102
- package/docs/zh-CN/install/render.mdx +0 -168
- package/docs/zh-CN/install/uninstall.md +0 -135
- package/docs/zh-CN/install/updating.md +0 -233
- package/docs/zh-CN/logging.md +0 -329
- package/docs/zh-CN/network.md +0 -59
- package/docs/zh-CN/nodes/audio.md +0 -120
- package/docs/zh-CN/nodes/camera.md +0 -162
- package/docs/zh-CN/nodes/images.md +0 -79
- package/docs/zh-CN/nodes/index.md +0 -348
- package/docs/zh-CN/nodes/location-command.md +0 -120
- package/docs/zh-CN/nodes/media-understanding.md +0 -380
- package/docs/zh-CN/nodes/talk.md +0 -97
- package/docs/zh-CN/nodes/troubleshooting.md +0 -8
- package/docs/zh-CN/nodes/voicewake.md +0 -72
- package/docs/zh-CN/perplexity.md +0 -84
- package/docs/zh-CN/pi-dev.md +0 -77
- package/docs/zh-CN/pi.md +0 -617
- package/docs/zh-CN/platforms/android.md +0 -155
- package/docs/zh-CN/platforms/digitalocean.md +0 -268
- package/docs/zh-CN/platforms/index.md +0 -60
- package/docs/zh-CN/platforms/ios.md +0 -114
- package/docs/zh-CN/platforms/linux.md +0 -101
- package/docs/zh-CN/platforms/mac/bundled-gateway.md +0 -75
- package/docs/zh-CN/platforms/mac/canvas.md +0 -128
- package/docs/zh-CN/platforms/mac/child-process.md +0 -73
- package/docs/zh-CN/platforms/mac/dev-setup.md +0 -109
- package/docs/zh-CN/platforms/mac/health.md +0 -41
- package/docs/zh-CN/platforms/mac/icon.md +0 -38
- package/docs/zh-CN/platforms/mac/logging.md +0 -64
- package/docs/zh-CN/platforms/mac/menu-bar.md +0 -88
- package/docs/zh-CN/platforms/mac/peekaboo.md +0 -62
- package/docs/zh-CN/platforms/mac/permissions.md +0 -46
- package/docs/zh-CN/platforms/mac/release.md +0 -92
- package/docs/zh-CN/platforms/mac/remote.md +0 -90
- package/docs/zh-CN/platforms/mac/signing.md +0 -54
- package/docs/zh-CN/platforms/mac/skills.md +0 -40
- package/docs/zh-CN/platforms/mac/voice-overlay.md +0 -67
- package/docs/zh-CN/platforms/mac/voicewake.md +0 -73
- package/docs/zh-CN/platforms/mac/webchat.md +0 -43
- package/docs/zh-CN/platforms/mac/xpc.md +0 -68
- package/docs/zh-CN/platforms/macos.md +0 -193
- package/docs/zh-CN/platforms/oracle.md +0 -310
- package/docs/zh-CN/platforms/raspberry-pi.md +0 -365
- package/docs/zh-CN/platforms/windows.md +0 -156
- package/docs/zh-CN/plugins/agent-tools.md +0 -99
- package/docs/zh-CN/plugins/manifest.md +0 -68
- package/docs/zh-CN/plugins/voice-call.md +0 -250
- package/docs/zh-CN/plugins/zalouser.md +0 -88
- package/docs/zh-CN/prose.md +0 -141
- package/docs/zh-CN/providers/anthropic.md +0 -159
- package/docs/zh-CN/providers/bedrock.md +0 -170
- package/docs/zh-CN/providers/claude-max-api-proxy.md +0 -155
- package/docs/zh-CN/providers/deepgram.md +0 -97
- package/docs/zh-CN/providers/github-copilot.md +0 -67
- package/docs/zh-CN/providers/glm.md +0 -39
- package/docs/zh-CN/providers/index.md +0 -66
- package/docs/zh-CN/providers/minimax.md +0 -206
- package/docs/zh-CN/providers/models.md +0 -55
- package/docs/zh-CN/providers/moonshot.md +0 -145
- package/docs/zh-CN/providers/ollama.md +0 -230
- package/docs/zh-CN/providers/openai.md +0 -68
- package/docs/zh-CN/providers/opencode.md +0 -41
- package/docs/zh-CN/providers/openrouter.md +0 -43
- package/docs/zh-CN/providers/qianfan.md +0 -8
- package/docs/zh-CN/providers/qwen.md +0 -55
- package/docs/zh-CN/providers/synthetic.md +0 -102
- package/docs/zh-CN/providers/venice.md +0 -274
- package/docs/zh-CN/providers/vercel-ai-gateway.md +0 -57
- package/docs/zh-CN/providers/xiaomi.md +0 -68
- package/docs/zh-CN/providers/zai.md +0 -41
- package/docs/zh-CN/refactor/exec-host.md +0 -323
- package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -90
- package/docs/zh-CN/refactor/plugin-sdk.md +0 -221
- package/docs/zh-CN/refactor/strict-config.md +0 -100
- package/docs/zh-CN/refactor/syminet.md +0 -424
- package/docs/zh-CN/reference/AGENTS.default.md +0 -130
- package/docs/zh-CN/reference/RELEASING.md +0 -122
- package/docs/zh-CN/reference/api-usage-costs.md +0 -136
- package/docs/zh-CN/reference/credits.md +0 -34
- package/docs/zh-CN/reference/device-models.md +0 -54
- package/docs/zh-CN/reference/rpc.md +0 -48
- package/docs/zh-CN/reference/session-management-compaction.md +0 -286
- package/docs/zh-CN/reference/templates/AGENTS.dev.md +0 -89
- package/docs/zh-CN/reference/templates/AGENTS.md +0 -234
- package/docs/zh-CN/reference/templates/BOOT.md +0 -17
- package/docs/zh-CN/reference/templates/BOOTSTRAP.md +0 -68
- package/docs/zh-CN/reference/templates/IDENTITY.dev.md +0 -54
- package/docs/zh-CN/reference/templates/IDENTITY.md +0 -36
- package/docs/zh-CN/reference/templates/SYMICORE.dev.md +0 -83
- package/docs/zh-CN/reference/templates/SYMICORE.md +0 -49
- package/docs/zh-CN/reference/templates/SYMIPULSE.md +0 -69
- package/docs/zh-CN/reference/templates/TOOLS.dev.md +0 -31
- package/docs/zh-CN/reference/templates/TOOLS.md +0 -53
- package/docs/zh-CN/reference/templates/USER.dev.md +0 -25
- package/docs/zh-CN/reference/templates/USER.md +0 -30
- package/docs/zh-CN/reference/test.md +0 -57
- package/docs/zh-CN/reference/token-use.md +0 -119
- package/docs/zh-CN/reference/transcript-hygiene.md +0 -109
- package/docs/zh-CN/reference/wizard.md +0 -9
- package/docs/zh-CN/security/formal-verification.md +0 -171
- package/docs/zh-CN/start/bootstrapping.md +0 -9
- package/docs/zh-CN/start/docs-directory.md +0 -69
- package/docs/zh-CN/start/getting-started.md +0 -201
- package/docs/zh-CN/start/hubs.md +0 -199
- package/docs/zh-CN/start/lore.md +0 -223
- package/docs/zh-CN/start/onboarding.md +0 -105
- package/docs/zh-CN/start/quickstart.md +0 -88
- package/docs/zh-CN/start/setup.md +0 -151
- package/docs/zh-CN/start/showcase.md +0 -421
- package/docs/zh-CN/start/symi.md +0 -244
- package/docs/zh-CN/start/wizard.md +0 -326
- package/docs/zh-CN/tools/agent-send.md +0 -58
- package/docs/zh-CN/tools/apply-patch.md +0 -57
- package/docs/zh-CN/tools/browser-linux-troubleshooting.md +0 -144
- package/docs/zh-CN/tools/browser-login.md +0 -75
- package/docs/zh-CN/tools/browser.md +0 -553
- package/docs/zh-CN/tools/chrome-extension.md +0 -183
- package/docs/zh-CN/tools/creating-skills.md +0 -61
- package/docs/zh-CN/tools/elevated.md +0 -62
- package/docs/zh-CN/tools/exec-approvals.md +0 -233
- package/docs/zh-CN/tools/exec.md +0 -169
- package/docs/zh-CN/tools/firecrawl.md +0 -68
- package/docs/zh-CN/tools/index.md +0 -508
- package/docs/zh-CN/tools/llm-task.md +0 -117
- package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +0 -400
- package/docs/zh-CN/tools/pipeline.md +0 -349
- package/docs/zh-CN/tools/plugin.md +0 -639
- package/docs/zh-CN/tools/reactions.md +0 -28
- package/docs/zh-CN/tools/skills-config.md +0 -78
- package/docs/zh-CN/tools/skills.md +0 -279
- package/docs/zh-CN/tools/slash-commands.md +0 -196
- package/docs/zh-CN/tools/subagents.md +0 -167
- package/docs/zh-CN/tools/symihub.md +0 -209
- package/docs/zh-CN/tools/thinking.md +0 -80
- package/docs/zh-CN/tools/web.md +0 -257
- package/docs/zh-CN/tts.md +0 -373
- package/docs/zh-CN/vps.md +0 -47
- package/docs/zh-CN/web/control-ui.md +0 -190
- package/docs/zh-CN/web/dashboard.md +0 -53
- package/docs/zh-CN/web/index.md +0 -118
- package/docs/zh-CN/web/tui.md +0 -166
- package/docs/zh-CN/web/webchat.md +0 -56
- package/extensions/imessage/index.ts +0 -17
- package/extensions/imessage/node_modules/.bin/symi +0 -21
- package/extensions/imessage/package.json +0 -15
- package/extensions/imessage/src/channel.outbound.test.ts +0 -66
- package/extensions/imessage/src/channel.ts +0 -298
- package/extensions/imessage/src/runtime.ts +0 -14
- package/extensions/imessage/symi.plugin.json +0 -9
- package/extensions/line/index.ts +0 -19
- package/extensions/line/node_modules/.bin/symi +0 -21
- package/extensions/line/package.json +0 -30
- package/extensions/line/src/card-command.ts +0 -344
- package/extensions/line/src/channel.logout.test.ts +0 -133
- package/extensions/line/src/channel.sendPayload.test.ts +0 -312
- package/extensions/line/src/channel.startup.test.ts +0 -133
- package/extensions/line/src/channel.ts +0 -801
- package/extensions/line/src/runtime.ts +0 -14
- package/extensions/line/symi.plugin.json +0 -9
- package/extensions/signal/index.ts +0 -17
- package/extensions/signal/node_modules/.bin/symi +0 -21
- package/extensions/signal/package.json +0 -15
- package/extensions/signal/src/channel.ts +0 -302
- package/extensions/signal/src/runtime.ts +0 -14
- package/extensions/signal/symi.plugin.json +0 -9
- package/extensions/telegram/index.ts +0 -17
- package/extensions/telegram/node_modules/.bin/symi +0 -21
- package/extensions/telegram/package.json +0 -15
- package/extensions/telegram/src/channel.test.ts +0 -125
- package/extensions/telegram/src/channel.ts +0 -560
- package/extensions/telegram/src/runtime.ts +0 -14
- package/extensions/telegram/symi.plugin.json +0 -9
- package/extensions/whatsapp/index.ts +0 -17
- package/extensions/whatsapp/node_modules/.bin/symi +0 -21
- package/extensions/whatsapp/package.json +0 -15
- package/extensions/whatsapp/src/channel.ts +0 -465
- package/extensions/whatsapp/src/resolve-target.test.ts +0 -170
- package/extensions/whatsapp/src/runtime.ts +0 -14
- package/extensions/whatsapp/symi.plugin.json +0 -9
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 设计超越每日 Markdown 日志的工作区记忆(~/.symi/workspace)
|
|
4
|
-
- Deciding: standalone CLI vs deep Symi integration
|
|
5
|
-
- 添加离线回忆 + 反思(retain/recall/reflect)
|
|
6
|
-
summary: 研究笔记:Symi 工作区的离线记忆系统(Markdown 作为数据源 + 派生索引)
|
|
7
|
-
title: 工作区记忆研究
|
|
8
|
-
x-i18n:
|
|
9
|
-
generated_at: "2026-02-03T10:06:14Z"
|
|
10
|
-
model: claude-opus-4-5
|
|
11
|
-
provider: pi
|
|
12
|
-
source_hash: 1753c8ee6284999fab4a94ff5fae7421c85233699c9d3088453d0c2133ac0feb
|
|
13
|
-
source_path: experiments/research/memory.md
|
|
14
|
-
workflow: 15
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# 工作区记忆 v2(离线):研究笔记
|
|
18
|
-
|
|
19
|
-
目标:Symi 风格的工作区(`agents.defaults.workspace`,默认 `~/.symi/workspace`),其中"记忆"以每天一个 Markdown 文件(`memory/YYYY-MM-DD.md`)加上一小组稳定文件(例如 `memory.md`、`SYMICORE.md`)的形式存储。
|
|
20
|
-
|
|
21
|
-
本文档提出一种**离线优先**的记忆架构,保持 Markdown 作为规范的、可审查的数据源,但通过派生索引添加**结构化回忆**(搜索、实体摘要、置信度更新)。
|
|
22
|
-
|
|
23
|
-
## 为什么要改变?
|
|
24
|
-
|
|
25
|
-
当前设置(每天一个文件)非常适合:
|
|
26
|
-
|
|
27
|
-
- "仅追加"式日志记录
|
|
28
|
-
- 人工编辑
|
|
29
|
-
- git 支持的持久性 + 可审计性
|
|
30
|
-
- 低摩擦捕获("直接写下来")
|
|
31
|
-
|
|
32
|
-
但它在以下方面较弱:
|
|
33
|
-
|
|
34
|
-
- 高召回率检索("我们对 X 做了什么决定?"、"上次我们尝试 Y 时?")
|
|
35
|
-
- 以实体为中心的答案("告诉我关于 Alice / The Castle / warelay 的信息")而无需重读多个文件
|
|
36
|
-
- 观点/偏好稳定性(以及变化时的证据)
|
|
37
|
-
- 时间约束("2025 年 11 月期间什么是真实的?")和冲突解决
|
|
38
|
-
|
|
39
|
-
## 设计目标
|
|
40
|
-
|
|
41
|
-
- **离线**:无需网络即可工作;可在笔记本电脑/Castle 上运行;无云依赖。
|
|
42
|
-
- **可解释**:检索的项目应该可归因(文件 + 位置)并与推理分离。
|
|
43
|
-
- **低仪式感**:每日日志保持 Markdown,无需繁重的 schema 工作。
|
|
44
|
-
- **增量式**:v1 仅使用 FTS 就很有用;语义/向量和图是可选升级。
|
|
45
|
-
- **对智能体友好**:使"在 token 预算内回忆"变得简单(返回小型事实包)。
|
|
46
|
-
|
|
47
|
-
## 北极星模型(Hindsight × Letta)
|
|
48
|
-
|
|
49
|
-
需要融合两个部分:
|
|
50
|
-
|
|
51
|
-
1. **Letta/MemGPT 风格的控制循环**
|
|
52
|
-
|
|
53
|
-
- 保持一个小的"核心"始终在上下文中(角色 + 关键用户事实)
|
|
54
|
-
- 其他所有内容都在上下文之外,通过工具检索
|
|
55
|
-
- 记忆写入是显式的工具调用(append/replace/insert),持久化后在下一轮重新注入
|
|
56
|
-
|
|
57
|
-
2. **Hindsight 风格的记忆基底**
|
|
58
|
-
|
|
59
|
-
- 分离观察到的、相信的和总结的内容
|
|
60
|
-
- 支持 retain/recall/reflect
|
|
61
|
-
- 带有置信度的观点可以随证据演变
|
|
62
|
-
- 实体感知检索 + 时间查询(即使没有完整的知识图谱)
|
|
63
|
-
|
|
64
|
-
## 提议的架构(Markdown 数据源 + 派生索引)
|
|
65
|
-
|
|
66
|
-
### 规范存储(git 友好)
|
|
67
|
-
|
|
68
|
-
保持 `~/.symi/workspace` 作为规范的人类可读记忆。
|
|
69
|
-
|
|
70
|
-
建议的工作区布局:
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
~/.symi/workspace/
|
|
74
|
-
memory.md # 小型:持久事实 + 偏好(类似核心)
|
|
75
|
-
memory/
|
|
76
|
-
YYYY-MM-DD.md # 每日日志(追加;叙事)
|
|
77
|
-
bank/ # "类型化"记忆页面(稳定、可审查)
|
|
78
|
-
world.md # 关于世界的客观事实
|
|
79
|
-
experience.md # 智能体做了什么(第一人称)
|
|
80
|
-
opinions.md # 主观偏好/判断 + 置信度 + 证据指针
|
|
81
|
-
entities/
|
|
82
|
-
Peter.md
|
|
83
|
-
The-Castle.md
|
|
84
|
-
warelay.md
|
|
85
|
-
...
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
注意:
|
|
89
|
-
|
|
90
|
-
- **每日日志保持为每日日志**。无需将其转换为 JSON。
|
|
91
|
-
- `bank/` 文件是**经过整理的**,由反思任务生成,仍可手动编辑。
|
|
92
|
-
- `memory.md` 保持"小型 + 类似核心":你希望 Symi 每次会话都能看到的内容。
|
|
93
|
-
|
|
94
|
-
### 派生存储(机器回忆)
|
|
95
|
-
|
|
96
|
-
在工作区下添加派生索引(不一定需要 git 跟踪):
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
~/.symi/workspace/.memory/index.sqlite
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
后端支持:
|
|
103
|
-
|
|
104
|
-
- 用于事实 + 实体链接 + 观点元数据的 SQLite schema
|
|
105
|
-
- SQLite **FTS5** 用于词法回忆(快速、小巧、离线)
|
|
106
|
-
- 可选的嵌入表用于语义回忆(仍然离线)
|
|
107
|
-
|
|
108
|
-
索引始终**可从 Markdown 重建**。
|
|
109
|
-
|
|
110
|
-
## Retain / Recall / Reflect(操作循环)
|
|
111
|
-
|
|
112
|
-
### Retain:将每日日志规范化为"事实"
|
|
113
|
-
|
|
114
|
-
Hindsight 在这里重要的关键洞察:存储**叙事性、自包含的事实**,而不是微小的片段。
|
|
115
|
-
|
|
116
|
-
`memory/YYYY-MM-DD.md` 的实用规则:
|
|
117
|
-
|
|
118
|
-
- 在一天结束时(或期间),添加一个 `## Retain` 部分,包含 2-5 个要点:
|
|
119
|
-
- 叙事性(保留跨轮上下文)
|
|
120
|
-
- 自包含(独立时也有意义)
|
|
121
|
-
- 标记类型 + 实体提及
|
|
122
|
-
|
|
123
|
-
示例:
|
|
124
|
-
|
|
125
|
-
```
|
|
126
|
-
## Retain
|
|
127
|
-
- W @Peter: Currently in Marrakech (Nov 27–Dec 1, 2025) for Andy's birthday.
|
|
128
|
-
- B @warelay: I fixed the Baileys WS crash by wrapping connection.update handlers in try/catch (see memory/2025-11-27.md).
|
|
129
|
-
- O(c=0.95) @Peter: Prefers concise replies (<1500 chars) on WhatsApp; long content goes into files.
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
最小化解析:
|
|
133
|
-
|
|
134
|
-
- 类型前缀:`W`(世界)、`B`(经历/传记)、`O`(观点)、`S`(观察/摘要;通常是生成的)
|
|
135
|
-
- 实体:`@Peter`、`@warelay` 等(slug 映射到 `bank/entities/*.md`)
|
|
136
|
-
- 观点置信度:`O(c=0.0..1.0)` 可选
|
|
137
|
-
|
|
138
|
-
如果你不想让作者考虑这些:反思任务可以从日志的其余部分推断这些要点,但有一个显式的 `## Retain` 部分是最简单的"质量杠杆"。
|
|
139
|
-
|
|
140
|
-
### Recall:对派生索引的查询
|
|
141
|
-
|
|
142
|
-
Recall 应支持:
|
|
143
|
-
|
|
144
|
-
- **词法**:"查找精确的术语/名称/命令"(FTS5)
|
|
145
|
-
- **实体**:"告诉我关于 X 的信息"(实体页面 + 实体链接的事实)
|
|
146
|
-
- **时间**:"11 月 27 日前后发生了什么"/"自上周以来"
|
|
147
|
-
- **观点**:"Peter 偏好什么?"(带置信度 + 证据)
|
|
148
|
-
|
|
149
|
-
返回格式应对智能体友好并引用来源:
|
|
150
|
-
|
|
151
|
-
- `kind`(`world|experience|opinion|observation`)
|
|
152
|
-
- `timestamp`(来源日期,或如果存在则提取的时间范围)
|
|
153
|
-
- `entities`(`["Peter","warelay"]`)
|
|
154
|
-
- `content`(叙事性事实)
|
|
155
|
-
- `source`(`memory/2025-11-27.md#L12` 等)
|
|
156
|
-
|
|
157
|
-
### Reflect:生成稳定页面 + 更新信念
|
|
158
|
-
|
|
159
|
-
反思是一个定时任务(每日或心跳 `ultrathink`),它:
|
|
160
|
-
|
|
161
|
-
- 根据最近的事实更新 `bank/entities/*.md`(实体摘要)
|
|
162
|
-
- 根据强化/矛盾更新 `bank/opinions.md` 置信度
|
|
163
|
-
- 可选地提议对 `memory.md`("类似核心"的持久事实)的编辑
|
|
164
|
-
|
|
165
|
-
观点演变(简单、可解释):
|
|
166
|
-
|
|
167
|
-
- 每个观点有:
|
|
168
|
-
- 陈述
|
|
169
|
-
- 置信度 `c ∈ [0,1]`
|
|
170
|
-
- last_updated
|
|
171
|
-
- 证据链接(支持 + 矛盾的事实 ID)
|
|
172
|
-
- 当新事实到达时:
|
|
173
|
-
- 通过实体重叠 + 相似性找到候选观点(先 FTS,后嵌入)
|
|
174
|
-
- 通过小幅增量更新置信度;大幅跳跃需要强矛盾 + 重复证据
|
|
175
|
-
|
|
176
|
-
## CLI 集成:独立 vs 深度集成
|
|
177
|
-
|
|
178
|
-
建议:**深度集成到 Symi**,但保持可分离的核心库。
|
|
179
|
-
|
|
180
|
-
### 为什么要集成到 Symi?
|
|
181
|
-
|
|
182
|
-
- Symi 已经知道:
|
|
183
|
-
- 工作区路径(`agents.defaults.workspace`)
|
|
184
|
-
- 会话模型 + 心跳
|
|
185
|
-
- 日志记录 + 故障排除模式
|
|
186
|
-
- 你希望智能体自己调用工具:
|
|
187
|
-
- `symi memory recall "…" --k 25 --since 30d`
|
|
188
|
-
- `symi memory reflect --since 7d`
|
|
189
|
-
|
|
190
|
-
### 为什么仍要分离库?
|
|
191
|
-
|
|
192
|
-
- 保持记忆逻辑可测试,无需 Gateway 网关/运行时
|
|
193
|
-
- 可从其他上下文重用(本地脚本、未来的桌面应用等)
|
|
194
|
-
|
|
195
|
-
形态:
|
|
196
|
-
记忆工具预计是一个小型 CLI + 库层,但这仅是探索性的。
|
|
197
|
-
|
|
198
|
-
## "S-Collide" / SuCo:何时使用(研究)
|
|
199
|
-
|
|
200
|
-
如果"S-Collide"指的是 **SuCo(Subspace Collision)**:这是一种 ANN 检索方法,通过在子空间中使用学习/结构化碰撞来实现强召回/延迟权衡(论文:arXiv 2411.14754,2024)。
|
|
201
|
-
|
|
202
|
-
对于 `~/.symi/workspace` 的务实观点:
|
|
203
|
-
|
|
204
|
-
- **不要从** SuCo 开始。
|
|
205
|
-
- 从 SQLite FTS +(可选的)简单嵌入开始;你会立即获得大部分 UX 收益。
|
|
206
|
-
- 仅在以下情况下考虑 SuCo/HNSW/ScaNN 级别的解决方案:
|
|
207
|
-
- 语料库很大(数万/数十万个块)
|
|
208
|
-
- 暴力嵌入搜索变得太慢
|
|
209
|
-
- 召回质量明显受到词法搜索的瓶颈限制
|
|
210
|
-
|
|
211
|
-
离线友好的替代方案(按复杂性递增):
|
|
212
|
-
|
|
213
|
-
- SQLite FTS5 + 元数据过滤(零 ML)
|
|
214
|
-
- 嵌入 + 暴力搜索(如果块数量低,效果出奇地好)
|
|
215
|
-
- HNSW 索引(常见、稳健;需要库绑定)
|
|
216
|
-
- SuCo(研究级;如果有可嵌入的可靠实现则很有吸引力)
|
|
217
|
-
|
|
218
|
-
开放问题:
|
|
219
|
-
|
|
220
|
-
- 对于你的机器(笔记本 + 台式机)上的"个人助理记忆",**最佳**的离线嵌入模型是什么?
|
|
221
|
-
- 如果你已经有 Ollama:使用本地模型嵌入;否则在工具链中附带一个小型嵌入模型。
|
|
222
|
-
|
|
223
|
-
## 最小可用试点
|
|
224
|
-
|
|
225
|
-
如果你想要一个最小但仍有用的版本:
|
|
226
|
-
|
|
227
|
-
- 添加 `bank/` 实体页面和每日日志中的 `## Retain` 部分。
|
|
228
|
-
- 使用 SQLite FTS 进行带引用的回忆(路径 + 行号)。
|
|
229
|
-
- 仅在召回质量或规模需要时添加嵌入。
|
|
230
|
-
|
|
231
|
-
## 参考资料
|
|
232
|
-
|
|
233
|
-
- Letta / MemGPT 概念:"核心记忆块" + "档案记忆" + 工具驱动的自编辑记忆。
|
|
234
|
-
- Hindsight 技术报告:"retain / recall / reflect",四网络记忆,叙事性事实提取,观点置信度演变。
|
|
235
|
-
- SuCo:arXiv 2411.14754(2024):"Subspace Collision"近似最近邻检索。
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 调试模型认证或 OAuth 过期
|
|
4
|
-
- 记录认证或凭证存储
|
|
5
|
-
summary: 模型认证:OAuth、API 密钥和 setup-token
|
|
6
|
-
title: 认证
|
|
7
|
-
x-i18n:
|
|
8
|
-
generated_at: "2026-02-03T07:47:32Z"
|
|
9
|
-
model: claude-opus-4-5
|
|
10
|
-
provider: pi
|
|
11
|
-
source_hash: 66fa2c64ff374c9cfcdb4e7a951b0d164d512295e65513eb682f12191b75e557
|
|
12
|
-
source_path: gateway/authentication.md
|
|
13
|
-
workflow: 15
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# 认证
|
|
17
|
-
|
|
18
|
-
Symi 支持模型提供商的 OAuth 和 API 密钥。对于 Anthropic 账户,我们推荐使用 **API 密钥**。对于 Claude 订阅访问,使用 `claude setup-token` 创建的长期令牌。
|
|
19
|
-
|
|
20
|
-
参阅 [/concepts/oauth](/concepts/oauth) 了解完整的 OAuth 流程和存储布局。
|
|
21
|
-
|
|
22
|
-
## 推荐的 Anthropic 设置(API 密钥)
|
|
23
|
-
|
|
24
|
-
如果你直接使用 Anthropic,请使用 API 密钥。
|
|
25
|
-
|
|
26
|
-
1. 在 Anthropic 控制台创建 API 密钥。
|
|
27
|
-
2. 将其放在 **Gateway 网关主机**(运行 `symi gateway` 的机器)上。
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
export ANTHROPIC_API_KEY="..."
|
|
31
|
-
symi models status
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
3. 如果 Gateway 网关在 systemd/launchd 下运行,最好将密钥放在 `~/.symi/.env` 中以便守护进程可以读取:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
cat >> ~/.symi/.env <<'EOF'
|
|
38
|
-
ANTHROPIC_API_KEY=...
|
|
39
|
-
EOF
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
然后重启守护进程(或重启你的 Gateway 网关进程)并重新检查:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
symi models status
|
|
46
|
-
symi doctor
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
如果你不想自己管理环境变量,新手引导向导可以为守护进程使用存储 API 密钥:`symi onboard`。
|
|
50
|
-
|
|
51
|
-
参阅[帮助](/help)了解环境变量继承的详情(`env.shellEnv`、`~/.symi/.env`、systemd/launchd)。
|
|
52
|
-
|
|
53
|
-
## Anthropic:setup-token(订阅认证)
|
|
54
|
-
|
|
55
|
-
对于 Anthropic,推荐的路径是 **API 密钥**。如果你使用 Claude 订阅,也支持 setup-token 流程。在 **Gateway 网关主机**上运行:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
claude setup-token
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
然后将其粘贴到 Symi:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
symi models auth setup-token --provider anthropic
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
如果令牌是在另一台机器上创建的,手动粘贴:
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
symi models auth paste-token --provider anthropic
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
如果你看到类似这样的 Anthropic 错误:
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
This credential is only authorized for use with Claude Code and cannot be used for other API requests.
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
…请改用 Anthropic API 密钥。
|
|
80
|
-
|
|
81
|
-
手动令牌输入(任何提供商;写入 `auth-profiles.json` + 更新配置):
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
symi models auth paste-token --provider anthropic
|
|
85
|
-
symi models auth paste-token --provider openrouter
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
自动化友好检查(过期/缺失时退出 `1`,即将过期时退出 `2`):
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
symi models status --check
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
可选的运维脚本(systemd/Termux)在此处记录:[/automation/auth-monitoring](/automation/auth-monitoring)
|
|
95
|
-
|
|
96
|
-
> `claude setup-token` 需要交互式 TTY。
|
|
97
|
-
|
|
98
|
-
## 检查模型认证状态
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
symi models status
|
|
102
|
-
symi doctor
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
## 控制使用哪个凭证
|
|
106
|
-
|
|
107
|
-
### 每会话(聊天命令)
|
|
108
|
-
|
|
109
|
-
使用 `/model <alias-or-id>@<profileId>` 为当前会话固定特定的提供商凭证(示例配置文件 ID:`anthropic:default`、`anthropic:work`)。
|
|
110
|
-
|
|
111
|
-
使用 `/model`(或 `/model list`)获取紧凑的选择器;使用 `/model status` 获取完整视图(候选项 + 下一个认证配置文件,以及配置时的提供商端点详情)。
|
|
112
|
-
|
|
113
|
-
### 每智能体(CLI 覆盖)
|
|
114
|
-
|
|
115
|
-
为智能体设置显式的认证配置文件顺序覆盖(存储在该智能体的 `auth-profiles.json` 中):
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
symi models auth order get --provider anthropic
|
|
119
|
-
symi models auth order set --provider anthropic anthropic:default
|
|
120
|
-
symi models auth order clear --provider anthropic
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
使用 `--agent <id>` 指定特定智能体;省略它则使用配置的默认智能体。
|
|
124
|
-
|
|
125
|
-
## 故障排除
|
|
126
|
-
|
|
127
|
-
### "No credentials found"
|
|
128
|
-
|
|
129
|
-
如果 Anthropic 令牌配置文件缺失,在 **Gateway 网关主机**上运行 `claude setup-token`,然后重新检查:
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
symi models status
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### 令牌即将过期/已过期
|
|
136
|
-
|
|
137
|
-
运行 `symi models status` 确认哪个配置文件即将过期。如果配置文件缺失,重新运行 `claude setup-token` 并再次粘贴令牌。
|
|
138
|
-
|
|
139
|
-
## 要求
|
|
140
|
-
|
|
141
|
-
- Claude Max 或 Pro 订阅(用于 `claude setup-token`)
|
|
142
|
-
- 已安装 Claude Code CLI(`claude` 命令可用)
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 添加或修改后台 exec 行为
|
|
4
|
-
- 调试长时间运行的 exec 任务
|
|
5
|
-
summary: 后台 exec 执行和进程管理
|
|
6
|
-
title: 后台 Exec 和 Process 工具
|
|
7
|
-
x-i18n:
|
|
8
|
-
generated_at: "2026-02-03T10:05:51Z"
|
|
9
|
-
model: claude-opus-4-5
|
|
10
|
-
provider: pi
|
|
11
|
-
source_hash: e11a7d74a75000d6882f703693c2c49a2ecd3e730b6ec2b475ac402abde9e465
|
|
12
|
-
source_path: gateway/background-process.md
|
|
13
|
-
workflow: 15
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# 后台 Exec + Process 工具
|
|
17
|
-
|
|
18
|
-
Symi 通过 `exec` 工具运行 shell 命令,并将长时间运行的任务保存在内存中。`process` 工具管理这些后台会话。
|
|
19
|
-
|
|
20
|
-
## exec 工具
|
|
21
|
-
|
|
22
|
-
关键参数:
|
|
23
|
-
|
|
24
|
-
- `command`(必填)
|
|
25
|
-
- `yieldMs`(默认 10000):在此延迟后自动转为后台运行
|
|
26
|
-
- `background`(布尔值):立即转为后台运行
|
|
27
|
-
- `timeout`(秒,默认 1800):在此超时后终止进程
|
|
28
|
-
- `elevated`(布尔值):如果启用/允许提权模式,则在宿主机上运行
|
|
29
|
-
- 需要真实 TTY?设置 `pty: true`。
|
|
30
|
-
- `workdir`、`env`
|
|
31
|
-
|
|
32
|
-
行为:
|
|
33
|
-
|
|
34
|
-
- 前台运行直接返回输出。
|
|
35
|
-
- 当转为后台运行(显式或超时)时,工具返回 `status: "running"` + `sessionId` 和一小段尾部输出。
|
|
36
|
-
- 输出保存在内存中,直到会话被轮询或清除。
|
|
37
|
-
- 如果 `process` 工具被禁用,`exec` 将同步运行并忽略 `yieldMs`/`background`。
|
|
38
|
-
|
|
39
|
-
## 子进程桥接
|
|
40
|
-
|
|
41
|
-
当在 exec/process 工具之外生成长时间运行的子进程时(例如 CLI 重新生成或 Gateway 网关辅助程序),请附加子进程桥接辅助程序,以便终止信号被转发,监听器在退出/错误时被分离。这可以避免在 systemd 上产生孤立进程,并保持跨平台的关闭行为一致。
|
|
42
|
-
|
|
43
|
-
环境变量覆盖:
|
|
44
|
-
|
|
45
|
-
- `PI_BASH_YIELD_MS`:默认 yield 时间(毫秒)
|
|
46
|
-
- `PI_BASH_MAX_OUTPUT_CHARS`:内存输出上限(字符)
|
|
47
|
-
- `SYMI_BASH_PENDING_MAX_OUTPUT_CHARS`:每个流的待处理 stdout/stderr 上限(字符)
|
|
48
|
-
- `PI_BASH_JOB_TTL_MS`:已完成会话的 TTL(毫秒,限制在 1 分钟至 3 小时之间)
|
|
49
|
-
|
|
50
|
-
配置(推荐):
|
|
51
|
-
|
|
52
|
-
- `tools.exec.backgroundMs`(默认 10000)
|
|
53
|
-
- `tools.exec.timeoutSec`(默认 1800)
|
|
54
|
-
- `tools.exec.cleanupMs`(默认 1800000)
|
|
55
|
-
- `tools.exec.notifyOnExit`(默认 true):当后台 exec 退出时,将系统事件加入队列并请求心跳。
|
|
56
|
-
|
|
57
|
-
## process 工具
|
|
58
|
-
|
|
59
|
-
操作:
|
|
60
|
-
|
|
61
|
-
- `list`:正在运行和已完成的会话
|
|
62
|
-
- `poll`:获取会话的新输出(同时报告退出状态)
|
|
63
|
-
- `log`:读取聚合输出(支持 `offset` + `limit`)
|
|
64
|
-
- `write`:发送 stdin(`data`,可选 `eof`)
|
|
65
|
-
- `kill`:终止后台会话
|
|
66
|
-
- `clear`:从内存中移除已完成的会话
|
|
67
|
-
- `remove`:如果正在运行则终止,否则清除已完成的会话
|
|
68
|
-
|
|
69
|
-
注意事项:
|
|
70
|
-
|
|
71
|
-
- 只有后台会话会在内存中列出/保留。
|
|
72
|
-
- 会话在进程重启时会丢失(无磁盘持久化)。
|
|
73
|
-
- 会话日志只有在你运行 `process poll/log` 且工具结果被记录时才会保存到聊天历史。
|
|
74
|
-
- `process` 按智能体隔离;它只能看到该智能体启动的会话。
|
|
75
|
-
- `process list` 包含派生的 `name`(命令动词 + 目标)以便快速浏览。
|
|
76
|
-
- `process log` 使用基于行的 `offset`/`limit`(省略 `offset` 以获取最后 N 行)。
|
|
77
|
-
|
|
78
|
-
## 示例
|
|
79
|
-
|
|
80
|
-
运行长时间任务并稍后轮询:
|
|
81
|
-
|
|
82
|
-
```json
|
|
83
|
-
{ "tool": "exec", "command": "sleep 5 && echo done", "yieldMs": 1000 }
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
```json
|
|
87
|
-
{ "tool": "process", "action": "poll", "sessionId": "<id>" }
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
立即在后台启动:
|
|
91
|
-
|
|
92
|
-
```json
|
|
93
|
-
{ "tool": "exec", "command": "npm run build", "background": true }
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
发送 stdin:
|
|
97
|
-
|
|
98
|
-
```json
|
|
99
|
-
{ "tool": "process", "action": "write", "sessionId": "<id>", "data": "y\n" }
|
|
100
|
-
```
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
read_when:
|
|
3
|
-
- 在 macOS/iOS 上调试 Bonjour 设备发现问题时
|
|
4
|
-
- 更改 mDNS 服务类型、TXT 记录或设备发现用户体验时
|
|
5
|
-
summary: Bonjour/mDNS 设备发现 + 调试(Gateway 网关信标、客户端和常见故障模式)
|
|
6
|
-
title: Bonjour 设备发现
|
|
7
|
-
x-i18n:
|
|
8
|
-
generated_at: "2026-02-03T07:47:48Z"
|
|
9
|
-
model: claude-opus-4-5
|
|
10
|
-
provider: pi
|
|
11
|
-
source_hash: 47569da55f0c0523bd5ff05275dc95ccb52f75638193cfbdb4eaaa162aadf08c
|
|
12
|
-
source_path: gateway/bonjour.md
|
|
13
|
-
workflow: 15
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Bonjour / mDNS 设备发现
|
|
17
|
-
|
|
18
|
-
Symi 使用 Bonjour(mDNS / DNS‑SD)作为**仅限局域网的便捷方式**来发现
|
|
19
|
-
活跃的 Gateway 网关(WebSocket 端点)。这是尽力而为的,**不能**替代 SSH 或
|
|
20
|
-
基于 Tailnet 的连接。
|
|
21
|
-
|
|
22
|
-
## 通过 Tailscale 的广域 Bonjour(单播 DNS‑SD)
|
|
23
|
-
|
|
24
|
-
如果节点和 Gateway 网关在不同的网络上,多播 mDNS 无法跨越
|
|
25
|
-
边界。你可以通过切换到基于 Tailscale 的**单播 DNS‑SD**
|
|
26
|
-
("广域 Bonjour")来保持相同的设备发现用户体验。
|
|
27
|
-
|
|
28
|
-
概要步骤:
|
|
29
|
-
|
|
30
|
-
1. 在 Gateway 网关主机上运行 DNS 服务器(可通过 Tailnet 访问)。
|
|
31
|
-
2. 在专用区域下发布 `_symi-gw._tcp` 的 DNS‑SD 记录
|
|
32
|
-
(示例:`symi.internal.`)。
|
|
33
|
-
3. 配置 Tailscale **分割 DNS**,使你选择的域名通过该
|
|
34
|
-
DNS 服务器为客户端(包括 iOS)解析。
|
|
35
|
-
|
|
36
|
-
Symi 支持任何发现域名;`symi.internal.` 只是一个示例。
|
|
37
|
-
iOS/Android 节点同时浏览 `local.` 和你配置的广域域名。
|
|
38
|
-
|
|
39
|
-
### Gateway 网关配置(推荐)
|
|
40
|
-
|
|
41
|
-
```json5
|
|
42
|
-
{
|
|
43
|
-
gateway: { bind: "tailnet" }, // 仅 tailnet(推荐)
|
|
44
|
-
discovery: { wideArea: { enabled: true } }, // 启用广域 DNS-SD 发布
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### 一次性 DNS 服务器设置(Gateway 网关主机)
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
symi dns setup --apply
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
这会安装 CoreDNS 并配置它:
|
|
55
|
-
|
|
56
|
-
- 仅在 Gateway 网关的 Tailscale 接口上监听 53 端口
|
|
57
|
-
- 从 `~/.symi/dns/<domain>.db` 提供你选择的域名服务(示例:`symi.internal.`)
|
|
58
|
-
|
|
59
|
-
从 Tailnet 连接的机器上验证:
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
dns-sd -B _symi-gw._tcp symi.internal.
|
|
63
|
-
dig @<TAILNET_IPV4> -p 53 _symi-gw._tcp.symi.internal PTR +short
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Tailscale DNS 设置
|
|
67
|
-
|
|
68
|
-
在 Tailscale 管理控制台中:
|
|
69
|
-
|
|
70
|
-
- 添加指向 Gateway 网关 Tailnet IP 的名称服务器(UDP/TCP 53)。
|
|
71
|
-
- 添加分割 DNS,使你的发现域名使用该名称服务器。
|
|
72
|
-
|
|
73
|
-
一旦客户端接受 Tailnet DNS,iOS 节点就可以在
|
|
74
|
-
你的发现域名中浏览 `_symi-gw._tcp`,无需多播。
|
|
75
|
-
|
|
76
|
-
### Gateway 网关监听器安全(推荐)
|
|
77
|
-
|
|
78
|
-
Gateway 网关 WS 端口(默认 `18789`)默认绑定到 loopback。对于局域网/Tailnet
|
|
79
|
-
访问,请明确绑定并保持认证启用。
|
|
80
|
-
|
|
81
|
-
对于仅 Tailnet 的设置:
|
|
82
|
-
|
|
83
|
-
- 在 `~/.symi/symi.json` 中设置 `gateway.bind: "tailnet"`。
|
|
84
|
-
- 重启 Gateway 网关(或重启 macOS 菜单栏应用)。
|
|
85
|
-
|
|
86
|
-
## 什么在广播
|
|
87
|
-
|
|
88
|
-
只有 Gateway 网关广播 `_symi-gw._tcp`。
|
|
89
|
-
|
|
90
|
-
## 服务类型
|
|
91
|
-
|
|
92
|
-
- `_symi-gw._tcp` — Gateway 网关传输信标(被 macOS/iOS/Android 节点使用)。
|
|
93
|
-
|
|
94
|
-
## TXT 键(非机密提示)
|
|
95
|
-
|
|
96
|
-
Gateway 网关广播小型非机密提示以方便 UI 流程:
|
|
97
|
-
|
|
98
|
-
- `role=gateway`
|
|
99
|
-
- `displayName=<友好名称>`
|
|
100
|
-
- `lanHost=<hostname>.local`
|
|
101
|
-
- `gatewayPort=<port>`(Gateway 网关 WS + HTTP)
|
|
102
|
-
- `gatewayTls=1`(仅当 TLS 启用时)
|
|
103
|
-
- `gatewayTlsSha256=<sha256>`(仅当 TLS 启用且指纹可用时)
|
|
104
|
-
- `canvasPort=<port>`(仅当画布主机启用时;默认 `18793`)
|
|
105
|
-
- `sshPort=<port>`(未覆盖时默认为 22)
|
|
106
|
-
- `transport=gateway`
|
|
107
|
-
- `cliPath=<path>`(可选;可运行的 `symi` 入口点的绝对路径)
|
|
108
|
-
- `tailnetDns=<magicdns>`(当 Tailnet 可用时的可选提示)
|
|
109
|
-
|
|
110
|
-
## 在 macOS 上调试
|
|
111
|
-
|
|
112
|
-
有用的内置工具:
|
|
113
|
-
|
|
114
|
-
- 浏览实例:
|
|
115
|
-
```bash
|
|
116
|
-
dns-sd -B _symi-gw._tcp local.
|
|
117
|
-
```
|
|
118
|
-
- 解析单个实例(替换 `<instance>`):
|
|
119
|
-
```bash
|
|
120
|
-
dns-sd -L "<instance>" _symi-gw._tcp local.
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
如果浏览有效但解析失败,你通常遇到的是局域网策略或
|
|
124
|
-
mDNS 解析器问题。
|
|
125
|
-
|
|
126
|
-
## 在 Gateway 网关日志中调试
|
|
127
|
-
|
|
128
|
-
Gateway 网关会写入滚动日志文件(启动时打印为
|
|
129
|
-
`gateway log file: ...`)。查找 `bonjour:` 行,特别是:
|
|
130
|
-
|
|
131
|
-
- `bonjour: advertise failed ...`
|
|
132
|
-
- `bonjour: ... name conflict resolved` / `hostname conflict resolved`
|
|
133
|
-
- `bonjour: watchdog detected non-announced service ...`
|
|
134
|
-
|
|
135
|
-
## 在 iOS 节点上调试
|
|
136
|
-
|
|
137
|
-
iOS 节点使用 `NWBrowser` 来发现 `_symi-gw._tcp`。
|
|
138
|
-
|
|
139
|
-
要捕获日志:
|
|
140
|
-
|
|
141
|
-
- 设置 → Gateway 网关 → 高级 → **Discovery Debug Logs**
|
|
142
|
-
- 设置 → Gateway 网关 → 高级 → **Discovery Logs** → 复现 → **Copy**
|
|
143
|
-
|
|
144
|
-
日志包括浏览器状态转换和结果集变化。
|
|
145
|
-
|
|
146
|
-
## 常见故障模式
|
|
147
|
-
|
|
148
|
-
- **Bonjour 不能跨网络**:使用 Tailnet 或 SSH。
|
|
149
|
-
- **多播被阻止**:某些 Wi‑Fi 网络禁用 mDNS。
|
|
150
|
-
- **休眠 / 接口变动**:macOS 可能暂时丢弃 mDNS 结果;重试。
|
|
151
|
-
- **浏览有效但解析失败**:保持机器名称简单(避免表情符号或
|
|
152
|
-
标点符号),然后重启 Gateway 网关。服务实例名称源自
|
|
153
|
-
主机名,因此过于复杂的名称可能会混淆某些解析器。
|
|
154
|
-
|
|
155
|
-
## 转义的实例名称(`\032`)
|
|
156
|
-
|
|
157
|
-
Bonjour/DNS‑SD 经常将服务实例名称中的字节转义为十进制 `\DDD`
|
|
158
|
-
序列(例如空格变成 `\032`)。
|
|
159
|
-
|
|
160
|
-
- 这在协议级别是正常的。
|
|
161
|
-
- UI 应该解码以进行显示(iOS 使用 `BonjourEscapes.decode`)。
|
|
162
|
-
|
|
163
|
-
## 禁用 / 配置
|
|
164
|
-
|
|
165
|
-
- `SYMI_DISABLE_BONJOUR=1` 禁用广播(旧版:`SYMI_DISABLE_BONJOUR`)。
|
|
166
|
-
- `~/.symi/symi.json` 中的 `gateway.bind` 控制 Gateway 网关绑定模式。
|
|
167
|
-
- `SYMI_SSH_PORT` 覆盖 TXT 中广播的 SSH 端口(旧版:`SYMI_SSH_PORT`)。
|
|
168
|
-
- `SYMI_TAILNET_DNS` 在 TXT 中发布 MagicDNS 提示(旧版:`SYMI_TAILNET_DNS`)。
|
|
169
|
-
- `SYMI_CLI_PATH` 覆盖广播的 CLI 路径(旧版:`SYMI_CLI_PATH`)。
|
|
170
|
-
|
|
171
|
-
## 相关文档
|
|
172
|
-
|
|
173
|
-
- 设备发现策略和传输选择:[设备发现](/gateway/discovery)
|
|
174
|
-
- 节点配对 + 批准:[Gateway 网关配对](/gateway/pairing)
|