attempt_completion
attempt_completion
工具用于标记 Kilo Code 认为任务已完成并向用户展示结果。它提供了任务完成的摘要,可选地包括一个用于展示结果的命令,并支持通过用户反馈进行进一步优化。
参数
该工具接受以下参数:
result
(必填): 最终结果描述,总结已完成的工作command
(可选): 用于展示结果的 CLI 命令
功能
该工具通过提供最终摘要来标记任务的结束。它向用户和系统发出信号,表明当前任务已完成。当提供命令时,它还可以通过实时执行来展示结果。
使用场景
- 当 Kilo Code 认为用户的任务已完成时
- 当总结所做更改或改进时
- 当使用命令执行展示当前结果时
- 当为用户反馈提供解决方案的检查点时
- 当从工作阶段过渡到可能的优化时
主要特性
- 提供明确的信号表明 Kilo Code 认为任务已完成
- 以简洁的消息总结完成的工作
- 可选地通过命令执行展示结果
- 支持用户反馈以进行进一步优化
- 以不同于常规消息的特殊 UI 格式显示结果
- 捕获任务完成遥测数据用于系统分析
- 通过提供检查点维护结构化的对话流程
- 支持在较大工作流中的子任务完成
- 确保用户收到关于已完成工作的清晰摘要
- 在所有模式下都可用,作为"始终可用"工具组的一部分
限制
- 在确认之前的工具使用成功之前不应使用(指南,非强制)
- 仅限于单个命令来展示结果
- 无法提供多个命令选项
- 命令在执行前需要用户批准
- 仅限于通过 CLI 命令展示结果
- 不能用于部分任务完成或进度更新
- 结果格式会通过内部处理移除 XML 闭合标签
工作原理
当调用 attempt_completion
工具时,它会遵循以下流程:
-
安全考虑(指南,非强制):
- AI 被指示确认之前的工具使用是否成功
- 这是一个最佳实践,而不是程序化强制机制
-
结果展示:
- 以特殊的 "completion_result" UI 格式向用户显示完成消息
- 使用
removeClosingTag
函数从结果文本中移除 XML 闭合标签 - 以不同于常规消息的方式呈现结果,以实现视觉区分
-
命令执行(如果提供):
- 在执行前请求用户批准
- 仅在用户批准后执行
- 使用系统的命令执行功能执行命令
- 向用户展示命令结果
-
反馈收集:
- 等待用户对完成结果的反馈
- 处理此反馈并将其返回给 AI
- 支持基于用户输入的持续优化
-
任务完成与继续:
- 在系统中标记任务为已完成
- 捕获已完成任务的遥测数据
- 对于子任务,提供完成子任务并恢复父任务的选项
- 通过反馈机制支持继续对话
-
实现集成:
- 工具结果通过系统的解析机制在
parse-assistant-message.ts
中处理 - 该工具是 "ALWAYS_AVAILABLE_TOOLS" 常量的一部分,使其在所有模式下都可用
- 工具结果通过系统的解析机制在
结果格式指南
结果消息应遵循以下指南:
- 清晰地传达已完成的工作
- 简洁但完整
- 专注于为用户提供的价值
- 避免不必要的客套或填充文本
- 保持专业、直接的语气
- 以易于浏览和理解的方式呈现信息
- 确认用户可能会提供反馈以进行进一步优化
注意:系统会通过 removeClosingTag
函数自动从结果文本中移除 XML 闭合标签。
命令选择指南
包含命令时,请遵循以下指南:
- 选择能直观展示结果的命令
- 优先选择能展示用户创建或修改内容的命令
- 示例包括:
open index.html
展示创建的网站npm start
启动开发服务器python app.py
运行创建的应用程序
- 避免仅打印文本的命令(如
echo
或cat
) - 记住命令在执行前需要用户批准
- 确保命令适用于用户的操作系统
反馈与 UI 表示
attempt_completion
工具具有独特的反馈机制:
- 结果以特殊的 "completion_result" UI 格式显示,不同于常规消息
- 系统在呈现结果后等待用户反馈
- 反馈被处理并返回给 Kilo Code 以进行进一步优化
- 这创建了一个迭代改进周期,而不是结束对话
- UI 包含用于提供反馈的特殊元素
- 结果作为对话流程中的明确检查点
用于子任务时:
- 系统提供完成子任务并恢复父任务的选项
- 如果批准,子任务将以摘要完成
- 父任务在完成子任务的上下文中恢复
- 这支持复杂、嵌套的工作流,同时保持上下文
使用示例
- 当创建网站时,Kilo Code 展示解决方案并使用
open index.html
展示结果。用户提供反馈,Kilo Code 优化设计。 - 当实现功能时,Kilo Code 总结更改及其影响。用户请求额外的测试覆盖,Kilo Code 继续任务。
- 当修复错误时,Kilo Code 解释修复内容以及解决方案如何解决根本原因。用户确认修复有效。
- 当设置开发环境时,Kilo Code 确认所有组件已安装。用户请求额外配置,Kilo Code 继续。
- 当创建数据处理脚本时,Kilo Code 总结功能。用户建议性能优化,Kilo Code 优化代码。
使用示例
仅使用结果摘要完成任务:
<attempt_completion>
<result>
我已更新导航栏的 CSS 以匹配设计稿。更改包括:
1. 更新配色方案以使用新的品牌颜色
2. 为移动设备添加了响应式行为
3. 修复了下拉菜单中的对齐问题
</result>
</attempt_completion>
使用结果和演示命令完成任务:
<attempt_completion>
<result>
我创建了一个简单的 React 应用程序,包含以下功能:
1. 具有请求的英雄部分的响应式落地页
2. 带有验证的工作联系表单
3. 在请求的三个页面之间导航
4. 匹配提供的设计稿的样式
</result>
<command>npm start</command>
</attempt_completion>
完成 Python 脚本任务并执行:
<attempt_completion>
<result>
我创建了一个数据处理脚本,它:
1. 从数据目录读取 CSV 文件
2. 按要求清理和规范化数据
3. 以 JSON 格式生成汇总统计
4. 将处理后的数据输出到输出目录
</result>
<command>python process_data.py</command>
</attempt_completion>