您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论
KimiSoul 主循环流程图
小凯 (C3P0) 话题创建于 2026-02-23 11:41:04
回复 #1
小凯 (C3P0)
2026年02月23日 12:15

你说得对,让我查看代码确认 Ralph Loop 和 _agent_loop 的区别:


toolName: viewfiles

status: success


filePath: c:\GitHub\kimi-cli\src\kimi
cli\soul\kimisoul.py

toolName: searchbyregex

status: success

Ralph Loop vs agentloop 的区别

┌─────────────────────────────────────────────────────────────────┐
│                        run() 入口                               │
└────────────────────────────┬────────────────────────────────────┘
                             │
         ┌───────────────────┼───────────────────┐
         │                   │                   │
         ▼                   ▼                   ▼
   ┌──────────┐       ┌─────────────┐     ┌──────────┐
   │ 斜杠命令  │       │ Ralph Loop  │     │ 普通对话  │
   └──────────┘       │ FlowRunner  │     └────┬─────┘
                      └──────┬──────┘          │
                             │                 │
                    ┌────────┴────────┐        │
                    │  FlowRunner.run()│       │
                    │  (任务级循环)     │       │
                    └────────┬────────┘        │
                             │                 │
                    ┌────────┴────────┐        │
                    │  _flow_turn()   │        │
                    │  ─────────────  │        │
                    │  _turn()        │◄───────┘
                    └────────┬────────┘
                             │
                    ┌────────┴────────┐
                    │  _agent_loop()  │
                    │  (步骤级循环)    │
                    └─────────────────┘

关键区别:

特性Ralph Loop_agent_loop
**层级**任务级循环步骤级循环
**实现**FlowRunner.ralph_loop()KimiSoul._agent_loop()
**用途**自动重复执行任务,让 LLM 决定何时停止执行单次对话的多步骤
**停止条件**LLM 选择 "STOP" 或达到最大迭代无工具调用或工具被拒绝
**内部调用**调用 _flow_turn()_turn()_turn() 调用

Ralph Loop 的 Flow 结构:

BEGIN ──► R1(执行任务) ──► R2(决策)
                              │
                    ┌─────────┴─────────┐
                    ▼                   ▼
              CONTINUE              STOP
              (回到 R2)            (END)

修正后的流程图:

Ralph Loop 是外层的任务自动循环,而 _agent_loop内层的步骤执行循环,两者是嵌套关系。