Agent 运行模式与交互规划

SeekClaw 提供四种不同的 Agent 运行模式(Execution Modes),用于在不同任务场景下精确控制模型的行为边界、工具调用权限以及交互深度。


四种运行模式概览

模式 命令/标识 权限级别 适用场景
Edit(编辑模式) /mode edit 完整读写 默认开发模式,进行代码编写、重构、修复与验证
Plan(规划模式) /mode plan 只读分析 复杂或架构级任务,先拆解步骤、评估风险与生成方案
Auto(自主模式) /mode auto 自主循环 目标明确的长任务,自动持续执行直到满足验证条件
ReadOnly(只读模式) /mode readonly 严格只读 代码审查、代码解释、仓库搜索与安全审计

1. Edit 模式(默认开发模式)

Edit 是日常编码的基准模式。Agent 可以使用全部已启用的内置工具(如 read_fileedit_filewrite_filebash)和 MCP 工具。

核心特性

  • 增量手术式编辑:优先使用 edit_file 进行精准局部替换,保持项目原有代码格式与注释。
  • 自动构建验证:修改文件后自动触发项目的编译或测试检查(如果开启了 AutoVerify)。
  • 人机协同确认:每一步操作对用户透明,在终端或桌面端实时显示思考过程与工具调用参数。
# 在 CLI 中切换为编辑模式
/mode edit

2. Plan 模式(架构与多阶段规划)

在面对大型重构、跨模块设计或需求模糊的任务时,直接修改代码往往容易偏离方向。Plan 模式让 Agent 专注于调研、拆解与制定可执行方案

工作流机制

  1. 沙盒降级:所有修改类工具(edit_filewrite_filegit 写入等)被自动拦截或禁用。
  2. 工具调研:模型通过 globgrepread_file 深入阅读代码库结构与依赖关系。
  3. 结构化步骤输出:输出具体的任务执行清单、依赖顺序与验证标准。
  4. 平滑转入执行:用户审阅规划无误后,直接切换回 /mode edit 执行。
用户: "请规划将当前的纯文本日志系统升级为 Serilog 结构化日志方案"
Agent (Plan 模式): 
1. 扫描现有 ILogger 使用点与配置文件
2. 设计 Serilog Sink 配置(控制台 + 文件轮转)
3. 制定修改文件清单与步骤依赖
4. 规划验证与回归测试用例

3. Auto 模式(自主循环模式)

Auto 模式适用于目标极其明确且具有自动化测试验证闭环的场景(例如:"修复测试集中的 3 个失败用例并确保全部通过")。

核心特性

  • 自主推进行动:Agent 会在单轮任务预算(MaxSteps)内自主连续调用工具,无需每步等待用户敲击确认。
  • 自动纠错与重试:遇到编译错误或测试失败时,自动捕获错误信息并启动自我修复循环(最多 MaxRepairAttempts 次)。
  • 完成判定:当所有验证指令通过且目标达成时,Agent 自动停机并向用户交付最终总结。

4. ReadOnly 模式(安全审计与代码审查)

在进行敏感代码排查、安全审计、他人仓库探索或只读问答时使用。

  • 任何可能改变磁盘文件、Git 状态或外部系统的工具调用都会被运行时直接拦截拒绝。
  • 适合新人熟悉大型项目代码,或在生产/演示环境中安全运行。

5. 实时插话与动态干预(Mid-turn Steering)

SeekClaw 独创了 Mid-turn Steering(运行中动态插话) 机制。在模型正在生成思考、输出文本或连续调用工具的过程中,用户无需按下 Ctrl+C 强制打断!

如何工作?

  1. 非阻塞输入:当 Agent 正在执行耗时任务(如扫描大目录或长思考)时,直接在输入框键入新指令。
  2. 平滑注入上下文:该指令会被作为高优先级指导消息([User Steering Instruction])无缝追加到下一步的上下文提示流中。
  3. 即时路线调整:模型在完成当前原子工具调用后,立即感知到用户的最新意图,动态调整后续路线,无需从头重新启动会话。
[示例场景]
Agent 正在读取整个 node_modules 目录...
用户实时输入: "不要扫描 node_modules,只看 src 目录!"
Agent 立即响应: "好的,跳过 node_modules,转为检索 src/components..."
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.