随着 ChatGPT 、 Claude 和 Gemini 等模型的出现,围绕人工智能 Agent 的想法,无论是诞生于科学还是虚构,似乎都更容易实现了。再加上 "vision" 和函数调用等新功能,人工智能 Agent 的发展大有可为。
当我们沿着人工智能 Agent 的发展道路前进时,似乎有必要开始从提示词工程过渡到更广泛的 Agent 工程,并建立适当的框架、方法论和思维模型来有效地设计它们。本文将探讨 LLM 背景下的 Agent 工程的一些关键思想和理念。
让我们从高层次上探讨一下 Agent 工程框架的关键部分。我们从 " Agent 能力要求 " 开始,旨在明确定义 Agent 需要做什么以及需要多熟练。在 " Agent 工程与设计 " 中,我们将对现有技术进行评估,并开始思考 Agent 的结构和编排。
这一框架的早期阐述旨在提供一个实用的心智模型,诚然并不全面。但我相信,从某处开始,然后逐步完善和提高,这样做是有价值的。
1.Agent 工程框架'
1.1简介
建立人工智能 Agent 的目的是什么?它有工作或角色吗?是行动支持目标?还是目标支持行动?对于某项特定工作,多能力 Agent 是否比多Agent 集群更好?人类语言的魅力在于它的灵活性,允许我们从多个方向对概念进行隐喻扩展。但这样做的弊端是可能导致模糊不清。在阐述该框架时,我有意避免对关键术语进行语义区分,因为其中许多术语可以互换使用。相反,我们努力浮现出一些概念,这些概念可广泛应用于人工智能Agent 工程。因此,现阶段的框架更像是一个心智模型,旨在引导有关 Agent 工程的思维过程。如下图所示,核心思想相对简单明了:
-
人工智能 Agent 被赋予任务
-
完成任务需要执行行动
-
执行行动需要能力
-
能力需要有熟练度要求
-
所需熟练度需要技术和技巧
-
技术和技能需要协调
1.2 Agent 能力要求
要完成的任务
设计人工智能 Agent 的第一步是清楚地列出 Agent 应该做什么。 Agent 需要完成哪些主要工作、任务或目标?这可以是一个高层次的目标,也可以细分为具体的工作和任务。可以决定使用多 Agent 集群方法,为每个 Agent 分配任务。语言和详细程度可以有所不同。例如:
-
电子商务聊天机器人的工作可能包括处理一般咨询、分析客户行为和推荐产品。
-
内容创建 Agent 的工作可能包括集思广益、起草文章或博文。
请注意,在这两种情况下,工作、任务、目标等标签都可以在 Agent 应该做的事情中交替使用。
1.3执行任务时需采取的行动
一旦确定了要完成的工作,下一步就是确定 Agent 针对该工作需要执行的具体行动。工作重点从简单地定义 Agent 应该实现的目标,转变为通过具体行动来明确实现目标的方式。在这一阶段,开始考虑 Agent 的适当自主级别也很重要。举例来说:
对于内容创建 Agent 来说,行动可能包括:
-
调用其他 Agent ,了解内容趋势。
-
根据这些趋势和目标受众的偏好生成内容创意列表。
-
起草文章或博客文章。
-
接受人类用户的编辑和调整指令。
内容创建 Agent 可以自主生成和起草内容,由人工编辑提供最终审批。或者,在人工编辑介入之前,可以使用单独的 Agent 编辑器进行初审。
1.4所需要的能力
既然我们已经概述了 Agent 在执行任务时需要采取的行动,那么接下来我们就需要阐明执行这些行动所需的能力。这些能力包括自然语言对话、信息检索、内容生成、数据分析、持续学习等。它们也可以在更高的技术层面上表达,如:API 调用、函数调用等。例如:对于我们的内容创建 Agent 来说,所需的功能可能是:
-
动态调用内容趋势 Agent 的 API 。
-
头脑风暴和总结功能。
-
根据当前主题和趋势生成适当的内容。
-
根据人类提供的指令编辑内容的能力。
-
记忆
重要的是,最终要把重点放在以不限制选择和最终选择使用哪些技术的方式来表达这些功能上。例如:虽然我们都对 LLM 非常着迷,但大型行动模型( LAM )发展迅速,可能与实现所需的能力相关。
1.5所需的能力熟练度
虽然确定 Agent 执行任务所需的能力是关键的一步,但评估和定义每种能力所需的熟练度也同样重要。这就需要设定具体的基准和性能指标,必须达到这些基准和指标, Agent 及其能力才能被视为熟练。这些基准可以包括准确性、效率和可靠性。
例如,对于我们的内容创建 Agent ,所需的熟练水平可能包括:
-
函数调用可靠性达到 75% 。
-
功能调用失败的可解释性达到 99.99% 。
-
内容趋势 Agent 的函数调用在首次尝试时至少有 75% 能找到相关主题。
-
生成内容创意, 75% 的情况下能生成理想的主题。
-
检索精确信息,精确率达 99.99% 。
-
生成的编辑内容用户反馈满意率达到 90% 或更高。
-
生成最终草稿,用户反馈满意率达到 90% 或更高。
2. Agent 工程与设计
2.1将所需能力映射到技术和技巧
一旦明确了所需的能力和熟练度,下一步就是确定我们如何才能满足这些要求。这需要评估快速增长的可用技术和技巧,包括 LLM 、 RAG 、 Guardrails 、专用 API 和其他 ML/AI 模型,以评估它们是否能达到指定的熟练度。在所有情况下,考虑任何特定技术或技巧在高层次上的优势以及成本 / 效益影响都是有帮助的。我将在这里浅显地讨论几种技术,但范围和规模有限,因为有无数种可能性。
2.2广博知识能力
广博的知识是指对广泛主题和领域的一般理解和信息。这类知识对于创建人工智能 Agent 至关重要,人工智能 Agent 可以有效地参与对话、理解上下文并对不同主题做出相关回应。
LLMs - 如果你的人工智能 Agent 需要掌握广泛的知识,那么好消息是 LLM 持续突破的发展。从 Llama3 等开源模型到 OpenAI 、 Anthropic 和谷歌的最新闭源模型,在人类语言和知识的广阔领域提供高密度一致性的技术不乏选择。
提示词工程 -- 这一充满活力且非常活跃的开发领域主要关注如何激活 LLM 所建模的与上下文相适应的知识域。由于语言具有万花筒般的特质,掌握这门艺术可以对我们的 Agent 能力的熟练度产生巨大影响。
2.3特定知识能力
特定知识涉及对特定领域或主题的深入理解。对于需要详细专业知识和熟悉专业内容的任务来说,这类知识是必不可少的。当我们瞄准能力目标时,可以考虑哪些技术 / 技巧?
-
检索增强生成( RAG ) --RAG 将 LLM 的生成能力与信息检索系统结合起来,引入外部来源的信息。这些信息可能是精确信息或特定知识( 例如,对一种独特方法的描述 ),由于 LLM 拥有广泛的知识技能,因此能够在上下文中 " 理解 " 这些信息。
-
模型微调 -- 在特定语境数据集上对 LLM 进行微调,以调整模型,从而在特定环境下生成与语境更相关的响应。虽然它不像 RAG 那样流行,但随着 Agent 工程的不断发展,我们可能会发现熟练度要求会引导我们更多地采用这种技术。
-
功能调用( 又称工具使用 ) -- 我们都很担心人工智能 Agent 会对无可争议的具体事实产生幻觉。如果需要一定的熟练程度,我们可能会求助于函数调用来检索特定信息。例如,电子商务 Agent 可能会使用定价应用程序接口来提供最新的产品价格,或者使用股票市场应用程序接口来实时更新股票价值。
-
防护栏 -- 防护栏有助于确保 Agent 在其响应中提供准确无误的信息。这可能涉及基于规则的约束、定向对话设计和意图预处理。
2.4精确信息
精确信息是指高度准确和具体的数据点,对于需要准确答案的任务来说至关重要。
-
功能调用( 又称工具使用 ) -- 我们都很担心人工智能 Agent 会对无可争议的具体事实产生幻觉。如果需要一定的熟练程度,我们可能会求助于函数调用来检索特定信息。例如,电子商务 Agent 可能会使用定价应用程序接口来提供最新的产品价格,或者使用股票市场应用程序接口来实时更新股票价值。
-
防护栏 -- 防护栏有助于确保 Agent 在其响应中提供准确无误的信息。这可能涉及基于规则的约束、定向对话设计和意图预处理。
2.5 Agent 结构与编排
既然我们已经牢牢掌握了 Agent 的工作内容、所需的能力和熟练度以及实现这些能力和熟练程度的可用技术,我们就可以将重点转移到 Agent 的结构和编排上,无论是单独配置还是某种群集或生态系统。是将能力注册到一个 Agent 上,还是将每种能力分配给一个在群组中运行的独特 Agent ?我们该如何开发出能够以最小的代价重新利用的能力和 Agent ?光是这个问题就涉及多篇文章,因此我们在此不再深入探讨。在某些方面,这是 " 橡胶与道路 " 的结合点,我们会发现自己正在将多种技术和技巧融合在一起,为我们的 Agent 注入活力。
2.6结论
从 " 提示词工程 " 到 " Agent 工程 " 的旅程才刚刚开始,一路上还有很多东西需要学习和完善。这是对 " Agent 工程框架 " 的首次尝试,通过勾勒一个高层次的思维模型,提出了一种设计人工智能 Agent 的实用方法,可作为这一演进过程中的一个有用起点。可用于构建 Agent 的模型和技术只会继续增加,这就明显需要一种框架,它可以从任何一种特定的技术或技术类别中概括出来。通过明确定义 Agent 需要做什么、概述执行这些任务所需的操作以及规定必要的能力和熟练度,为设计和工程工作奠定了坚实而灵活的基础。它还为我们的 Agent 及其能力提供了一个结构,以便随着时间的推移不断改进和发展。
3.参考文献
https://towardsdatascience.com/from-prompt-engineering-to-agent-engineering-f314fdf52a25