返回博客

我从构建 AIdaemon中学到的AI代理模式

2026-03-155 min read

当人们谈论 AI 代理模式时,他们通常是抽象地描述。以下是七种著名的模式在 AIdaemon(我一直在 Rust 中构建的一个自托管 AI 代理守护进程)中实际的工作方式。

ReAct 循环(推理 + 行动)

ReAct 是大多数现代代理的基础。代理不会一次性想出整个计划并执行它,而是交替进行关于下一步该做什么的推理和实际执行。

AIdaemon 中,这表现为一种基于阶段的执行周期。每个回合都经过消息构建、LLM 调用、工具执行和停止检查。代理推理其下一步行动,采取行动,观察结果,然后再次推理。这个循环会持续进行,直到代理决定完成或达到迭代限制。

ReAct 的妙处在于其适应性。如果一个命令失败或返回意外的输出,代理不会盲目地沿用最初的方法。它会重新评估并进行调整。

规划

规划意味着在深入研究之前将复杂任务分解为步骤。规划代理不会立即抓取第一个工具并开始工作,而是分析请求,识别依赖关系,并按逻辑顺序排列操作。

AIdaemon 中,在代理接触任何工具之前,它可以生成一个包含具体步骤的结构化计划。这可以防止一种常见的失败模式:代理开始执行,在执行到一半时意识到它需要第 5 步的信息来完成第 2 步,最终陷入循环。

规划也有助于提高透明度。当您可以在代理执行其计划之前看到它时,您可以及早发现错误的假设,而不是在代理已经进行更改后才发现它们。

反思

反思是代理评估自身工作的能力。在完成一项操作后,一个具有反思能力的代理会切换到“批评模式”。它会检查错误,验证约束条件是否满足,并识别差距。

AIdaemon 中,当出现问题时,反思反馈循环就会启动。如果工具调用失败或产生意外结果,代理会分析发生了什么、为什么失败,并在重试前提出修复建议。结合证据状态跟踪,代理会保留关于它所看到和所做事情的具体观察结果。它的反思是基于实际结果而非假设的。

记忆

记忆是代理在对话中保留信息的方式。没有记忆,每一次交互都将从头开始。

AIdaemon 使用基于 SQLite 的向量嵌入来进行语义召回。事实会自动从对话中提取并与嵌入一起存储,以便可以根据含义而不是仅仅是关键字来检索它们。如果您在三周前提到了一个项目细节,当它再次变得相关时,代理可以回忆起来。

记忆系统还会为长期会话创建“剧集摘要”,并每天整合事实,对不再有用的旧信息进行去重和衰减处理。这区分了一个有健忘症的代理和一个随着时间推移真正了解您上下文的代理。

护栏

护栏定义了代理可以做什么和不能做什么的硬性界限。它们是安全网,可以捕获仅靠良好提示无法防止的边缘情况。

AIdaemon 在多个层面实施护栏。命令允许列表限制了代理可以执行哪些终端命令。基于风险级别的工具过滤意味着破坏性操作需要额外的验证。输出清理会从响应中删除敏感数据(如 API 密钥和令牌),然后再将其发送给用户。迭代限制则可以防止代理在没有进展的情况下消耗大量令牌的失控循环。

业界已经趋向于采用这种分层方法。大多数生产级代理框架将护栏视为纵深防御,而不是单一的检查点。

人在回路中

人在回路中(Human-in-the-loop)是指在执行高风险操作前暂停以等待人工确认的模式。这表明有些决策不应完全自动化。

AIdaemon 对高风险操作使用包含三个选项的批准流程:立即允许(本次继续)、始终允许(今后信任此操作)和拒绝(停止并尝试其他操作)。代理会自动根据风险级别对操作进行分类。读取文件?无需门禁。删除文件或运行不熟悉的 shell 命令?代理会暂停并询问。

关键在于基于风险的门禁,而不是对所有事情都设置门禁。中断太多,代理就会变得无法使用。中断太少,您就会信任它执行可能造成实际损害的操作。

技能学习

技能学习是代理将成功的模式转化为可重用指令的过程。大多数代理将每项任务视为一次性的。技能学习允许代理识别它何时多次解决了某类问题,并将其解决方案打包以供将来使用。

AIdaemon 中,如果一个过程被使用 5 次或更多次,且成功率至少达到 80%,系统就会生成一个技能草案。该草案在激活前仍需要人工审核,这可以防止代理学习到错误的经验教训。一旦批准,下次出现类似任务时,代理就可以引用该技能,而不是从头开始摸索。技能也可以从文件、URL 或远程注册表中加载,因此您可以在不同的设置中共享它们。

这是随着时间推移会不断积累的模式之一。代理运行的时间越长,积累的技能就越多,处理重复性工作的速度也就越快。

保持更新

将最新文章和见解发送到您的收件箱。

Unsubscribe anytime. No spam, ever.