作者:靖苏
阿里云函数计算 AgentRun 正式推出全新知识库功能,为智能体(Agent)注入更强的语义理解与上下文感知能力。通过深度集成百炼知识库与 RAGFlow 知识库,AgentRun 让开发者能够轻松构建具备“知识”的智能应用,真正实现“更懂用户、更贴场景、更高效响应”。
为什么需要知识库?
在传统智能体开发中,模型往往依赖通用训练数据,缺乏对特定业务、私有文档或实时信息的理解能力。这导致其在面对专业领域问题、企业内部知识或个性化需求时表现受限。
AgentRun 的知识库功能正是为解决这一痛点而生——它将外部知识源无缝接入智能体运行流程,通过检索增强生成(RAG)技术,让智能体在回答问题、执行任务时,能动态调用相关知识,大幅提升准确性、专业性与可信度。
双引擎支持:百炼+RAGFlow,覆盖多元知识形态
▍百炼知识库绑定
函数计算 AgentRun 可以绑定您账号下已经创建好的阿里云百炼知识库[1]。
进入到创建页面,输入知识库名称、描述,选择知识库类型为“百炼”,可以多选绑定您账号下已经在阿里云百炼控制台创建好的多个知识库。填写检索配置后,点击创建知识库,即可将您的阿里云百炼知识库绑定至 AgentRun 平台。
▍RAGFlow 知识库绑定
函数计算 AgentRun 可以绑定您账号下已经创建好的 RAGFlow 知识库。如果您没有 RAGFlow 知识库,可以点击此链接(https://saenext.console.aliyun.com/cn-hangzhou/scene-market/market/detail/service-611f1d5343924329a69e?tab=document&name=RAGFlow%E7%A4%BE%E5%8C%BA%E7%89%88-Serverless%E9%83%A8%E7%BD%B2&dataSource=computeNest),一键在 SAE 上创建 RAGFlow。
进入到创建页面,输入知识库名称、描述,选择知识库类型为“RAGFlow”,填写您已部署的 RAGFlow 的 BaseURL、Dataset IDs 和 API-KEY(将其保存在凭证中)。填写检索配置后,点击创建知识库,即可将您自建的 RAGFlow 知识库绑定至 AgentRun 平台。
RAGFlow 知识库详细配置获取方式,可参考此文档:https://help.aliyun.com/zh/functioncompute/fc/knowledge-base-integration-guide。
三大集成方式,灵活适配各类开发场景
函数计算 AgentRun 知识库功能支持快速创建集成、代码集成和 MCP 集成三种方式,满足不同技术栈和开发习惯。
▍快速创建Agent集成知识库功能
对于希望快速验证想法或加速产品迭代的团队,AgentRun 提供了低代码、可视化的知识库绑定能力。开发者只需登录 AgentRun 控制台,选择已创建的百炼或 RAGFlow 知识库,将其关联到目标智能体,并配置简单的检索参数(如返回结果数量、相似度阈值等),即可完成集成——全程无需编写一行代码。
这一模式极大降低了技术门槛,让产品经理、运营人员甚至非技术背景的创新者也能参与智能体的构建与优化。无论是搭建内部知识问答机器人、客户自助服务助手,还是快速验证某个垂直领域的 AI 应用场景,都能在几分钟内完成部署并上线试用。
代码集成知识库查询能力对于追求极致灵活性与控制力的开发者,AgentRun 提供了原生代码级知识库接入能力。您可以在代码逻辑中,调用 AgentRun SDK 的知识库检索接口,根据业务上下文动态发起检索请求,精准筛选并注入最相关的信息片段到智能体的推理流程中。您可以使用 AgentRun SDK,调用以下封装的接口,进行单知识库查询或多知识库查询。
fromagentrun.knowledgebaseimportKnowledgeBase ## 获取单知识库,进行查询 knowledgebase=KnowledgeBase.get_by_name("ragflow-test") single_kb_retrieve_result=knowledgebase.retrieve("<your-query>") print(single_kb_retrieve_result) ## 获取多知识库,进行查询,支持跨供应商知识库类型检索 multi_kb_retrieve_result=KnowledgeBase.multi_retrieve( query="<your-query>", knowledge_base_names=["ragflow-test","<your-knowledge-base-name-2>"], ) print(multi_kb_retrieve_result)
同样,您可以集成 LangChain 框架,将知识库的查询能力集成在工具或上下文中。
"""AgentRun 知识库智能体集成代码示例 使用前,请参考https://docs.agent.run/docs/tutorial/quick-start 配置好相应认证信息和环境变量 curl http://127.0.0.1:9000/openai/v1/chat/completions -X POST \ -H "Content-Type: application/json" \ -d '{"messages": [{"role": "user", "content": "什么是Serverless?"}], "stream": true}' """ import json import os from typing import Any from langchain.agents import create_agent import pydash from agentrun import Config from agentrun.integration.langchain import model from agentrun.integration.langchain import knowledgebase_toolset from agentrun.integration.langgraph.agent_converter import AgentRunConverter from agentrun.knowledgebase import KnowledgeBase from agentrun.server import AgentRequest, AgentRunServer from agentrun.server.model import ServerConfig from agentrun.utils.log import logger # 请替换为您已经创建的 模型 名称 AGENTRUN_MODEL_SERVICE = os.getenv("AGENTRUN_MODEL_SERVICE", "<your-model-service>") AGENTRUN_MODEL_NAME = os.getenv("AGENTRUN_MODEL_NAME", "<your-model-name>") KNOWLEDGE_BASES = os.getenv("AGENTRUN_KNOWLEDGE_BASES", "ragflow-test").split(",") if AGENTRUN_MODEL_NAME.startswith("<") or not AGENTRUN_MODEL_NAME: raise ValueError("请将 MODEL_NAME 替换为您已经创建的模型名称") ## 加载知识库工具,知识库可以以工具的方式供Agent进行调用 knowledgebase_tools = [] if KNOWLEDGE_BASES and not KNOWLEDGE_BASES[0].startswith("<"): knowledgebase_tools = knowledgebase_toolset( knowledge_base_names=KNOWLEDGE_BASES, ) else: logger.warning("KNOWLEDGE_BASES 未设置或未替换,跳过加载知识库工具。") agent = create_agent( model=model(AGENTRUN_MODEL_SERVICE, model=AGENTRUN_MODEL_NAME, config=Config(timeout=180)), tools=[ *knowledgebase_tools, ## 通过工具集成知识库查询能力 ], system_prompt="你是一个 AgentRun 的 AI 专家,可以通过查询知识库文档来回答用户的问题。", ) async def invoke_agent(request: AgentRequest): messages = [ {"role": msg.role, "content": msg.content} for msg in request.messages ] # 如果配置了知识库,查询知识库并将结果添加到上下文 if KNOWLEDGE_BASES and not KNOWLEDGE_BASES[0].startswith("<"): # 获取用户最新的消息内容作为查询 user_query = None for msg in reversed(request.messages): if msg.role == "user": user_query = msg.content break if user_query: try: retrieve_result = await KnowledgeBase.multi_retrieve_async( query=user_query, knowledge_base_names=KNOWLEDGE_BASES, ) # 直接将检索结果添加到上下文 if retrieve_result: messages.append({ "role": "assistant", "content": json.dumps(retrieve_result, ensure_ascii=False), }) except Exception as e: logger.warning(f"知识库检索失败: {e}") input: Any = {"messages": messages} converter = AgentRunConverter() if request.stream: async def async_generator(): async for event in agent.astream(input, stream_mode="updates"): for item in converter.convert(event): yield item return async_generator() else: result = await agent.ainvoke(input) return pydash.get(result, "messages[-1].content", "") AgentRunServer( invoke_agent=invoke_agent, config=ServerConfig( cors_origins=[ "*" ] ), ).start()
注意⚠️:如果您选择了 RAGFlow 的知识库,需要确保您的 Agent 运行环境和 RAGFlow 的 BaseURL 的地址处于同一网络环境下,否则 AgentRun SDK 将无法调用 RAGFlow 的 API 实现查询能力。
通过代码集成,AgentRun 赋予开发者“全栈可控”的能力——既享受函数计算的弹性与免运维优势,又保留对智能体认知过程的深度掌控,真正实现“知识为我所用,逻辑由我定义”。
▍MCP 集成:将知识库检索作为 Agent 的工具调用
AgentRun 知识库率先实现“Agentic RAG”(智能体 RAG)模式——将传统静态检索升级为动态、可编程的智能体工具调用。具体而言,用户可一键将知识库发布为 MCP,使其成为大语言模型(LLM)可主动调用的工具之一。在此模式下,LLM 不再被动接收上下文,而是具备“工具使用能力”,在推理过程中自主判断何时调用 RAG、数据库查询、库存检查等工具,并基于返回结果进行多步推理与任务分解。这种机制使 RAG 从单一检索功能转变为智能体工具箱中的灵活组件,与其他工具并列协作,显著提升复杂任务的处理能力。其工作方式更贴近人类“思考—行动—反思”的认知流程:模型先分析问题,制定计划,再按需调用多个工具获取信息,最终整合结果生成答案。
进入其他 >> 工具管理 >> 工具市场,可以搜索到“AgentRun 知识库 MCP”工具模板,点击安装后,填写知识库名称和类型,即可将知识库的查询能力一件发布成 MCP 工具给大模型进行调用。
创建完毕后,点击工具详情,即可看到集成调用的工具地址:
基于 MCP 工具标准协议,AgentRun 支持以标准化方式对接知识库服务,实现跨平台、跨模型的上下文注入能力,保障架构的开放性与可扩展性。
结语:从“能回答”到“真理解”,智能体正在拥有“知识之眼”
AgentRun 知识库功能的上线,不仅是一次技术能力的升级,更标志着智能体发展迈入新阶段——从依赖通用语料的“泛化应答”,转向基于专属知识的“情境理解”。当智能体能够随时调用企业文档、行业规范、用户历史甚至实时数据,它便不再只是一个语言模型的接口,而成为一个具备领域认知、上下文记忆与决策依据的数字协作者。
未来,随着知识库的持续进化——支持多模态内容、动态更新、跨源推理——AgentRun 将进一步降低构建“有知识、有逻辑、有温度”智能体的门槛。
我们相信,真正的智能,不在于模型有多大,而在于是否“懂你所需、知你所问、信你所依”。
AgentRun,正让每一个智能体,学会思考,更学会理解。
相关链接:
[1] 阿里云百炼知识库
https://bailian.console.aliyun.com/cn-beijing/?admin=1&tab=app#/knowledge-base