Claude 代码是一个极其高效的编码代理,你可以用它在电脑上完成大多数认知任务。然而,持续学习仍然是我们努力教导代理的一项任务。此外,持续学习是人类非常擅长的任务。

在本文中,我将讨论如何通过编码代理实现类似的持续学习。代理的持续学习仍是一个未解的挑战,但我会讲述我如何让编码代理从错误中学习并随着时间不断改进。此外,本文内容将使你的代理在你特别希望他们擅长的任务上表现更出色,无论是做股东演示、修复你特定代码库中的漏洞,还是完全不同的事情。
为什么我们需要持续学习
我们需要持续学习,因为我们总想在所做的任务中变得更好。想象一下,如果你做了多年程序员,却仍然犯一些基本错误,比如在 Python 中忘记在 if 语句后面加冒号。
显然,持续犯这种错误非常无效,这也是我们想避免的原因。我们想在任务中变得更好,变得更有效率,从而能够解决更难的问题。
在某个任务上工作更长时间,有助于你建立对任务的直觉,并帮助你解决该领域的更高级问题
你可以想象一个新员工是个新手编码代理。显然,他们一开始会犯一些错误,因为他们不了解你的偏好或代码库。然而,当你告诉新员工如何做某件事时,你期望他们随着时间学会这些。
如果你不采取具体措施让编码代理记住这些内容,他们很可能会忘记,这就是为什么你需要采取积极措施,确保编码代理持续学习。
如何实现持续学习
在本节中,我将介绍一些我每天用来实现持续学习的具体技巧。这些技术来自于与同领域其他人士交流、OpenClaw仓库的启发以及我自己的实验。
泛化知识命令
让Claude Code从错误中学习最简单且有效的方法是使用通用知识命令。这是一个简单的命令(也称为技能,简称包含提示的markdown文件),用于从给定线程中学习。
我通常在完成 Claude Code 的对话时执行这个命令,执行单一任务。例如,如果我有:
我只需用以下方式执行命令:
/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 down any issues you encountered, and how you
resolved them.
Write the tasks you performed to the done-tasks.md file with time and date,
and a summary of the tasks.
本质上,我告诉模型从错误中学习,并记录下任何对未来互动有用的内容。
我还让代理写下它完成的任务,这样我就有一个包含所有完成任务的单一文件。这不是绝对必要,但我觉得有这种总结很方便。
还要注意,这假设你总是在某个 Claude Code 线程中执行单一任务,这绝对应该这样做以获得最佳效果。这同样适用于所有可用的编码代理,因为单一线程的单一任务能帮助代理保持专注,避免杂音填满上下文。
每日反思
为了在上一部分的基础上,你还可以设置每日反思设置。比如说,如果你一天中有多个代理在运行,你可以设置一个cron作业(一个在特定间隔执行的命令),用来查看你编码代理过去24小时内的所有日志,并记录下任何有用的信息。这基于通用知识命令,但作用在更高层次,因为查看日志的代理不仅能访问单个线程,还能访问你正在处理的所有内容。
这很有用,因为不同的视角会导致不同的笔记被记录下来,这将帮助你和你的编码代理提高效率。
技能
技能是我想介绍的另一个概念,这有助于持续学习,也帮助Claude Code从错误中学习。我之前讲过的部分,大多是写给通用的CLAUDE。MD,特工们。医学博士,WARP。多元文件。而技能则是更具体的文件,告诉代理如何执行特定任务。
这有点类似于“generalize knowledge”命令,但有些不同,因为通用文件会标注通用错误和解决方案,而技能则涵盖更具体的主题。一些技能示例包括:
正如你所见,技能更为具体。因此,每当你开始使用新的包、API或新的任务时,我建议你创建一个相应的技能。该技能应涵盖所有在使用API或完成任务时需要了解的有用知识。包括:
存储的信息越多越好。如果你开始做相关任务,你的编码代理通常会动态加载这项技能。
例如,如果你让客服帮你整理邮件,它会动态加载邮件分类技能,从而知道如何操作。这有助于你的编码代理避免之前在筛选邮件时犯的错误。
结论
在本文中,我讲述了如何让Claude Code和其他编码代理从错误中学习。我讨论了三种主要技巧,包括制作通用知识命令、每天阅读代理日志,以及在执行任务时主动运用技能。我相信从错误中学习对人类和机器都非常重要。如果你能有效地让你的编码代理从错误中学习,你会更高效地应用这些错误,从而相比那些不从错误中学习的代理获得显著优势。
