Skip to content
FunCoding

Search

Search docs, Skills and MCP

可信控制者与脚本回注

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

This page has not been translated into English yet. The original Chinese version is shown below.

跨会话 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 实现编写;本页不将“注册成功”当作可信身份或人工授权。