No description
- TypeScript 100%
| auto-continue.ts | ||
| LICENSE | ||
| README.md | ||
pi-auto-continue
pi coding agent 扩展:当模型"话说一半"就结束回合时,自动续跑,不再需要手动输入"继续"。
解决什么问题
部分模型(尤其 flash 档,如 GLM 系列小杯)在长 agent 循环里有个通病:把分析/计划作为正文输出,以"接下来测 X:"之类的宣布句结尾,然后不发起任何工具调用就 end_turn,回合中断,用户被迫反复输入"继续"。
安装
cp auto-continue.ts ~/.pi/agent/extensions/
# 已在运行的 pi 会话里执行 /reload 即可生效
工作原理
在 agent_before_settle(回合最终结算点)检查最后一条 assistant 消息,满足全部条件才自动续跑:
stopReason === "stop"且没有任何工具调用(模型自己收的工)- 文本符合"话说一半"特征:
- 以
:/:或.../……结尾 - 代码块 ``` 未闭合
- 最后一行是"宣布语气"(中文:接下来/下一步/先测/验证…;英文:Let me / Next / I'll…)
- 以
- 不误伤正常收工:以
?/?结尾(向用户提问)不触发;正常结论句不触发
触发后追加一条不可见的提示("直接发起工具调用,别重复分析"),并返回 continue: true 强制再跑一次模型请求。
防失控
- 每个 agent run 最多自动续 5 次(
MAX_AUTO_CONTINUES),到顶弹出通知请人工介入 - abort / 出错时不掺和
/autocontinue命令随时开关;每次续跑有 warning 通知提示进度(n/5)
已知局限
"完整句子式的宣布"(如 ...Test group B now.)与正常结论句无法可靠区分,为避免无限循环采用保守策略,不触发。覆盖大多数场景(冒号/省略号/未闭合代码块/宣布语气结尾)。
License
MIT