No description
  • TypeScript 100%
Find a file
2026-10-12 13:57:55 +08:00
auto-continue.ts auto-continue: 自动续跑提前收工的模型回合 2026-10-12 13:57:55 +08:00
LICENSE auto-continue: 自动续跑提前收工的模型回合 2026-10-12 13:57:55 +08:00
README.md auto-continue: 自动续跑提前收工的模型回合 2026-10-12 13:57:55 +08:00

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