如何让 Claude Code 从自己的错误中改进
Source: Towards Data Science
请提供您希望翻译的完整文本内容,我将为您翻译成简体中文并保持原有的格式、Markdown 语法以及技术术语不变。谢谢!
Source: …
持续学习的编码代理
一个极其高效的编码代理可以处理您电脑上的大多数认知任务,但持续学习仍是一个挑战。人类在这方面表现出色,我们可以借鉴其中的一些策略。
为什么持续学习很重要
- 随时间的改进 – 像任何技能一样,反复练习帮助代理完善方法、从错误中学习并培养直觉。
- 任务特定的精通 – 无论您需要代理制作股东演示文稿、调试特定代码库,还是解决全新的问题,持续学习都能让它们精准匹配这些需求。
本文您将学到的内容
- 编码代理持续学习的基础原理
- 为何它对高性能自动化至关重要
- 让您的代理从错误中学习并改进的实用步骤
可视化概览

TL;DR
持续学习仍是 AI 代理未解决的问题,但通过系统化的反思、错误分析和增量更新,您可以让编码代理在关心的任务上逐步提升。下面的技术将帮助您将一个强大的静态工具转变为动态的自我改进助手。
Source: …
为什么我们需要持续学习
持续学习对于随着时间的推移提升任何任务的表现至关重要。以下是它重要的关键原因,尤其针对编码代理和开发者。
1. 减少重复错误
- 即使是有经验的程序员也会犯基础错误(例如,忘记在 Python 的
if语句后加冒号)。 - 持续学习帮助消除此类重复错误,使工作 更高效 且 更可靠。
2. 建立直觉和专业能力
- 在任务上投入更长时间可以让你对其细微差别形成直觉。
- 这种直觉转化为在同一领域解决 更高级问题 的能力。
3. 将编码代理视作新员工
- 一个全新的编码代理(或新入职的员工)最初并不了解你的代码库、风格和偏好。
- 当你提供反馈时,你期望该代理能够 学习 并 适应 随着时间的推移。
4. 防止遗忘
- 没有显式的记忆保持机制,代理会 忘记 之前学到的信息。
- 必须采取主动措施——如更新模型、维护知识库或使用重放策略——才能实现真正的持续学习。
结论: 实施持续学习可确保人类和编码代理逐步提升,避免重复错误,并保留宝贵的知识,以应对日益复杂的挑战。
Source: …
如何实现持续学习
在本节中,我将介绍几种我每天使用的具体技术,以让我的编码代理持续学习。这些想法来源于与同行的讨论、OpenClaw 仓库以及我自己的实验。
1. generalize‑knowledge 命令
让 Claude Code(或任何编码代理)从错误中学习的最简单、最有效的方法是,在每个完成的任务后运行一个 general‑knowledge 命令。命令 只是一个包含代理可以执行的提示的 markdown 文件。
何时运行 – 在完成单个、独立的任务后,例如:
- 实现新功能
- 修复 bug
- 完成演示文稿
- 审查生产日志
如何运行
/generalize-knowledge该命令会调用类似下面的提示:
Generalize all the knowledge from this thread into `claude.md` and `agents.md`.
Write down any information that would be useful for a future agent working
in this repository. Also note any issues you encountered and how you
resolved them.
Record the tasks you performed in `done-tasks.md` with the date, time, and a
brief summary.它的作用
- 为将来参考总结本线程的学习内容。
- 捕获问题及其解决方案。
- 在单个文件 (
done‑tasks.md) 中记录已完成任务(日期 + 时间)。
提示: 让每个 Claude Code 线程专注于 一个 任务。单任务线程可以减少噪音,帮助代理保持目标。此原则同样适用于其他编码代理。
2. 每日反思
如果你在一天中运行多个代理,进行一次每日“反思”步骤可以把所有工作进行整合。
- 安排一个 cron 任务(或任何定时任务),每 24 小时运行一次。
- 该任务扫描所有编码代理过去一天的日志。
- 它将这些日志输入 generalize‑knowledge 命令(或类似提示),提取高层次洞见。
因为反思覆盖 所有 最近的线程,它能够发现单个线程命令可能遗漏的模式。生成的笔记将成为你和你的代理宝贵的知识库。
3. 技能
技能 是小型、专用的 markdown 文件,用于教会代理执行特定任务。虽然通用的 claude.md / agents.md 文件捕获的是宽泛的经验教训,技能 则聚焦于具体的流程、API 或领域。
技能文件通常包含的内容
| 部分 | 描述 |
|---|---|
| Purpose(目的) | 对任务的一句话概述(例如 “对收到的邮件进行排序”)。 |
| Interpretation(解释) | 如何阅读并理解任务描述。 |
| Procedure(步骤) | 完成任务的逐步指令。 |
| Common pitfalls(常见陷阱) | 常见错误及避免方法。 |
| Examples(示例) | 简短的代码片段或命令示例。 |
| References(参考) | 文档、API 规范或相关技能的链接。 |
示例技能主题
- 邮件排序工作流
- 日历管理工作流
- 使用小众 API 或库(尤其是那些在 LLM 预训练中覆盖不足的)
- 针对特定仓库的调试策略
如何使用技能
- 创建一个新的 markdown 文件(例如
skill-email-sorting.md),每当你遇到新领域、API 或重复任务时。 - 用上述章节填充文件内容。
- 当你之后让代理执行该任务时,它会 动态加载 相应的技能文件,为其提供避免过去错误所需的上下文。
专业提示: 将技能文件放在专用文件夹(例如
skills/)中,并与代码一起进行版本控制。这样可以轻松在整个团队中共享和演进知识库。
快速参考速查表
| Action | Command / File | When to Run |
|---|---|---|
| 完成单个任务 | /generalize-knowledge | 完成任务后立即 |
| 每日知识整合 | Cron job → generalize-knowledge on all logs | 每天一次(例如,凌晨 02:00 am) |
| 添加新的领域特定指南 | Create skill‑*.md | 当你开始使用新的 API/包 或工作流 时 |
| 回顾已完成的工作 | Open done-tasks.md | 任何需要项目级别摘要时 |
结论
在本文中,我介绍了如何让 Claude Code 和其他编码代理从错误中学习。我讨论了三种主要技术:
- 创建一个“概括‑知识”指令 – 一个可重用的提示,用于从失败中提取经验教训。
- 每日阅读代理日志 – 揭示重复出现的错误模式,并相应地更新提示。
- 在执行任务时积极应用所学技能 – 通过即时使用来强化新知识。
从错误中学习对人类和机器都至关重要。当你的编码代理能够内化它们的错误时,你的工作效率会大幅提升,并在那些不适应的代理之上获得决定性的优势。
📚 资源
免费电子书 & 网络研讨会
在社交平台上找到我