Skip to content
FunCoding

Search

Search docs, Skills and MCP

跨会话发现与消息审核

理解同机消息、review class、入站设置、回执和速率限制。

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

同一用户、同一机器上的交互会话默认可互相发现并发消息。关闭 agents.crossSessionMessaging 并重启,可让该会话不可见且不可达;bare/safe-mode 不论设置如何都关闭此功能。

寻址

模型 list_agents 的 sessions 字段给出其他会话,self 给出当前名称;send_message 用名称作为 to。重名时要附带短 [ref],例如 name [ref],模糊裸名会被拒绝。

to:"*" 仅指本 Agent Team 的 teammate,不广播到其他会话。命令行查看注册见sessions ps。

消息标记为来自其他会话,不具有接收方用户的授权,仍受接收方自身权限限制。

入站决定

agents.crossSessionInbound 可设 accept、hold、refuse。未设置时通常按 review class 比较:default/plan 为逐操作审查一类,auto-edit/auto/yolo 为部分自动执行一类;同类直接送达,跨类或未声明类别的发送者消息扣留。

review class 是发送者自报,不能当作身份认证保证;本会话子进程和用户授权 controller 另有令牌通道。/peers 查看等待消息,/peers accept 或 deny all 决定;仅因模式不同扣留的消息,在两者类别一致后会自动释放。

工作区只能收紧为 hold/refuse 或关闭 messaging,不能放松操作者限制;有效的未知值按全部 hold 处理,System 设置仍优先。

过期与回执

agents.crossSessionHeldExpiry 支持 1m、5m、10m、never,默认 5 分钟;缩短会影响已等待消息。

send_message 成功只确认交给接收端,不证明已读或执行。后续回执区分 held、declined、refused、dropped、expired、misaddressed 和解除 hold:declined 是人看后拒绝,refused 是配置拒收,dropped 是在进入审核前被入口限流等拒绝。

misaddressed 表示地址已变更归属,应重新 list_agents。回执显示在发送方记录;发送模型不会因此获得对方执行结果,真实回复仍是一条新跨会话消息。

限流

单发送者允许初始 30 条、随后每两秒一条;全体发送者共享初始 32 条、随后每秒一条。发送者轮换名称不能绕过全体限制。

同一发送者 30 秒内重复完全相同文本会丢弃,自己的子进程和 controller 豁免文本去重但不豁免速率限制;等待队列最多 50 条。被入口丢弃的消息不入 hold、不展示给模型,不留下已接收记录,后续可重新尝试。

发送侧也预测会被拒绝的流量,提前要求合并消息。接收方按发送者最多每分钟显示一条计数,发送方收到合并回执;不应对丢弃消息立即循环重发。

端点和 ACP 限制

无法绑定正常 inbox 时先尝试临时目录的私有位置,再失败才以无 inbox 启动,启动及 /peers 会给原因。共享 runtime 目录中 PID 重复时,新会话选择相邻地址,不夺占旧地址。

ACP 驱动会话可以注册并发送,但当前发给它们的消息会直接拒绝而非 hold,因为尚无相应人工待审界面。多会话共享进程和 inbox 时仍必须指明目标会话。

外部程序接入时使用跨会话协议参考,不要把界面提示直接当成 wire protocol 字段。