在 AgentCore 中连接百炼知识库
AgentCore 知识库支持连接已有的阿里云百炼知识库,连接完成后 Agent 可以检索知识库中的相关文本切片,并将检索结果作为回答问题的依据。AgentCore 仅访问和使用外部知识库,知识库内容请在百炼控制台管理。
使用限制
当前仅支持百炼华北 2(北京)地域。
一个知识库连接对应一个百炼业务空间中的一个知识库,需要使用多个知识库时请分别创建多个连接。
当前只提供只读检索能力,不创建知识库,不会把文档复制到 AgentCore,也不负责文档的新增、更新、删除、解析或索引构建。
文档解析、切片、Embedding、索引和知识库默认检索行为仍由百炼管理。
AgentCore 不向模型开放 TopK、重排模型和重排阈值等参数,这些参数由百炼侧的知识库配置和服务默认行为决定。
前提条件
开始之前,请确认 AgentCore 中已有可用的目标 Workspace,并完成以下准备工作。
创建并准备百炼知识库
在百炼华北 2(北京)地域创建业务空间和知识库,创建和管理方法见百炼知识库。
向知识库导入文档或结构化数据。
等待文件解析和索引构建完成。
建议先在百炼控制台执行命中测试,确认查询能够召回预期内容。
准备执行角色
AgentCore 使用函数计算(FC)执行角色访问百炼,FC 基于该角色生成临时 STS 凭证,无需填写长期 AccessKey。执行角色默认推荐 AliyunAgentCoreMcpServerDefaultRole,需具备调用百炼知识库检索 API 的权限(例如 AliyunBailianDataFullAccess 或等效的自定义策略),并在百炼平台获得目标业务空间的访问授权,缺少任意一层都会导致检索失败。
快捷创建:页面提示「该执行角色尚未创建」时,单击快捷创建角色,再单击刷新策略;可单击查看已关联策略确认已附加的策略。
自行创建:前往 RAM 创建角色,可信主体类型选云服务、信任主体选函数计算,并附加 AliyunBailianDataFullAccess 或等效策略;也可在下拉列表中选择其他已有角色。
百炼授权:单击说明中的访问授权链接,到百炼平台完成目标业务空间授权,否则检索将失败。
RAM API 权限
为执行角色授予下列任一权限策略,推荐优先采用最小权限的自定义策略:
推荐:包含
sfm:Retrieve的自定义策略。备选:系统策略
AliyunBailianDataFullAccess,使用前请评估其权限范围。AliyunBailianDataReadOnlyAccess不包含 Retrieve API 所需权限,不能用于该知识库连接。最小自定义策略示例如下:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "sfm:Retrieve",
"Resource": "*"
}
]
}Retrieve API 当前不支持资源级授权,因此 Resource 需要填写 *,接口参数与授权范围见调用 Retrieve API 检索知识库和百炼 RAM 权限。
百炼业务空间权限
使用具有业务空间管理权限的账号进入百炼控制台。
进入账号管理或权限管理页面。
将执行角色作为 RAM 角色加入目标业务空间。
至少为该角色授予知识库-操作和应用数据-操作;控制台文案如有调整,请选择对应的知识库和应用数据操作权限。
RAM 权限策略与百炼业务空间权限是两套独立的权限体系,为角色添加
AliyunBailianDataFullAccess后仍需将角色加入目标业务空间,两套体系的授权方式见百炼权限管理。
创建知识库连接
登录 AgentCore 控制台,进入目标 Workspace。
在左侧导航栏选择资产管理 > 知识库。
在知识库连接页面,单击创建知识库连接。
选择百炼知识库,然后单击连接。
填写基本信息和连接配置。
单击安装并部署,等待知识库连接创建完成。
返回知识库连接列表,确认连接状态正常。
第 5 步中各配置项的说明如下:
配置项 | 是否必填 | 说明 |
知识库连接名称 | 是 | AgentCore 中用于识别该连接的名称。建议使用能够体现业务用途的名称。 |
描述 | 否 | 说明知识库内容、适用范围或使用限制,便于后续选择。 |
百炼地域 | 是 | 选择华北 2(北京)。 |
百炼业务空间 | 是 | 选择知识库所属的业务空间,候选项由所选地域决定。 |
百炼知识库 | 是 | 选择需要连接的知识库。一个连接只能选择一个知识库。 |
执行角色 | 是 | 选择具有 |
日志配置 | 否 | 启用后选择日志服务(SLS)Project 和 Logstore,用于采集运行日志和指标。 |
连接配置创建后不能直接修改,需要更换地域、业务空间、知识库或执行角色时,请返回知识库连接页面删除原连接后重新创建。
如果业务空间或知识库下拉列表为空,请参见创建连接时看不到业务空间或知识库排查。
在 Agent 中使用知识库
托管Harness Agent使用知识库
在 Agent 的工具配置中添加已经创建的百炼知识库连接。
保存并重新发布或启动 Agent,使最新配置生效。
与 Agent 对话,调用知识库进行测试,例如:
请先查询产品知识库,再说明产品的安装步骤,并标明依据的文档内容。高代码 Agent使用知识库
当您已经在 AgentCore 上安装好知识库模板后,您可以在 SDK 中连接并调用您的知识库。
在 SDK 中通过 mcp 连接并查询您的百炼知识库:
import asyncio
import os
from agentcore import AsyncAgentCore
KNOWLEDGE_BASE_NAME = os.environ["KNOWLEDGE_BASE_NAME"]
async def main():
async with AsyncAgentCore.auto() as core:
mcp = await core.mcp(KNOWLEDGE_BASE_NAME)
result = await mcp.call_tool(
"search_bailian_knowledgebase",
{"query": "公司的产品如何安装?"},
)
print(result)
asyncio.run(main())检索参数与结果
知识库连接底层通过检索工具 search_bailian_knowledgebase 提供检索能力。最简单的检索只需要一段非空查询文本,还支持按百炼知识库中的文档元数据过滤结果。通常无需在提示词中要求模型生成技术参数,建议在提示词中说明知识库的用途、何时检索,以及回答是否需要引用来源。该工具包含以下参数:
参数 | 类型 | 是否必填 | 说明 |
| string | 是 | 问题或检索文本,必须是非空字符串。 |
|
| 否 | 百炼 SearchFilters,不需要过滤时省略或传 null。 |
元数据过滤
过滤条件使用 search_filters 表达。每个数组元素是一个过滤组,过滤组之间以及同一个过滤组内不同字段之间均使用 AND 关系。
精确匹配示例:
{
"query": "查询平台团队的高级研发人员",
"search_filters": [
{
"department": "平台研发",
"level": 3
}
]
}多值匹配与范围匹配示例:
{
"query": "查询成年研发人员",
"search_filters": [
{
"department": ["研发", "平台"]
},
{
"age": {
"gte": 18,
"lt": 60
}
}
]
}支持的运算符如下:
运算符 | 含义 |
| 等于、不等于 |
| 大于、大于等于 |
| 小于、小于等于 |
| 字符串模糊匹配 |
过滤字段必须是知识库中实际存在且可用于过滤的元数据字段。标签字段 tags 的数组值使用 OR 关系,如需同时满足多个标签,请将标签拆到不同过滤组中;过滤条件的完整语法见使用 SearchFilters 提高知识库召回准确性。
返回结果
检索成功时返回相关文本切片、相关性得分和文档元数据;没有命中时,结果数组可能为空。
{
"data": [
{
"text": "第一步:下载并安装客户端……",
"score": 0.91,
"metadata": {
"source": "product-manual.md",
"category": "安装指南"
}
}
],
"query": "产品的安装步骤是什么"
}字段 | 说明 |
| 检索结果数组。 |
| 文本切片内容。 |
| 百炼返回的相关性得分。 |
| 切片关联的文档元数据,具体字段取决于知识库。 |
| 实际执行的查询文本。 |
检索失败时会返回工具调用错误。百炼服务错误通常包含状态、错误码、错误信息和 RequestId,排查问题时请保留 RequestId。
管理知识库连接
知识库连接的创建、查看和管理都在 AgentCore 的资产管理 > 知识库页面完成。知识库连接底层通过 MCP 提供检索能力,因此同一连接也会出现在资产管理 > 工具管理 > 我的工具中,工具广场中也会展示百炼知识库模板。工具管理入口主要用于以下场景:
查看底层 MCP 详情和检索工具参数。
查看运行状态或日志配置。
面向开发者进行工具调试和二次开发。
通过工具广场安装的知识库模板同样会显示在知识库连接列表中,建议始终从知识库入口创建和管理连接。
常见问题
创建连接时看不到业务空间或知识库
确认已选择华北 2(北京)。
确认当前登录账号有权查看目标业务空间。
确认知识库已经创建完成。
确认知识库与所选业务空间一致。
返回 sfm:Retrieve 无权限
依次检查以下几点:
执行角色是否具有
sfm:Retrieve,或是否已绑定AliyunBailianDataFullAccess。是否误用了不包含 Retrieve 的
AliyunBailianDataReadOnlyAccess。执行角色是否已作为 RAM 角色加入目标百炼业务空间。
业务空间授权是否包含知识库及应用数据的操作权限。
创建连接时选择的业务空间和知识库是否匹配。
检索成功但没有召回内容
先在百炼控制台使用同一查询执行命中测试。
确认文档解析和索引构建已完成。
暂时移除元数据过滤,确认是否因过滤条件过严导致空结果。
检查过滤字段名、字段类型和值是否与知识库元数据一致。
尝试在问题中增加产品名、术语或文档标题等上下文。
Agent 没有使用知识库
确认知识库连接状态正常。
确认该连接已经添加到当前 Agent。
重新保存并发布 Agent,使最新配置生效。
检查提示词中是否已说明知识库用途和需要检索的场景。
安全建议
优先使用只包含
sfm:Retrieve的自定义策略实现最小权限;使用系统策略前,请评估AliyunBailianDataFullAccess的权限范围。使用执行角色和临时 STS 凭证,不要配置长期 AccessKey。
不要将底层 FC 公网地址提供给外部调用方。
建议启用日志并设置合理的保留期限,但不要记录凭证明文或敏感知识内容。
相关文档
百炼知识库:在百炼控制台创建知识库、导入文档并执行命中测试。
调用 Retrieve API 检索知识库:Retrieve API 的请求参数、返回结构和授权限制。
百炼 RAM 权限:百炼支持的 RAM 系统策略与自定义策略授权方式。
百炼权限管理:业务空间成员权限与 RAM 角色的授权管理。
使用 SearchFilters 提高知识库召回准确性:
search_filters的完整语法与过滤示例。