代码导读:steer 何时成为模型上下文
固定 MoonshotAI/kimi-code@75a894e9ad5e8d49509664b3daaa1bbc9bb39432,只读 packages/agent-core 的静态实现。以下是源码可见的控制路径,不是一条实际录制的用户会话。
prompt()记录turn.prompt后调用launch();launch()拒绝与活动 turn 并行启动,成功时分配 turn ID、AbortController和 worker。prompt/launchsteer()记录turn.steer。活动 turn 存在时,只向steerBuffer追加并返回null;空闲时调用launch()。故返回null只说明未分配新 turn ID,不能证明模型已经看到输入。steerflushSteerBuffer()依到达顺序调用context.appendUserMessage(),随后清空数组;此处既不调用模型,也不执行工具。flushSteerBufferrunOneTurn()发出turn.started并追加初始输入;用户来源的输入还会过UserPromptSubmithook。该 hook 可阻止本次模型 loop,作为结束边界;本篇未沿 hook 实现细查具体配置。turn 起点与 hookrunStepLoop()调用通用runTurn(),把buildMessages、工具集合与 hooks 交给它。beforeStep先刷新 steer,再做压缩检测及注入;因此已刷新输入在下一步构建模型消息时可见。runStepLoop- 若一步以
tool_use结束,runTurn()继续下一步;否则它调用shouldContinueAfterStop()。Kimi Code 的回调先刷新 steer;若有,则请求继续,即使模型这一步本来准备停。runTurn· 停止回调 - 没有 steer 时,停止回调仍可能因 goal outcome 或一次
Stophook 阻拦而继续;否则返回 false。runTurn()的 abort、maxSteps检查可能先结束或抛错,不能把“已缓冲”写成“一定会有下一次模型调用”。停止优先序 · loop 上限与异常 cancel()用信号终止活动 turn;runOneTurn()将中止与异常分别映射成cancelled和failed,发出turn.ended。活动 goal 会引入外层连续 turn 驱动,本篇的图只画一个 turn 内的 steer 决策。取消 · 结束映射 · goal 外层驱动
在线预览稿:书稿仍在校稿,系统篇以文内固定源码版本为准;静态阅读不等于运行验收。