Agent Wiki 把一个 Agent 的来源文件异步整理为相互链接的结构化 Markdown 页面,形成可检索的知识图谱。页面可以按路径列出、读取和搜索,适合保存需要跨会话共享的产品说明、操作手册、项目约定和其他 Agent 级资料。
Wiki 对外提供页面、链接、来源引用和搜索能力,不提供实体三元组或图查询接口。需要图数据库式实体/关系查询时,应使用其他数据模型。
前提条件
已创建记忆库(任意输入类型均可,Wiki 归属记忆库 + 三段 Agent Scope)。
资源边界
每个 Wiki 唯一归属于一个记忆库和三段 Agent Scope:
memoryStoreName + appId / tenantId / agentIdWiki 不使用
runId,同一 Agent 的不同会话共享一个 Wiki。调用
GetWiki时服务自动获取或创建该 Scope 对应的 Wiki,不需要wikiId、构建 ID 或任务 ID。三个字段均必填、最长 128 字节,不能包含
/,不允许使用通配符*。
支持的来源文件
类型 | 扩展名 | 写入方式 | 单文件上限 |
Markdown、文本 |
|
| 100 KiB |
|
| 2,000,000 字节 | |
Word |
|
| 2,000,000 字节 |
Excel |
|
| 2,000,000 字节 |
PowerPoint |
|
| 2,000,000 字节 |
图片 |
|
| 2,000,000 字节 |
二进制文件使用标准 Base64;扩展名、mediaType 和文件签名必须一致。
查询 Wiki
获取或创建当前 Agent Scope 的 Wiki,并查看最新构建状态。首次调用会自动创建 Wiki。
控制台
打开记忆库,进入知识编译 Wiki > 原始文件(或知识图谱),设置应用、租户和智能体后查看 Wiki 状态与页面数。
SDK
当前 Agent Storage SDK 尚未封装 Wiki 高层方法,使用底层 ots_client.request(Action, body) 调用。
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
wiki = client.ots_client.request("GetWiki", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
})
print(f"状态: {wiki.get('status')}, 页面数: {wiki.get('pageCount')}, 待构建: {wiki.get('hasPendingChanges')}")API
调用 GetWiki 查询 Wiki。完整字段参见查询 Wiki。
构建 Wiki
把 /.wiki/raw/ 下的来源文件异步编译为一组新页面并原子发布。
控制台
在知识编译 Wiki > 原始文件页,点击新增原始资料或批量上传,把来源文件写入
/.wiki/raw/。点击构建 Wiki,服务异步编译页面。
在知识图谱页查看已发布页面;构建期间旧页面保持可读。
SDK
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
# 1. 写入来源文件(AddItem 见「文件记忆」文档)
client.add_item({
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"path": "/.wiki/raw/product/payment.md",
"content": "# 支付说明\n\n支付回调必须校验幂等键。",
})
# 2. 发起构建
resp = client.ots_client.request("IngestWiki", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"clientToken": "wiki-build-001",
})
print(resp)API
调用 IngestWiki 构建 Wiki。完整字段参见构建 Wiki。
IngestWiki 是异步操作。相同 clientToken 可用于安全重试;响应中的 reused 表示复用了同一构建,skipped 表示来源没有变化、无需重新构建。
常见构建状态如下:
状态 | 说明 |
| 构建已接收或正在处理 |
| 页面正在生成、校验、建立索引或发布 |
| 新页面已原子发布,可以读取和搜索 |
| 构建失败,检查 |
| 构建期间来源或当前版本发生变化,应重新获取状态并发起新构建 |
列出页面
按路径顺序分页列出已发布页面元数据。
须先构建并发布后才有页面可列;未构建时返回资源不存在。
limit默认 50、最大 100;nextToken不要解析或修改,翻页期间页面锁定到同一发布版本。
控制台
在知识图谱页查看已发布页面列表(路径、标题、摘要)。
SDK
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
resp = client.ots_client.request("ListWikiPages", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"limit": 50,
})
for p in resp.get("pages", []):
print(p.get("path"), p.get("title"))API
调用 ListWikiPages 列出页面。完整字段参见列出 Wiki 页面。
读取页面
按路径读取一个已发布页面的完整正文。
控制台
在知识图谱页点击目标页面,查看完整正文、来源引用和出入链接。
SDK
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
resp = client.ots_client.request("GetWikiPage", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"path": "/wiki/payment-callback.md",
})
print(resp.get("content"))API
调用 GetWikiPage 读取页面。完整字段参见读取 Wiki 页面。
搜索页面
用自然语言在已发布页面中语义搜索,返回命中页面的路径、标题、摘要和得分。
控制台
在知识检索页输入关键词,按标题、摘要和正文检索已构建页面。
SDK
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
resp = client.ots_client.request("SearchWikiPages", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"query": "支付回调如何保证幂等",
"limit": 5,
})
for p in resp.get("pages", []):
print(f"[{p.get('score')}] {p.get('path')} - {p.get('title')}")API
调用 SearchWikiPages 搜索页面。完整字段参见搜索 Wiki 页面。
更新 Wiki
更新 Wiki 的显示名称或摘要。
控制台
在 Wiki 页面点击设置,修改名称或摘要。
SDK
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
client.ots_client.request("UpdateWiki", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"name": "支付与对账 Wiki",
"summary": "包含支付回调、对账和幂等约定",
})API
调用 UpdateWiki 更新 Wiki。完整字段参见更新 Wiki。
构建质量与限制
GetWiki.latestBuild.quality 提供来源覆盖率、页面引用情况和链接质量等指标,用于判断页面是否需要人工抽查;构建成功不代表每个来源都被完整表达,也不代表所有事实都经过业务验证。
项目 | 限制 |
单个 Wiki 来源数 | 2000 |
单次构建唯一二进制来源数 | 50 |
单次构建来源总量 | 20 MiB |
单次构建页面数 | 500 |
单个页面正文 | 100 KiB |
单次构建页面总量 | 20 MiB |
| 50 / 100 |
| 10 / 100 |