跨会话发现与消息审核
理解同机消息、review class、入站设置、回执和速率限制。
同一用户、同一机器上的交互会话默认可互相发现并发消息。关闭 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
工作区只能收紧为 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 字段。