构建通用 AI 智能体应用的核心技术指南
AI 智能体(AI Agent),更准确地说现在是指 LLM Agent,它是一个执行逻辑由其底层大语言模型(LLM)控制的程序。与少样本提示(few-shot prompting)或固定工作流(fixed flows)等方法不同,Agent 能够定义和调整执行用户查询所需的步骤。如果能够访问一组工具(如代码执行或 Web 搜索),Agent 可以决定使用哪种工具、如何使用它,并根据输出迭代结果。这种适应性使系统能够以最少的配置处理各种用例。
Agent 架构涵盖了从固定工作流的可靠性到自主代理的范围。例如,像检索增强生成 (RAG) 这样的固定流程可以通过自我反思循环进行增强,使程序能够在初始响应不足时进行迭代。或者,ReAct 代理可以配备固定流程作为工具,提供灵活而结构化的方法。架构的选择最终取决于用例以及可靠性和灵活性之间的理想权衡。
第一步:选择正确的 LLM
选择正确的模型对于实现所需的性能至关重要。有几个因素需要考虑,例如许可、成本和语言支持。构建 LLM Agent 最重要的考虑因素是模型在编码、工具调用和推理等关键任务上的性能。要评估的基准包括:
- 大规模多任务语言理解 (MMLU):评估推理能力。
- 伯克利函数调用排行榜:评估工具选择和工具调用能力。
- HumanEval 和 BigCodeBench:评估编码能力。
另一个关键因素是模型的上下文窗口。Agent 工作流可能会消耗大量 token——有时 100K 或更多——更大的上下文窗口确实很有帮助。
截至当前,可考虑的模型包括:
- 闭源模型:GPT-4o、Claude 3.5。
- 开源模型:Llama 3.2、Qwen2.5。
一般来说,较大的模型往往提供更好的性能,但可以在本地运行的较小模型仍然是一个不错的选择。对于较小的模型,你将只能使用更简单的用例,并且可能只能将你的 Agent 连接到一两个基本工具。
第二步:定义 Agent 的控制逻辑
简单 LLM 和 Agent 之间的主要区别在于系统提示(system prompt)。在 LLM 上下文中,系统提示是在模型处理用户查询之前提供给模型的一组指令和上下文信息。LLM 所期望的 Agent 行为可以在系统提示中编纂。
以下是一些常见的 Agent 模式,可以根据您的需求进行定制:
- 工具使用:Agent 确定何时将查询路由到适当的工具或依靠自己的知识。
- 反思:Agent 在回复用户之前会检查并更正其答案。大多数 LLM 系统也可以添加反思步骤。
- 推理然后行动 (ReAct):Agent 反复推理如何解决查询,执行操作,观察结果,并确定是否采取其他操作或提供响应。
- 计划然后执行:Agent 通过将任务分解为子步骤(如果需要)进行预先计划,然后执行每个步骤。
最后两种模式(ReAct 和计划然后执行)通常是构建通用单一 Agent 的最佳起点。为了有效地实现这些行为,你需要进行一些提示工程(prompt engineering)。你可能还想使用结构化生成技术。这基本上意味着塑造 LLM 的输出以匹配特定的格式或模式,以便 Agent 的响应与你想要的沟通风格保持一致。
第三步:定义 Agent 的核心指令
我们往往想当然地认为 LLM 具有一系列开箱即用的功能。其中一些功能很棒,但其他功能可能并不完全符合我们的需求。为了获得我们想要的性能,在系统提示中详细说明我们想要和不想要的所有功能非常重要。
这可能包括以下说明:
- Agent 名称和角色:明确 Agent 的名称以及其用途。
- 语气和简洁性:规定听起来应该正式还是随意,以及应该简短到什么程度。
- 何时使用工具:决定何时依赖外部工具而不是模型自身的知识。
- 处理错误:当工具或流程出现问题时,Agent 应该做什么。
第四步:定义并优化你的核心工具
工具赋予了你的 Agent 超能力。使用一组定义明确的工具,你可以实现广泛的功能。要包含的关键工具是代码执行、Web 搜索、文件读取和数据分析。
对于每个工具,你需要定义以下内容并将其作为系统提示的一部分:
- 工具名称:功能的唯一描述性名称。


