多 Agent 协作,效果如何评估?

编者按: 在构建基于大语言模型的应用时,你是否遇到过这样的困扰:多个 AI Agent 协同工作时,如何确保它们的表现符合预期?如何有效监控它们之间的互动质量?这些问题不仅影响着产品的性能,更直接关系到用户体验的好坏。
本文作者基于实际项目经验,深入剖析了 Agentneo、Arize Phoenix 和 TruLens 这三款主流评估工具的特点和应用场景。通过具体的代码示例和实践建议,展示了如何从对话记录、执行流程、提示词效果等多个维度来评估和优化 AI 助手的表现。
如果你正在为 AI Agents 的评估和监控而烦恼,希望这篇文章能够给你带来启发。文章不仅告诉你"用什么工具",更教会你"如何用好这些工具",帮助你构建一个性能可控、效果可评估的 AI 应用系统。
作者 | Chinmay Bhalerao
编译 | 岳扬

Image created by author, Background image by Hollywood reporter[1]
想象一下,一个由虚拟助手组成的团队正在协作处理客户的服务咨询。每个助手各司其职,确保提供精准、高效且经过优化的响应。这正是 LLMs 中 Agentic 模式的核心理念。
RAG(检索增强生成)目前已经成为 LLMs 应用的核心组件。像 Arize Phoenix、ragas、TrueLens 等工具,能够运用多种指标来评估 RAG 的性能。随着 RAG 技术的不断进步,Agentic 模式成为开发 LLMs 应用的新趋势。大家都在争相将现有的或新产品转型为 agentic 工作流。看到能够相互协作、进行有效群组讨论的 LLMs,无论有无人工介入,都能共同制定出最佳和全面的解决方案,这无疑让人充满期待。
01 什么是 Agents?
Agents 是 LLMs 中的协调平台,它们被设计用于整合多个 LLMs 的能力,甚至在没有 LLMs 的情况下也能自动执行任务,几乎无需人工介入。每个 Agent 能够独立处理特定任务,同时还能进行讨论、咨询、集思广益,并不断改进它们的工作成果。我们可以利用任一 LLM 来创建 Agents ,并让它完成各种任务。

来源:微软 Autogen[2],展示了不同类型的 Agent 及其在 Autogen 库中的作用
02 什么是 Agentic 方法?
Agentic 方法指的是将工作流程细分为更小、更独立的 Agents,这些 Agents 通过协作来解决问题。与让一个单一的系统包揽所有任务不同,这种方法是将职责分散给具备专业功能的 Agents,从而实现更高效和可扩展的解决方案。简而言之,这就像将不同的任务分配给不同的人,并指导他们通过团队讨论来共同打造出一个完善的解决方案,类似于我们在头脑风暴会议中的做法。
举例来说:
假设我们要构建一个基于 LLM 的简易问答系统。
在 LLM RAG 流程中,会有一个检索器,它负责根据用户提问检索出最相关的数据。接着将这些精选数据和问题一起发送给 LLM,由 LLM 生成答案。如果需要对答案的结构或内容进行优化,我们只需调整提示词,然后重复相同的步骤来检验答案。
采用 Agentic 方法,基于上述情况,我们可以创建三个 Agent:一个是负责检索任务的检索器 Agent,一个是负责生成答案的答案生成器 Agent,以及一个负责对答案进行反馈的答案验证 Agent。
当检索器 Agent 提供了相关数据后,答案生成器 Agent 和答案验证 Agent 将展开对话。在经过数轮的反馈和交流后,最终会得出一个恰当的答案。我可以为这两个 Agent 设定明确的提示词,以便明确它们的任务。同时,由于检索器 Agent 不需要 LLM 的功能,我们不会为其提供 LLM 的访问权限,它只需独立完成检索任务即可。

Image by author
上图准确地展示了我在前文中提到的程序。通过这幅图,我们可以清楚地看到如何利用 Agents 来自主完成各项任务。
03 Evaluation
在对智能体有了深入了解之后,接下来我们将探讨如何对智能体进行评估。
在机器学习(ML)或深度学习(DL)领域,我们通常面对的是离散的输出结果,因此它们的评估标准比较固定,也容易泛化。然而,当涉及到对 RAG 流程或智能体的评估时,情况就变得有趣了。RAG 评估引入了多种指标,如 context relevancy、faithfulness、context recall、recall、toxicity、Recall@K、Precision@K 等。智能体也可以依靠这些特定的指标来有效评估自身性能。许多原本用于传统系统的评估指标,如 context relevancy、faithfulness 和 recall,同样也适用于智能体的评估。 此外,还有一些专门的工具可以更加流畅地对智能体进行评估。
接下来,让我们逐一探讨这些评估工具。
3.1 Agentneo

Source: Agentneo 官方仓库
Agentneo 是由 ragaAI 公司推出的一款工具,它是一个面向 AI Agents 的观察、监控和评估框架的 Python SDK。它提供的功能包括追踪智能体(Agents)和 LLMs、工具使用情况,调试多智能体系统,提供一个可自行托管的仪表盘,以及具备时间线和执行流程图的高级数据分析功能。
首先,执行以下命令进行安装:

只需这个简单的安装步骤,就能在本地环境中成功部署 agentneo。
接下来的操作非常便捷。我们需要在智能体(Agents)初始化完成后,以及群组对话或交流开始前,启动追踪功能(简单来说,就是开启日志记录)。

这样就能开始监控智能体之间的对话。Agentneo 和很多应用一样提供了一个定制化的仪表盘,能够查看 Agents 各个方面的信息。
我们可以根据自己的需求来评估 Agents 的表现,并设定相应的评估指标。

群组对话和交流完成之后,结束追踪,并打开仪表盘。

你只需在浏览器中输入 http://localhost:3000,即可访问交互式的仪表盘。

Agentneo 仪表盘
在这个仪表盘上,我们可以追踪多种数据(包括分析数据、时间、LLM 的调用记录),以及 Agents 对话中非常重要的主要内容 —— Agents 之间的聊天内容。
它已经与多个智能体库如 Autogen 和 Crewai 实现了集成,未来还将接入更多智能体库。我使用过该库配合 Autogen,发现它是一个追踪 Agents 活动的优秀工具。
Github:Agentneo[3] | RagaAI[4]
3.2 Arize phoenix

Source: Official Arize phoenix website
Arize Phoenix 是一款开源的 LLM 追踪及评估工具,它通过以下几个方面来进行评估工作:
追踪执行流程:提供详尽的执行流程洞察,便于发现和解决潜在问题。该工具还提供一系列指标(metrics)、日志(logs)以及元数据(metadata)支持。
提示词跟踪:为创建、管理以及实验不同的提示词变体提供了一个独立的空间。更多详情请参阅 https://docs.arize.com/phoenix/user-guide#prompt-tracking。
向量嵌入可视化工具
评估测试与基准测试方面:用户可以自定义评估指标,收集用户反馈,并利用不同的 LLM 进行自动化评估。Phoenix 提供用于分析评估结果、识别趋势以及跟踪改进的工具,同时支持将这些评测指标与行业标准或自定义基准进行对比。
此外,Phoenix 还提供了数据整理工具,用于数据的探索、清洗和标注。
Phoenix 也适用于追踪 Agents 行为。它通过检测 Autogen 所依赖的底层模型库来实现这一功能。
开始使用前,您需要先安装相关库。

以下是您可以在本地运行的代码示例。

执行代码后,您将看到如下所示的仪表盘界面。

我之前尝试过 Agentneo,但说实话,Phoenix 我用的并不多,原因何在?当时我想使用 Phoenix 时,它并不支持谷歌的任何模型,并且对 OpenAI 模型的访问也受限。不过,我了解到他们可能现在已经支持了所有模型。
Notebook[5] | Procedural Phoenix[6] | LLM evaluation[7]
3.3 TruLens
在许多应用中,我都使用 TrueLens 来跟踪和监控 RAG 流程。

Source: TrueLens github repository[8]
TruLens 是一款能够客观评估基于 LLM 的应用程序性能的软件工具,它通过反馈机制来完成这一任务。这些反馈机制能够自动分析应用的输入、输出以及中间处理过程的质量,从而加速评估实验并实现规模化。TruLens 适用于多种场景,如自动问答、内容摘要、检索增强生成以及基于智能体的应用等。
TruLens 通过以下几种反馈机制来提升 LLM 应用性能并降低风险:
Context Relevance(上下文相关性)
Groundedness(评估信息是否基于实际数据或事实)
Answer Relevance(检验提供的答案是否与问题紧密相关)
Comprehensiveness(检查信息是否全面覆盖了所需内容)
Harmful or toxic language(监测是否存在不当或有毒的语言)
User sentiment(用户情绪)
Language mismatch(识别语言使用上的不一致问题)
Fairness and bias(评估应用是否存在偏见或不公平现象)
其他自定义反馈

Image credit: TrueLens 官方网站[9]
在其官方网站上,他们提及了在 Agents 评估过程中应用 TrueLens。若您打算采用 TrueLens,其便捷程度与其他工具无异。
首先,安装必要的依赖项。

接着,设定您希望追踪的指标。

然后,构建应用程序。

我们可以在 leaderboard 中查看结果,并且检查运行仪表板。

完成这些步骤后,您将看到一个与下图相似的仪表板。

本文未提供全部代码,但该 NOTEBOOK[10] 将引导您完成 TrueLens 应用程序的设置与执行。

Pic credits: Adam Silverman
04 Final words
本文所有提及的工具都配备有各自的用户界面,您可以在本地主机上查看它们。依我之见,如果您的应用程序中包含了许多 Agents,那么进行跟踪就非常重要。您需要监控哪些方面,取决于应用程序的复杂程度及具体需求。在评估过程中,我通常觉得评估对话记录部分更有帮助,它能告诉我们各个 Agents 的具体行为,从而我们可以据此调整相应的提示词,并且还能帮助决定对话的轮数。如果您还知道其他评估 Agents 的工具,不妨在评论区留言!
Thanks for reading!
Hope you have enjoyed and learned new things from this blog!
About the author
Chinmay Bhalerao
AI/ML Researcher & Engineer | 3x Top Writer in AI, CV & Object Detection | Simplifying Tech with Insights & Simulations |
END
本期互动内容 🍻
❓如果您还知道其他评估 Agents 的工具,不妨在评论区留言!
🔗文中链接🔗
[2]https://microsoft.github.io/autogen/0.2/docs/Use-Cases/agent_chat/
[3]https://github.com/raga-ai-hub/AgentNeo
[5]https://github.com/Arize-ai/phoenix/blob/main/tutorials/tracing/autogen_tutorial.ipynb
[6]https://docs.arize.com/phoenix/tracing/integrations-tracing/autogen-support
[8]https://github.com/truera/trulens
原文链接:
版权声明: 本文为 InfoQ 作者【Baihai IDP】的原创文章。
原文链接:【http://xie.infoq.cn/article/5c1c0acb3149be0ae741e2cfd】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论