CodingAgent 外层 turn 循环:单turn→聚合→LoopPolicy 决策

CodingAgent 外层 turn 循环:单turn→聚合→LoopPolicy 决策 由 Archify 生成的工作流图。 01 / 宿主调用面 02 / CodingAgentLoopController 03 / CodingSession + LoopPolicy 入口与上限 单 turn 执行 聚合与决策 宿主调用方 · run / runStream · 宿主调用面 › 入口与上限 宿主调用方 run / runStream CodingAgentResult · 聚合产出返回 · 宿主调用面 › 聚合与决策 CodingAgentResult 聚合产出返回 上限闸 · maxTotalTurns · 中断 · CodingAgentLoopController › 入口与上限 上限闸 maxTotalTurns · 中断 聚合器 · steps/token/cost 累加 · CodingAgentLoopController › 聚合与决策 聚合器 steps/token/cost 累加 continuationPrompt · 下一 turn 输入 · CodingAgentLoopController › 聚合与决策 continuationPrompt 下一 turn 输入 runSingleTurn · 内层 ReAct 执行 · CodingSession + LoopPolicy › 单 turn 执行 runSingleTurn 内层 ReAct 执行 decide() · CONTINUE_* / stop · CodingSession + LoopPolicy › 聚合与决策 decide() CONTINUE_* / stop turnResult isContinueLoop decide(policy,…) stop → aggregate 返回 continuationPrompt 回环 run(request) 放行 → 单 turn 图例 Agent 逻辑 策略 外部系统

三类继续决策

  • • CONTINUE_AFTER_TOOL_WORK / CONTINUE_AFTER_COMPACTION / CONTINUE_AUTONOMOUS_WORK
  • • decision.continuationPrompt 直接作为下一 turn 的输入;autoFollowUps 计数随轮递增

停止语义

  • • turns ≥ maxTotalTurns → forcedStop(MAX_TOTAL_TURNS_REACHED)立即聚合返回
  • • 输出文本命中 CONTINUE_PATTERN 可续跑;decision.isBlocked / 非 continue 即出循环

聚合与审计

  • • 每 turn 累加 steps、各档 token、cost 与币种(币种不一致置 null 并标 mismatch)
  • • session.recordLoopDecision 记录每次决策;StepOffsetAgentListener 给事件步号加全局偏移