介绍 OpenSearch 中的 AI Agents:从简单的 Flow Agent 到先进的 ReAct 多 Agent 系统

作者:Mingshi Liu,Dotan Horovits

AI agent(简称 agent)是一种协调器,利用大型语言模型(LLM)来解决问题。LLM 经过推理后决定执行什么操作,agent 则负责协调执行这些操作。

OpenSearch 提供了多种适合不同 AI 任务的 agents,例如增强检索生成(RAG)、聊天机器人、研究和自动根因分析(RCA)等。

本文将介绍 OpenSearch 支持的各种 agents,并指导如何选择适合自己任务的 agent。为了便于理解,我们先介绍最简单的 agent,再逐步讲解更复杂的。

Flow Agent

Flow agent 是最简单的 agent 类型。它按配置顺序串联多个工具,依次执行。它相当于一个固定流程的协调者,将一个工具的输出作为下一个工具的输入。

Flow agent 适合 RAG 任务。RAG 流程中,agent 先用工具从知识库检索信息,再用另一个工具调用 LLM,将检索到的知识库内容和查询一起传入。这种方式适合实现一次性提示。

更多信息请见 Flow agents[1]。

Conversational Flow Agent

和 Flow agent 类似,conversational flow agent 也是按顺序运行工具,执行固定流程。

不同的是,它会在会话中保存对话历史到内存索引。这让用户可以基于上下文提出后续问题,agent 能利用历史内容进行回答。它适合那些大部分交互需要执行预定多步骤流程,但又需记忆对话上下文的聊天机器人。实现方式是用 few-shot 提示,将对话历史作为每次新提示的上下文。

对话历史存储在 OpenSearch 集群的索引中,可以方便查询和审计。可通过 Memory APIs 访问。详见 Agentic memory[2]。

Conversational Agent

这种 agent 不受固定流程限制,支持动态流程。它基于 ReAct(推理与行动)框架,LLM 通过反复推理决定行动,直到得到最终答案或达到迭代上限。

它的推理来源有两个:LLM 内置知识库和一组工具,工具帮助获取额外上下文。

对于具体问题,agent 通过 Chain-of-Thought(CoT)流程选择最合适的工具回答。

和 conversational flow agent 一样,会保存对话历史,支持后续问答。其工作流程会根据后续问题变化。

适合用来开发基于 RAG 的聊天机器人。

OpenSearch 内部也用这些 agents 支持自然语言查询的智能搜索。

Plan-Execute-Reflect Agent

这类 agent 使用更复杂的动态流程,动态规划、执行并反思多步骤流程,解决复杂任务。

它内部采用 OpenSearch 的多 agent 模式,可以串联多个 agent 并定义子 agent。规划阶段用 CoT agent,执行阶段用 conversational agent。自动根据工具描述和上下文选择最合适的工具。

适合长时间、探索性流程,如研究或自动根因分析(RCA),能通过迭代推理和自适应执行提升效果。

更多介绍见相关博客

Agent 工具和外部数据集成

agent 的能力取决于可用工具集。OpenSearch 的 agent 框架支持调用内置工具和外部工具,均通过标准协议实现。

内置 Agent 工具

OpenSearch 提供丰富的预置工具,可无缝配置给不同类型 agent,方便进行数据检索、分析和管理。

使用 MCP 连接器集成外部数据源

Model Context Protocol(MCP)作为 agent 工作流的通信标准越来越流行,简化了 AI agent 与外部工具的交互。

OpenSearch 通过 MCP 连接器扩展 agent 功能,支持连接外部 MCP 服务器及工具。此功能由 plan-execute-reflect agents 和 conversational agents 支持,能调用外部数据和服务,大幅扩展分析和操作能力。连接器支持 Streamable HTTP 和 Server-Sent Events(SSE)协议,灵活连接不同 MCP 服务器。agents 可结合 OpenSearch 内部工具和外部 MCP 工具,构建复杂多源数据分析和决策流程。

Agentic Memory(智能记忆)

agents 可用会话缓存存储之前的提示,作为上下文支持会话内后续问答,但缓存仅限当前会话。如果希望 agents 从过去对话中学习,实现更深层个性化和上下文记忆,就需要长时记忆,支持跨会话持久保存。

OpenSearch 2.12 版本引入了 Memory APIs,存储原始对话内容和工具使用记录,支持对话历史检索和追踪,作为短时记忆。

最近 OpenSearch 3.2 及 3.3 版本引入了 agentic memory,支持持久记忆系统,让 AI agents 能跨对话学习、记忆和推理。它提供多种记忆管理策略,如语义事实提取、用户偏好学习和对话摘要。agentic memory 让 agents 随时间积累知识,支持记忆整合、检索和历史跟踪。

这使得 AI 交互从静态变为动态、上下文感知,更智能且可控。详见 Agentic memory。

与 MCP 服务器的 Agentic 体验

外部 agents 也能通过标准 MCP 协议访问 OpenSearch 功能。

OpenSearch 提供两种 MCP 服务器方案,满足不同集成需求:

  1. 内置 MCP 服务器:集成在 OpenSearch 内,提供 Streamable HTTP MCP API,支持动态注册和移除工具。通过 /_plugins/_ml/mcp 直接调用,支持 RBAC 访问控制,安全又灵活。

  2. 独立 MCP 服务器:通过 opensearch-mcp-server-py 包部署,支持 stdio、Streamable HTTP 和 SSE 协议,兼容多种 AI agent 框架。支持工具过滤和多集群连接,适合分布式复杂工作流。

两者均可让 agents 安全实时访问搜索数据,结合其他 MCP 服务器和外部工具,实现复杂分析操作。

更多示例和用例请参考相关博客[3]。

总结

OpenSearch 提供多种 agents 支持不同 AI 任务,从固定流程到动态流程,涵盖短期重点逻辑到长期探索性任务。

想开始使用 OpenSearch 的 agents,请参阅 Agents and tools 教程[4]中的分步配置指南。

参考资料

[1] 

Flow agents: https://docs.opensearch.org/latest/ml-commons-plugin/agents-tools/agents/flow/

[2] 

Agentic memory: https://docs.opensearch.org/latest/ml-commons-plugin/agentic-memory/

[3] 

相关博客: https://opensearch.org/blog/unlocking-agentic-ai-experiences-with-opensearch/

[4] 

Agents and tools 教程: https://docs.opensearch.org/latest/ml-commons-plugin/agents-tools/agents-tools-tutorial/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值