全部產品
Search
文件中心

Agent Run:知識庫整合指南

更新時間:Oct 11, 2026

在AgentRun中,知識庫功能允許您將外部專業文檔或私人資料關聯至 AI Agent。通過知識庫整合,Agent 在執行任務時可以檢索相關上下文,從而顯著提升回答的準確性和時效性。

目前 AgentRun 支援以下知識庫類型。其中阿里雲百鍊與 RAGFlow 通過串連已有知識庫接入,需要您先在對應平台中建立好知識庫;Tablestore 知識庫與 AnalyticDB PostgreSQL 知識庫為自建知識庫,通過建立知識庫直接在 AgentRun 中建立。

  • 阿里雲百鍊:串連已在阿里雲百鍊中建立好的知識庫,支援多選。

  • RAGFlow:串連自建或已部署的 RAGFlow 服務,需提供 BaseURL、API-KEY 和 Dataset ID。

  • Tablestore 知識庫:由 AgentRun 自動建立並配置 Tablestore 執行個體,或指定當前地區已有的 Tablestore 執行個體來承載向量與全文索引,無需自行準備向量資料庫。

  • AnalyticDB PostgreSQL 知識庫:使用您已有的 AnalyticDB PostgreSQL 執行個體,在指定命名空間下建立文檔集合,適用於希望知識庫資料與自有執行個體統一管理的情境。

綁定知識庫

  1. 登入AgentRun 控制台,在左側導覽列選擇模型與工具 > 知識庫;

  2. 在知識庫列表頁單擊建立知識庫,選擇知識庫的接入方式:

    • 串連已有知識庫:接入已在阿里雲百鍊或 RAGFlow 中建立好的知識庫,配置方法參見下文「綁定阿里雲百鍊知識庫」和「綁定 RAGFlow 知識庫」。

    • 建立知識庫:在 AgentRun 中建立自建知識庫。此時還需選擇配置方式:自動設定固定使用 Tablestore,由 AgentRun 自動建立並配置執行個體;自訂配置需自行選擇知識庫類型為 Tablestore 知識庫或 AnalyticDB PostgreSQL 知識庫。配置方法參見下文「建立 Tablestore 知識庫」和「建立 AnalyticDB PostgreSQL 知識庫」。

自建知識庫的可用地區以控制台實際展示為準,部分地區暫不支援建立知識庫:eu-central-1、ap-northeast-1 等地區不支援建立知識庫;在 us-west-1、us-southeast-1 地區,知識庫類型中的 AnalyticDB PostgreSQL 知識庫選項不可選。

綁定阿里雲百鍊知識庫

如果您使用阿里雲百鍊作為 RAG 服務,請配置以下參數:

  • 知識庫名稱:輸入自訂的知識庫顯示名稱。

  • 描述:簡述該知識庫的用途或涵蓋的資料範圍。

  • 知識庫類型:選擇百鍊。

  • 工作空間:首次使用時,點擊預設業務空間的立即授權按鈕,開啟授權並確認業務空間。

  • 知識庫:從下拉式清單中選擇已在阿里雲百鍊知識庫建立好的知識庫(支援多選),並根據業務需要修改檢索配置。

點擊建立知識庫,即可將您的阿里雲百鍊知識庫綁定至AgentRun平台。

綁定 RAGFlow 知識庫

重要

RAGFlow 接入已進入維護期。新使用者後續可通過 MCP 或 SDK 自主接入,平台不再提供產品化支援。

RAGFlow 是一款開源的深度文檔理解引擎,綁定時請填寫以下資訊:

  • 知識庫名稱:輸入自訂的知識庫顯示名稱。

  • 描述:簡述該知識庫的用途或涵蓋的資料範圍。

  • 知識庫類型:選擇RAGFlow。

  • RAGFlow配置(可參考控制台指引,快速通過SAE部署RAGFlow):

    • BaseURL:填寫 RAGFlow 服務的 API 端點地址。

    • DataSet IDs:填寫需要關聯的資料集 ID(支援多個 ID)。

    • 憑證配置:選擇已儲存的RAGFlow的API-KEY憑證。

    說明

    關於如何擷取上述 RAGFlow 配置參數,請參考本文如何擷取 RAGFlow 配置資訊。

  • 檢索配置:根據業務需要修改相似性閾值和向量相似性權重。

點擊建立知識庫,即可將您自建的RAGFlow知識庫綁定至AgentRun平台。

建立 Tablestore 知識庫

如果您沒有現成的向量資料庫,可以選擇 Tablestore 知識庫,由 AgentRun 負責執行個體的建立與索引配置。在知識庫列表頁單擊建立知識庫,接入方式選擇建立知識庫,然後按以下兩種配置方式之一建立:

  • 自動設定:固定使用 Tablestore,無需選擇知識庫類型和執行個體。提交前 AgentRun 會檢查 Tablestore 服務的開通狀態,並檢查 AliyunOTSAccessingOSSRole 角色;角色不存在時會中止建立並引導您完成授權。授權完成後,AgentRun 自動建立一個名稱形如 knowledge-xxxx、叢集類型為 SSD 的 Tablestore 執行個體,並為其打上 source=agentrun 和 scene=knowledgebase 標籤。

  • 自訂配置:知識庫類型選擇 Tablestore 知識庫,並從 Tablestore 執行個體下拉式清單中選擇當前地區已有的執行個體。

配置以下參數:

配置項

是否必填

預設值

說明

知識庫名稱

是

無

輸入自訂的知識庫顯示名稱,提交時會校正名稱是否已被佔用。

描述

否

無

簡述該知識庫的用途或涵蓋的資料範圍。

工作空間

否

當前工作空間

未指定時使用預設工作空間。

Tablestore 執行個體

自訂配置時必填

無

列出當前地區已有的 Tablestore 執行個體。自動設定時不展示該配置項,執行個體由 AgentRun 自動建立。

標籤

否

無

用於知識庫資源的分類和管理,提交時空標籤會被忽略。

Embedding Model

是

text-embedding-v4

可選 text-embedding-v3、text-embedding-v4。該選擇決定 Vector Dimension 的可選值。

Vector Dimension

是

1024

text-embedding-v3 可選 1024、768、512、256、128、64;text-embedding-v4 可選 2048、1536、1024、768、512、256、128、64。

Metadata Configuration

否

無

以欄位名與欄位類型定義文檔的中繼資料欄位,類型可選 string、long、double、boolean、date 及對應的 list 類型(string_list、long_list、double_list、boolean_list、date_list)。

中繼資料過濾條件

否

無

僅在 Metadata Configuration 中定義了有效欄位後展示。支援 andAll、orAll 兩種組合方式,條件運算子包括 equals、notEquals、greaterThan、greaterThanOrEquals、lessThan、lessThanOrEquals、in、notIn、startsWith、stringContains、listContains。

在檢索配置中設定知識庫的預設檢索行為,建立後可在知識庫詳情頁調整:

配置項

預設值

說明

檢索類型

同時啟用向量檢索和全文檢索索引

至少選擇一種檢索類型。

TopK

20

單次檢索返回的結果數量,取值範圍 1~100。

召回演算法

RRF

可選 RRF、WEIGHT、MODEL,決定向量檢索與全文檢索索引結果的融合方式。

RRF 參數 k

60

召回演算法為 RRF 時展示,取值範圍 2~100。

服務商

bailian

召回演算法為 MODEL 時展示,當前可選 bailian。

重排模型

gte-rerank-v2

召回演算法為 MODEL 時展示,當前可選 gte-rerank-v2。

向量權重

0.7

召回演算法為 WEIGHT 時展示,取值範圍 0~1,全文檢索索引權重為 1 減去向量權重。

提交後,AgentRun 先在 Tablestore 中建立知識庫,再在 AgentRun 中產生對應的知識庫記錄。建立完成後,可在知識庫詳情頁匯入文件並驗證召回效果,參見下文「自建知識庫的文件管理與召回測試」。

關於 Embedding 模型的接入與配置,請參見向量模型-添加與配置 Embedding 模型。

建立 AnalyticDB PostgreSQL 知識庫

重要

AnalyticDB PostgreSQL 接入已進入維護期。新使用者後續可通過 MCP 或 SDK 自主接入,平台不再提供產品化支援。

如果您已有 AnalyticDB PostgreSQL 執行個體,並希望知識庫資料儲存在自有執行個體中,可以選擇 AnalyticDB PostgreSQL 知識庫。建立前請確認:已有可用的 AnalyticDB PostgreSQL 執行個體、可訪問該執行個體的帳號與密碼、以及執行個體中已建立的命名空間及其密碼(系統命名空間不會出現在候選列表中)。

在建立知識庫面板中依次選擇:建立方式為建立知識庫、配置方式為自訂配置、知識庫類型為 AnalyticDB PostgreSQL 知識庫,然後配置以下參數:

配置項

是否必填

預設值

說明

知識庫名稱

是

無

輸入自訂的知識庫顯示名稱,提交時會校正名稱是否已被佔用。

描述

否

無

簡述該知識庫的用途或涵蓋的資料範圍。

工作空間

否

當前工作空間

未指定時使用預設工作空間。

AnalyticDB PostgreSQL 執行個體

是

無

列出當前地區已有的執行個體,支援按執行個體 ID 和執行個體描述搜尋。若當前地區沒有可用執行個體,可從下拉式清單跳轉到AnalyticDB PostgreSQL 購買頁建立執行個體。

使用者名稱

是

無

選擇執行個體後展示,用於訪問該執行個體並讀取命名空間列表。

密碼

是

無

選擇執行個體後展示,與使用者名稱一起校正。帳號或密碼錯誤時,使用者名稱和密碼會同時提示錯誤。

命名空間

是

無

填寫使用者名稱和密碼後展示可選的命名空間列表,其中不包含 public、htap、pgsearch 等系統命名空間。

命名空間密碼

是

無

用於訪問所選命名空間。修改命名空間或命名空間密碼後會自動校正,密碼不正確時提示「命名空間密碼不正確」。

中繼資料配置

否

無

以欄位名與欄位類型定義文檔的中繼資料欄位,類型可選 text、bool、integer、double precision。

Embedding Model

否

text-embedding-v3

可選 text-embedding-v1、text-embedding-v2、text-embedding-v3、text-embedding-v4、multimodal-embedding-v1。

Index Algorithm

否

cosine

向量索引的距離演算法,可選 l2、ip、cosine。

使用者名稱、密碼、中繼資料配置、Embedding Model 和 Index Algorithm 均在選擇執行個體後才展示。

在檢索配置中設定知識庫的預設檢索行為,建立後可在知識庫詳情頁調整:

配置項

預設值

說明

全文檢索索引

關閉

開啟後可配置召回視窗和雙路召回演算法,與向量檢索結果融合。

TopK

20

單次檢索返回的結果數量,取值範圍 1~100。

啟用重排因子

關閉

關閉時不提交重排因子參數。

RerankFactor

2.0

啟用重排因子後展示,取值範圍 1.01~5。

啟用重排模型

關閉

僅在啟用重排因子後展示。

重排模型

qwen3-rerank

啟用重排模型後展示,可選 qwen3-rerank、gte-rerank-v2。

召回視窗左邊界 / 右邊界

-5 / 5

開啟全文檢索索引並啟用召回視窗後展示,左邊界取值範圍 -10~0,右邊界取值範圍 0~10。

雙路召回演算法

RRF

開啟全文檢索索引後展示,可選 RRF、Weight、Cascaded。

RRF 參數 k

60

雙路召回演算法為 RRF 時展示,最小值為 2。

Weight 參數 alpha

0.5

雙路召回演算法為 Weight 時展示,取值範圍 0~1。

過濾條件

無

檢索時附加的過濾運算式,留空表示不過濾。

提交後,AgentRun 先在 AnalyticDB PostgreSQL 執行個體的指定命名空間中建立文檔集合,再在 AgentRun 中產生對應的知識庫記錄。建立完成後,可在知識庫詳情頁匯入文件並驗證召回效果,參見下文「自建知識庫的文件管理與召回測試」。

如何擷取 RAGFlow 配置資訊

通過SAE部署的RAGFlow,可通過登入RAGFlow平台。若要成功串連RAGFlow,您需要進入 RAGFlow 平台提取以下三個核心資訊:

擷取 BaseURL

  • 點擊右上方帳戶圖片,進入個人設定/賬戶管理頁面。

  • 找到API部分,查看基礎請求地址API Server即為BaseURL。

擷取 API-KEY

  • 在個人API設定頁面中,找到。

  • 複製已有的API KEY,如果沒有建立過,點擊Create new key按鈕進行建立。

  • 參考憑證管理將擷取到的API KEY作為訪問第三方的憑證綁定在AgentRun平台,注意建立憑證時服務類型選擇其他服務。

擷取 Dataset ID

  • 點擊頂部功能表列的Knowledge Base。

  • 在列表中找到您想要關聯的資料集,點擊進入。

  • 檢查瀏覽器地址欄的 URL,或在頁面的配置資訊列中找到該資料集的 UUID,即為 Dataset ID。

開發人員指南:在 Agent 中整合知識庫

綁定知識庫後,您可以通過 AgentRun SDK在代碼層面調用知識庫。

知識庫查詢程式碼範例

使用 agentrun.knowledgebase 模組,可以直接檢索知識庫內容。

from agentrun.knowledgebase import KnowledgeBase

## 擷取單知識庫,進行查詢
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)

在 Agent 架構中整合知識庫

您可以將知識庫作為“工具”,注入到 LangChain 或其他 Agent 架構中,使 AI 具備自動查閱文檔的能力。

"""AgentRun 知識庫智能體整合程式碼範例

使用前,請參考https://docs.agent.run/docs/tutorial/quickstart/manual 配置好相應認證資訊和環境變數

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()

自建知識庫的文件管理與召回測試

建立 Tablestore 知識庫或 AnalyticDB PostgreSQL 知識庫後,可以在知識庫詳情頁匯入文件並驗證檢索效果,再決定是否調整檢索參數。在知識庫列表中單擊知識庫名稱進入詳情頁,頁麵包含以下頁簽:

  • 概覽與配置:查看知識庫的基本資料,並修改檢索配置。

  • 文件管理:管理知識庫中的文檔。僅自建知識庫(Tablestore 知識庫、AnalyticDB PostgreSQL 知識庫)展示該頁簽。

  • 召回測試:用真實查詢驗證召回效果。僅自建知識庫展示該頁簽。

  • 整合與案例:查看在 Agent 中整合該知識庫的方式與樣本。

通過召回測試驗證檢索配置是否滿足業務需要:

  1. 在知識庫詳情頁切換到召回測試頁簽。

  2. 輸入查詢文本,單擊開始測試。查詢文本為空白時開始測試不可用。

  3. 查看返回的召回結果與召回效果,判斷當前檢索配置是否命中預期文檔。

  4. 如需調整,在檢索參數中修改 TopK、召回演算法、向量權重等參數後重新測試;確認效果後單擊儲存檢索參數,將參數儲存到該知識庫。

說明

綁定的阿里雲百鍊和 RAGFlow 知識庫由對應平台管理文檔與召回策略,AgentRun 側不提供文件管理和召回測試頁簽。

注意事項

  • 網路連通性:如果您部署的是私人化 RAGFlow,請確保 AgentRun 服務所在的伺服器環境能夠正常訪問 RAGFlow 的 BaseURL。

  • API 金鑰時效:請定期檢查 API-KEY 是否有效。若在RAGFlow中重設了 Key,需同步在 AgentRun 後台進行更新。

  • 語義一致性:建議知識庫所採用的 Embedding 模型與 Agent 實際使用的 LLM 在語義理解能力上保持匹配,以獲得最佳的檢索召回效果。