Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

如何控制对话轮次

轮次从哪来

每段对话自带一个计数器:第一封信 turn="1",回信 2,再回 3——双方都不用记,引用里自动 +1,status --conversations 的 turn 列读的就是它。它是对话的里程表:一眼看出这段对话走了多远,也看出两个 agent 是不是在对弹。

给对话设预算

预算三层来源,优先级从高到低:

层形态生效范围
单条消息crosschat send --max-turn 40 …这一条信封
环境变量CROSSCHAT_MAX_TURN=40这台机器的每次 send
会话级(启动器)crosschat claude --max-turn 40这个会话后续所有 send(写进子进程环境变量)

启动器形态最常用:起会话时就定好这场的预算,之后会话里每次发消息都自动带上,不用每条手写。非法值(非正整数)的行为有意不对称——send 侧静默降级到下一层(不打断 agent 的自纠循环),启动器侧当场报错(人在终端前,立刻改)。

turn=“13/40” 怎么读

设了预算,信封里的轮次就带分母(真实信封头,--max-turn 5 发出):

<cross-session-message from-name="单机通信专家" turn="1/5">

13/40 读作:第 13 轮,预算 40 轮。收发双方都看得见——这是协议层的共同仪表盘,不是私设的提醒。

预算是软提醒

超过预算不硬拦:turn="41/40" 照发照显,任务没完可以继续。设计意图是给收发双方一个“该总结收尾了“的共同信号,而不是替你掐断对话——什么时候停是判断题,协议只保证双方看到同一个数字。实操口径:接近分母时主动总结结论、说清剩余事项,需要继续就明说“预算续到多少“。

轮次、限流与上下文

三个容易混的东西,各管各的:

机制管什么数字
轮次计数这段对话走了多远(里程)无上限,只计数
轮次预算提醒收尾(软)你定(--max-turn)
防乒乓限流两个 AI 别无限对弹(速率)30 条 / 60 秒 / 每对会话,超了报 RATE_LIMITED 等待即可

⚠️ 概念红线:这些机制(连同 16KiB 大小上限)都是传输与状态治理,不是上下文保护——crosschat 不管理任何 agent 的上下文窗口,也管不了。对话内容的真正治理是轮次预算:它是协议给“上下文快满了“这件事的唯一答案(机制全貌见第1课 1.5 上限与限流)。