Agents
近日,AI领域的知名公司Anthropic发布了一份题为《构建高效的智能代理》的报告。该报告基于Anthropic过去一年与多个团队合作构建大语言模型(LLM)智能代理系统的经验,为开发者及对该领域感兴趣的人士提供了宝贵的洞见。本文将对该报告的核心内容进行重述与解读。
智能代理系统的定义与理解
定义多样性
智能代理(Agents)这一概念在业界具有多种解读。一些客户将其视为完全独立的系统,能够长时间自主运行,利用各类工具完成复杂任务;而另一些则将其定义为按预设流程运行的系统。Anthropic将这些不同形式统称为智能体系统(agentic systems),并指出工作流(Workflows)与智能体(Agents)之间存在显著差异。
工作流与智能体的区别
- 工作流:通过预先编写的代码来协调人和工具的系统,提供可预测性和一致性,适合任务明确、步骤固定的工作。
- 智能体:能够动态管理自身流程和工具使用,保持对完成任务方式的控制,更适合需要大规模灵活性和模型驱动的决策场景。
流行开发框架概览
当前市场上存在多种流行的智能代理开发框架,包括LangChain的LangGraph、Amazon Bedrock的AI Agent框架、Rivet和Vellum。
- LangGraph:通过图表形式创建和管理LLM工作流,帮助开发者清晰连接任务和步骤。
- Amazon Bedrock AI Agent框架:提供全面的工具箱,加速智能应用的搭建,无需从头开始。
- Rivet:拖放式图形用户界面(GUI)工具,简化LLM工作流的构建过程,适合编程基础薄弱的用户。
- Vellum:专注于复杂工作流的设计和测试,提供实验室般的测试环境。
Anthropic建议开发者在初始阶段直接使用LLM API进行开发,因其功能可通过少量代码实现。若需使用框架,应深入理解底层代码,避免增加不必要的复杂性。
五种核心工作流模式
提示链式工作流(Prompt chaining)
将复杂任务拆分为一系列小步骤,每个步骤由LLM调用处理,后一步骤以前一步骤的输出为输入。适用于能明确分为几个固定小任务的情况,提高准确性,但可能增加时间成本。
路由工作流(Routing)
根据问题的类型将其分类,并引导至最合适的处理流程。通过针对不同任务优化处理方式,提高服务质量和效率。具备灵活性和可扩展性,易于添加新分类和处理流程。
并行化工作流(Parallelization)
同时处理多个任务,通过拆分独立任务或采用投票机制提高效率和结果可信度。适用于需要同时处理多项任务或从不同角度获取输出的场景。
协调者-工作者工作流(Orchestrator-workers)
由一个中央LLM(协调者)动态分配任务给多个工作者LLM。适合无法提前确定具体任务的情况,如软件开发中的编程任务。
评估者-优化者工作流(Evaluator-optimizer)
通过循环过程,由一个LLM给出初步回应,另一个LLM进行评估并提供反馈,直至得到更优结果。适用于需要反复改进和反馈的任务,如文章撰写和搜索优化。
智能代理的工作原理与实践案例
智能代理根据用户命令或互动明确任务,自主执行任务并监控周围情况。遇到难题时,可寻求帮助以确保任务顺利完成。代理特别适合处理开放性问题,尤其是步骤难以预测的任务。例如,编码代理在软件工程中自动分析需修改的文件,显著提高开发速度。
开发工具与实践建议
- 工具设计与交流:工具在代理系统中至关重要,应清晰明了,便于代理与外部服务和API交流。
- 思考时间:给予模型足够的时间思考,确保工具输入格式和参数描述简单明了。
- 工具定义与规格:与整体提示工程同等重视,考虑不同格式对模型表现的影响。
- 测试与改进:通过运行示例输入测试模型使用工具的方式,并根据测试结果不断改进工具设计。
- 代理计算机接口(ACI):确保工具使用简单直接,提升用户体验。