对话交互
对话交互
概述
Claw 的对话交互基于 Agent Loop 驱动。用户发送消息后,Agent 进入自主推理-执行循环:分析需求 → 调用工具 → 获取结果 → 继续推理,直到任务完成或达到退出条件。整个过程通过流式事件实时呈现在界面上。
消息类型
对话消息流中包含以下类型:
| 消息类型 | 渲染方式 | 说明 |
|---|---|---|
| 用户消息 | 右对齐气泡 | 用户发送的文本、附件 |
| 助手文本 | 左对齐 Markdown 渲染 | Agent 的文本回复,支持代码高亮、数学公式、表格 |
| 工具调用 | ToolCallGroup 折叠面板 | 工具名称 + 输入参数 + 执行状态 + 输出结果 |
| 思维过程 | Thinking 折叠块 | Agent 的推理过程(原生 thinking 模型,如 Claude) |
| 任务管理 | TaskPanel 任务面板 | 结构化任务列表(待办/进行中/已完成) |
| 子代理活动 | SubagentToolRow | 子代理执行过程,带特殊标记 |
| 提问交互 | QuestionWizard | Agent 向用户发起的结构化提问 |
工具调用展示
当 Agent 调用工具时,界面展示 ToolCallGroup 组件:

| 展示元素 | 说明 |
|---|---|
| 工具名称 | 调用的工具标识(如 Bash、Read File) |
| 输入参数 | 工具接收的参数(可折叠查看) |
| 执行状态 | loading(旋转图标)/ success(绿色勾)/ error(红色叉) |
| 输出结果 | 工具返回的内容(长内容可折叠) |
多个工具调用按执行顺序分组展示。并发执行的工具会在同一组中显示。
流式输出
Agent 的回复通过流式事件实时推送到界面:
| 事件类型 | 说明 |
|---|---|
text_delta |
文本片段,逐字追加到消息区 |
thinking |
思维过程片段(支持 Anthropic 原生 thinking) |
tool_use_start |
工具调用开始,展示工具名称和参数 |
tool_result |
工具执行结果,更新状态图标 |
error |
错误信息 |
done |
本轮完成 |
用户可以在流式输出过程中看到 Agent 的实时推理和操作,提供透明的执行体验。
会话管理
新建会话
点击左上角"新建对话"按钮或使用快捷键,创建新的会话。新会话从欢迎页开始,或直接输入消息发起对话。
会话列表操作
| 操作 | 说明 |
|---|---|
| 搜索 | 按关键词过滤会话标题 |
| 置顶 | 将重要会话固定在列表顶部 |
| 文件夹分组 | 将会话组织到自定义文件夹中 |
| 删除 | 移除会话(不可恢复) |
| 重命名 | 修改会话标题 |
会话快照与恢复
APP 端支持会话快照持久化,防止意外中断导致对话丢失:
| 快照策略 | 说明 |
|---|---|
every_tool_round(默认) |
每次工具调用后保存 |
every_round |
每轮 LLM 交互后保存 |
manual |
仅手动触发保存 |
快照存储为 JSON 文件(原子写入,.tmp + rename 防损坏),可通过 resumeSessionId 恢复中断的会话。
本地对话与远程对话
在多节点场景下,会话列表中的对话会显示不同的来源图标:
| 图标 | 含义 |
|---|---|
| 本地 APP 节点发起或执行的对话 | |
| 远程节点执行的对话 | |
| 来自 IM 渠道(Telegram、WeChat 等)的对话 |
这帮助用户快速区分对话的执行来源。
Agent Loop 复杂任务能力
Agent Loop 使 Claw 能够处理需要多步操作的复杂任务:
示例场景:用户要求"分析项目目录结构并生成架构文档"
轮次 1: Agent 调用 List Directory 浏览项目结构
轮次 2: Agent 调用 Glob Files 搜索关键配置文件
轮次 3: Agent 调用 Read File 读取核心文件内容
轮次 4: Agent 调用 Search Files 查找模块依赖关系
轮次 5: Agent 综合分析并生成 Markdown 架构文档
轮次 6: Agent 调用 Write File 保存文档到指定路径
轮次 1: Agent 调用 List Directory 浏览项目结构
轮次 2: Agent 调用 Glob Files 搜索关键配置文件
轮次 3: Agent 调用 Read File 读取核心文件内容
轮次 4: Agent 调用 Search Files 查找模块依赖关系
轮次 5: Agent 综合分析并生成 Markdown 架构文档
轮次 6: Agent 调用 Write File 保存文档到指定路径
此代码块在浮窗中显示
整个过程 Agent 自主决策调用哪些工具、按什么顺序执行,用户无需逐步指导。默认最大 25 轮循环,断路器机制保证异常时自动停止。
技术详情请参考 Agent 循环引擎。
提示技巧:如何更有效地与 Agent 对话
| 技巧 | 示例 | 效果 |
|---|---|---|
| 明确目标 | "帮我重构 utils.ts 中的 formatDate 函数,改为使用 date-fns" | Agent 准确定位目标和方案 |
| 分步请求 | "先列出所有 .tsx 文件,然后告诉我哪些使用了 class 组件" | Agent 按步骤执行,结果更可控 |
| 指定工具 | "请使用 Bash 运行 npm test" |
Agent 直接使用指定工具 |
| 要求确认 | "先告诉我你的计划,确认后再执行" | 防止 Agent 直接修改文件 |
| 提供上下文 | "这是一个 React + TypeScript 项目,使用 Vite 构建" | Agent 给出更贴切的建议 |
如何中止正在执行的任务
当 Agent 在执行你不期望的操作时:
- 点击消息流底部的 停止 按钮(或按
Esc) - Agent 会在当前工具执行完成后停止
- 已执行的操作(如已创建的文件)不会自动撤销
- 你可以继续对话指示 Agent 撤销之前的操作
注意:正在执行的 Bash 命令会被终止(发送 SIGTERM),但已完成的命令效果无法自动撤销。
工具调用失败时怎么办
| 失败原因 | 解决方法 |
|---|---|
| 权限不足 | Agent 会说明需要权限,你可以在弹窗中允许,或调整工具安全级别 |
| 文件不存在 | 检查路径是否正确,可以让 Agent 先用 Glob/List Directory 确认文件位置 |
| 命令执行出错 | Agent 通常会自动分析错误并重试。如果循环失败,手动提供更多上下文 |
| 网络超时 | Web Fetch 等网络工具可能因网络问题失败,稍后重试即可 |
相关文档
- 多模态输入输出 — 文件输入与预览能力
- 子代理 — 任务分解与委托
- Agent 循环引擎 — 底层循环机制
- 上下文 5 层压缩 — 长对话上下文管理
