You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将向量嵌入(Pinecone索引)整合至Langchain ReAct Agent?

将Pinecone向量检索集成到ReAct Agent的方案

要把Pinecone向量索引作为上下文提供给ReAct Agent,核心是将向量检索逻辑包装成Agent可调用的工具,让Agent在需要时主动触发检索获取上下文信息。具体实现步骤如下:

1. 把Pinecone检索器包装为工具

使用LangChain的create_retrieval_tool方法,将你的retriever直接转换成Agent能识别的工具。这个工具会自动处理检索逻辑,并返回相关的上下文内容。

from langchain.tools.retriever import create_retrieval_tool

# 创建检索工具,指定工具名称、描述(帮助Agent判断何时调用)
retrieval_tool = create_retrieval_tool(
    retriever,
    name="pinecone_context_retriever",
    description="当需要回答与知识库相关的问题时调用,用于从Pinecone索引中获取相关上下文信息"
)

2. 将工具加入ReAct Agent的工具列表

修改你的Agent初始化代码,把上面创建的检索工具加入tools列表:

# 导入需要的库(如果还没导入)
from langchain.agents import create_structured_chat_agent, AgentExecutor
from langchain import hub

# 定义工具列表,加入检索工具(可保留原有的其他工具)
tools = [retrieval_tool]

# 拉取prompt并初始化Agent
prompt = hub.pull("hwchase17/structured-chat-agent")
agent = create_structured_chat_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

3. 调用Agent进行交互

现在调用Agent时,它会根据问题判断是否需要调用Pinecone检索工具获取上下文,再结合上下文生成回答:

result = agent_executor.invoke(
    {
        "input": question,
        "chat_history": chat_history
    }
)
# 更新对话历史(可选,根据需求处理)
chat_history.append((question, result['output']))

关键说明

  • 与之前的ConversationalRetrievalChain不同,这种方式是Agent自主决策是否触发检索,而非每次自动注入上下文,更贴合ReAct Agent的推理逻辑。
  • 工具的description非常关键,需清晰描述工具用途,帮助LLM判断调用时机。

内容的提问来源于stack exchange,提问作者MirrahOH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 04:36:09