文章来源:智汇AI 发布时间:2025-04-21
本文主要讲述Anthropic公司在构建大型语言模型(LLM)和智能体(agents)方面的年度总结和设计原则。文章由Anthropic公司撰写,内容包括成功方案的特点、智能体的定义、何时使用智能体、框架的使用、构建模块与工作流、工作流模式、智能体的应用场景以及实践案例等板块。
暂无访问本文主要讲述Anthropic公司在构建大型语言模型(LLM)和智能体(agents)方面的年度总结和设计原则。文章由Anthropic公司撰写,内容包括成功方案的特点、智能体的定义、何时使用智能体、框架的使用、构建模块与工作流、工作流模式、智能体的应用场景以及实践案例等板块。文章强调简单性、透明度和精心设计的agent-computer interface(ACI)接口的重要性,并提供工具开发的最佳实践和插件工具的提示词工程的详细信息。基于以上内容,Anthropic分享如何构建有价值的智能体,并为开发者提供实用的建议。
获取《Agent 构建指南》PDF原文件,扫码关注回复:241222
我们与客户的合作揭示了AI代理特别有前景的两个应用,展示了上述模式的实际价值。这两个应用都说明了代理对于需要对话和行动、有明确成功标准、能够反馈循环并整合有价值的人类监督的任务中最有价值。
A. 客户支持
客户支持结合了熟悉的聊天机器人界面,并通过工具集成增强了能力。这对于更开放式的代理来说是自然的场景,因为:
遵循对话流程,互动自然,同时需要访问外部信息和操作;可以集成工具来提取客户数据、订单历史和知识库文章;可以以程序化的方式处理如发放退款或更新工单等操作;通过用户定义的解决方案,明确的地衡量agents 是否解决了该问题。一些公司通过基于使用量的定价模型证明了这种方法的可行性,这些模型仅对成功的解决方案收费,展示了对他们代理有效性的信心。
B. 编码代理
软件开发领域显示出LLM功能的显著潜力,功能从代码补全演变到自主问题解决。代理特别有效,因为:
代码问题的解决可以通过自动化测试来验证;代理可以使用测试结果作为反馈迭代解决方案;问题定义明确且结构化;输出质量可以客观衡量。在我们自己的实现中,代理基于SWE-bench验证基准,能单独解决真实的GitHub问,。然而,尽管自动化测试有助于验证功能,但人类审查仍然至关重要,以确保解决方案符合更广泛的系统要求。
无论您正在构建哪种代理系统,工具插件都可能是您代理的重要组成部分。工具使Claude能够通过在我们的API中指定它们的确切结构和定义来与外部服务和API交互。当Claude响应时,如果它计划调用工具,它将在API响应中包含一个工具使用块。工具定义和规范应该和整体提示一样,获得同样的提示工程关注。在这个简短的附录中,描述了如何对工具进行提示工程。
通常有几种方式可以指定相同的操作。例如,可以通过编写差异(diff)或重写整个文件来指定文件编辑。对于结构化输出,可以在Markdown或JSON中返回代码。在软件工程中,这些差异是表面的,并且可以无损地从一种格式转换为另一种格式。
然而,有些格式对于LLM来说比其他格式更难编写。编写差异(diff)需要在新代码编写之前就知道块头部有多少行在更改。在JSON中编写代码(与Markdown相比)需要对换行符和引号进行转义额外的转义。
我们对决定工具格式的建议如下:
给模型足够的令牌,在它进入死胡同之前“思考”。保持格式接近在互联网上自然出现的文本。确保没有格式化“开销”,例如必须准确计算数千行代码,或对它编写的任何代码进行字符串转义。一个经验是在人机界面(HCI)上投入了多少精力,就要投入同样的精力来创建良好的代理-计算机界面(ACI)。以下是如何做到这一点的一些想法:
设身处地为模型着想。根据描述和参数,使用这个工具是否明显,还是需要仔细思考?一个好的工具定义通常包括示例用法、边界情况、输入格式要求以及与其他工具的明确界限。如何更改参数名称或描述以使任务更明显?将此视为为您团队的初级开发人员编写易读的说明文档那样。当使用许多类似的工具时,这一点尤其重要。测试模型如何使用您的工具:在我们的工作台上运行多个示例输入,来查模型犯了哪些错误,并进行迭代。为您的工具实施防错措施。更改参数,使其更难犯错误。在构建SWE-bench代理时,Anthropic 实际上花在优化工具上的时间比优化整体提示还要多。例如,Anthropic 发现模型在使用相对文件路径的工具时会出错,尤其是在代理移出根目录之后。为了解决这个问题,将工具更改为始终要求使用绝对文件路径,我们发现模型完美地使用了这种方法。