跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

可信控制者与脚本回注

区分公开 peer 令牌、子进程令牌和用户签发 controller 令牌。

跨会话 inbox 连接要求先提交会话令牌。普通 peer 通过 registry 自动交换;自己的脚本和用户选择的外部控制程序使用不同来源的令牌,权限边界也不同。

本会话子进程

Qwen Code 将 QWEN_CODE_MESSAGING_SOCKET 和 QWEN_CODE_MESSAGING_TOKEN 传给自己启动的脚本/Hook。这个 child token 不公开到 registry,收到后识别为 own-process,不是另一普通会话。

在默认 review-class 策略下它可免审送达;显式 hold/refuse 仍适用。消息明确标为脚本来源,不当作用户本人。

每次回注需要新的 msgId,复用已处理 ID 会静默去重。自己的脚本可重复相同文本,但仍受速率与队列限制。

签发控制者

qwen sessions controllers add --label voice-bridge

令牌只显示一次,Qwen home 的文件仅保存 SHA-256 hash。将原始令牌保存在被授权程序自己的配置,不要依赖以后能从该文件找回。

controller 使用首行 auth frame,目标 socket 从 sessions ps --json 的 ipcPath 获取。授权属于 Qwen home,不局限于一个会话;接收方每次连接重读授权文件,签发/撤销下一连接即生效,无需重启。

qwen sessions controllers list
qwen sessions controllers remove c_1a2b

撤销 ID 是示例,以实际列表为准。会话内 /peers controllers、/peers revoke 提供相同管理。

授权范围

controller 免去逐消息 review-class 比较,但不能覆盖显式 hold/refuse。它可以传递接下来做什么,不能替用户回答待批准提示,也不能要求接收模型修改权限、QWEN.md 或配置来扩大权限。

持有令牌者都可作为该 controller 发消息;每个选定程序独立保管,用完撤销。消息展示其 controller 标签,不应仅凭显示名称判断身份。

外部程序接入

遵循 registry/inbox 契约的外部程序可登记 kind:external,出现在 ps/list_agents 并收到消息与回执。官方 @qwen-code/sdk/peer 提供 PeerEndpoint.start({ name })、list、send 和 onMessage 入口。

完整帧、认证和生命周期需按官方 Cross-Session Protocol 与 SDK 实现编写;本页不将“注册成功”当作可信身份或人工授权。