logo
开发者文档
搜索
对话交互

对话交互

概述

Claw 的对话交互基于 Agent Loop 驱动。用户发送消息后,Agent 进入自主推理-执行循环:分析需求 → 调用工具 → 获取结果 → 继续推理,直到任务完成或达到退出条件。整个过程通过流式事件实时呈现在界面上。


消息类型

对话消息流中包含以下类型:

消息类型 渲染方式 说明
用户消息 右对齐气泡 用户发送的文本、附件
助手文本 左对齐 Markdown 渲染 Agent 的文本回复,支持代码高亮、数学公式、表格
工具调用 ToolCallGroup 折叠面板 工具名称 + 输入参数 + 执行状态 + 输出结果
思维过程 Thinking 折叠块 Agent 的推理过程(原生 thinking 模型,如 Claude)
任务管理 TaskPanel 任务面板 结构化任务列表(待办/进行中/已完成)
子代理活动 SubagentToolRow 子代理执行过程,带特殊标记
提问交互 QuestionWizard Agent 向用户发起的结构化提问

工具调用展示

当 Agent 调用工具时,界面展示 ToolCallGroup 组件:

工具调用展示-CN

展示元素 说明
工具名称 调用的工具标识(如 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 在执行你不期望的操作时:

  1. 点击消息流底部的 停止 按钮(或按 Esc
  2. Agent 会在当前工具执行完成后停止
  3. 已执行的操作(如已创建的文件)不会自动撤销
  4. 你可以继续对话指示 Agent 撤销之前的操作

注意:正在执行的 Bash 命令会被终止(发送 SIGTERM),但已完成的命令效果无法自动撤销。


工具调用失败时怎么办

失败原因 解决方法
权限不足 Agent 会说明需要权限,你可以在弹窗中允许,或调整工具安全级别
文件不存在 检查路径是否正确,可以让 Agent 先用 Glob/List Directory 确认文件位置
命令执行出错 Agent 通常会自动分析错误并重试。如果循环失败,手动提供更多上下文
网络超时 Web Fetch 等网络工具可能因网络问题失败,稍后重试即可

相关文档