前言
本文只是本人在学习 Agent 过程中的一些粗浅了解。 总结的显然不是完全正确的,也肯定不是完全准确的。 希望大家有不同的见解可以不吝赐教。 如果有不理解、不认同的部分可以向 AI 提问,或向我提出一些建议。
Loop
私以为 Loop 应该是一个 Agent 的核心。
当每轮对话开始时,Agent 都运行一个 Loop:将提示词发给模型,请求响应,接收响应,并在模型请求时调用工具,最后将结果反馈给模型。这是一次迭代。
经过若干次迭代后,直到返回结果达到标准(可能是硬标准,或者由模型自己判断),再把结果返回给用户。
Providers and Models
Agent 的大脑、基础。
但通常来说这只是一个选择,开发者选择合适的模型,但显然除此以外开发者做不了更多。
Sessions
会话 (Session) 指的是用户与 Agent 进行的所有对话以及 Agent 在对话中执行的所有操作。
通过合理的结构来保存会话,可以实现相当好的版本管理功能。
以下的所有部分都服务于会话。
Tools
工具 (Tools) 指的是 Agent 可以在项目中执行的操作。
read、edit 和 bash 应当是最基本的。在 Tau 中把 write 也并入了基本工具集,但私以为 write 应当是 edit 的子集。
模型会决定何时调用这些工具,开发者需要做的只是把工具和工具的功能提供给模型以供选择,或提供一些建议。
同时,开发者也可以自行拓展 Agent 的工具集。
Project instructions (AGENTS.md)
Think of AGENTS.md as a README for agents: a dedicated, predictable place to provide the context and instructions to help AI coding agents work on your project.
AGENTS.md 可以视为给 AI 的 README.md。
它向模型说明关于当前项目的基础信息、工程命令、代码规范、行为约束、测试、验收标准和注意事项。
通常来说,AGENTS.md 应当是用户可定义提示词中的一等公民。再往后依次是 Skill、工具定义、用户提示词。
但在此之上,还有模型厂商定义的系统信息,以及 Agent 开发者定义的全局系统指令。
Skills ans Prompt templates
我把 Skill 和 Prompts templates 放在一起。因为我认为 技能 只是更高级的 提示词模板。
技能 是描述如何完成特定任务的文件夹。其中包含了描述技能本身的 Markdown 文件、技能可能会调用的文件。提示模板则可以认为是只有 Markdown 文件的技能。
Context
模型一次只能 “看到” 有限的文本——上下文窗口。过长的会话会填满模型的上下文窗口。
一个合格的 Agent 应该估算上下文使用量,并进行合理的上下文压缩,以保证会话的顺利进行。
优秀的上下文压缩应当在尽可能压缩文本量,节省上下文窗口的同时,尽可能保持语义不变,或至少是工作的顺利进行。
Thinking mode
有的支持该模式的模型会在回答问题之前,消耗额外的 token 进行 “思考”。
在 普通模式 下,模型收到问题,直接生成最终答案,速度快,但在复杂逻辑下容易出错。
在 思考模式 下,模型会先进行内部推理,做问题拆解、试错、校验等步骤,推理完成后,再对外输出最终答案。
就像人类一样,在被问到 “1+1” 这样的问题时,通常可以不加思考地直接输出答案。但是在被问到 的第 位时,我猜大部分人都没办法直接说出答案。 在 AI 中,这通常是更加复杂的内容,而不一定只是算一个数的某一位,更可能的是在逻辑上更加复杂的步骤。
Agent 也可以在工作流中加入所谓 Thinking mode,但以我目前的理解,这可能类似 计划模式,或 Agent Loop 的一部分。
Interfaces
这是 Agent 的外壳。
开发者可以制作一个 GUI、TUI 或简单地通过命令交互以及打印来完成会话。
这几乎完全是传统编程的领域。
部分信息可能已经过时
