1. 提示:基础
所有生产级人工智能系统都始于一个精心编写的提示。若用过ChatGPT或Claude,就知道提示是输入内容后模型做出回应。不过,日常随意输入的提示与生产环境中精心设计、能可靠运行数千次的提示存在巨大差距。
一个结构良好的提示包含五个组成部分,对各部分定义越精确,输出结果越可预测。而提示的使用策略主要有三种,每种都在简洁性和准确性之间权衡。零样本学习法最简单,给人工智能无示例任务期望其自行完成,在任务定义明确且模型掌握模式时效果好;少样本训练法需提供输入输出对示例,让模型理解确切模式或格式,在确保格式和语气一致性方面有效;思维链要求人工智能逐步推理问题,以速度换准确性,是处理复杂分析任务的理想选择。
2. 从随意使用到生产系统
使用ChatGPT或Claude时,人们常摸索出一套手动引导对话的方法,但在生产系统中,软件需每天可靠、自动执行数千次操作,承担不起重试风险。
解决方案是不要让一个模型一次性完成所有任务,而是先弄清楚人工操作的工作流程,将其分解成更小、更独立的部分,分配给专门的AI代理。这就是智能体人工智能系统的核心理念,它将问题分解,使系统运行更快、可预测性更高,且更易调试。
3. 子代理和模型参数
子代理是被分配到大型工作流程中特定、狭窄任务的AI模型,每个子代理专注一项任务,可使用更小、更快、更经济的模型。
除选择合适模型,还需调整模型运行方式,其中重要参数是“温度”。“温度”控制模型输出的“创造性”或“随机性”,低值时模型保守,适用于确定性任务;高值时模型更具探索性,适用于创造性任务。经验法则是任务需一致性就降低“温度”,需创造性就提高“温度”。
4. 智能体工作流范式
连接子代理主要有两种范式。基于链式的工作流是最简单模式,代理输出依次传递,线性、可预测、易调试,LangChain是构建此类工作流的流行框架,其优势在于抽象性,切换模型提供商代码更改少,还提供常见任务的现成组件。
基于编排的工作流更强大,设置单一编排器代理,编排器根据任务信息制定执行计划,决定调用子代理的顺序和处理输出,可循环操作。LangGraph框架为此设计,与LangChain区别在于可动态分支、循环和路由。若任务按固定顺序执行,用链式流程;若需根据情况调整,用协调器。
5. 能动模式
单个智能体执行任务的推理和行动模式主要有“反馈”(ReAct)和“计划与执行”(Plan and Execute)。ReAct是循环模式,智能体接到任务后循环执行推理、行动、观察步骤,具适应性,适合事先不知答案路径的任务。
计划与执行模式先构建完整计划再执行,优势是可预测性和效率,但执行僵化,若出现意外情况可能需修改计划。选择哪种模式取决于任务性质,探索性或不可预测性任务用ReAct,定义明确任务用Plan and Execute。
6. 情境工程
上下文工程研究如何高效将信息注入提示。简单做法是将所有用户数据塞进提示框,但会使提示框庞大、运行慢且成本高。
明智做法是动态获取相关信息,根据数据存储位置有两种技术。数据存于结构化数据库,可使用工具调用SQL查询提取相关行;数据以非结构化形式存在,需用RAG,将文档分割成小块转换为数值向量,查询时找到最相关小块数据。上下文工程重点在于精准性,提示中无关信息越少,智能体表现越好。
7. 能力工程
能力工程关注智能体具备的能力和行为,常用工具是“技能”(Skills)。“技能”是Markdown文件,描述智能体在特定情况下的行动方式,是嵌入智能体系统的行为指南。
例如电子邮件回复代理有相关技能文件规定回复规则,代理程序读取并遵循这些规则,使行为更可预测且易更新。上下文工程确保智能体有正确信息,能力工程确保其利用信息做出正确决策。
8. RAG与微调
RAG(增强检索)改变模型获取的信息,成本相对低,可随时更新数据,应首先尝试。微调改变模型内部权重,即思维方式,耗费资源,改变永久融入模型。
经验法则是先尝试RAG,当确认模型瓶颈在于行为或思维模式而非信息掌握时,再进行微调。若智能体弄错事实,用RAG;若掌握事实但表达方式或推理模式错误,考虑微调。
9. 工具调用和MCP
AI代理有时需实时外部数据,可通过工具获取。定义工具时提供简单规范,智能体只需知道工具存在及用途,执行任务时生成API调用获取数据。
MCP(模型上下文协议)是开放标准,允许外部服务以标准化格式发布工具,代理程序连接MCP服务器可自动发现并使用可用工具,像Apify、Slack和Google等公司都发布了MCP服务器。
10. 生产环境中的可靠性:判断代理
在生产环境保证智能体系统数千次正常运行是难点,可靠性包括确保输出结果良好和系统持续稳定运行。
评判代理是独立AI模型,审查系统输出并判断是否正确回答用户问题。部署评判器有顺序和并行两种方式,顺序部署保证质量但增加延迟,适用于对准确性要求高的场合;并行架构不增加用户延迟,能帮助团队发现错误。评判模型要与系统使用的模型不同,且启用“扩展思考模式”提高评判准确性。
LLM网关位于模型调用之前,负责速率限制管理和故障转移,保证系统持续运行,用户无异常感知。
11. 智能体系统中的记忆
对话简短时内存不是问题,但对话变长或代理工作流崩溃需恢复时,内存管理至关重要。ChatGPT的蛮力式方法无法扩展,更好的做法是添加摘要代理,每处理一批消息生成精简的内存对象。
在多步骤代理工作流中,检查点机制可解决系统崩溃后重新开始的问题,每个子代理完成任务后输出保存到持久存储,失败时从上个成功检查点继续执行,既保证可靠性又节约成本。
12. 可观察性:了解实际发生了什么
可观测性指记录和检查智能体执行的每一步,决定能否确切知道问题所在。最常用工具是Langfuse,每次代理系统运行记录跟踪信息,用于调试和评估。
调试时可通过跟踪日志排查错误,评估时可根据跟踪数据判断系统改进或退步情况。可观测性就像系统的黑匣子记录仪,出问题时首先查看。
13. 人机交互(HITL)
并非所有决策都由人工智能代理做出,HITL是让人工审核、批准或调整的设计模式。简单形式是聊天界面,但用户体验并非最佳。
更明智的方法是使用专门设计的界面,如生成网页的AI系统,提供直接编辑界面让用户微调。HITL还起到安全阀作用,判断代理不确定输出结果时,将其路由给人工审核员,尤其适用于不可逆操作。好的HITL设计是解决如何让用户在合适时机纠正或引导系统的UX问题。
14. 结构化输出
LLM默认生成自由格式文本,在生产环境中智能体系统里,智能体输出需作为下一个智能体输入,若格式不符会导致流程崩溃。
结构化输出可解决此问题,定义精确模式验证代理输出,及早发现错误便于修复和记录。大多数LLM提供商和框架支持结构化输出或JSON模式。
15. 综合运用
生产环境中智能体系统各组件组合在一起,每一层解决特定问题。提示层确保智能体获清晰指令,子智能体分解工作,上下文工程提供正确信息,工具工程保证行为一致,工具调用和MCP连接外部世界,结构化输出保持管道稳定,判断智能体保障质量,内存保持上下文有效,可观测性便于调试,HITL确保人为控制。
这些层级协同工作,上下文工程为协调器提供信息,协调器分配任务给子代理,代理与外部交互,结构化输出确保数据流动,判断代理捕获错误,内存保持上下文,可观测性记录信息,HITL让人参与关键环节。虽然新的AI工具或框架不断发布,但基本原理变化不快,理解这些概念可评估新事物。