知识编译(Wiki)

更新时间:
复制 MD 格式

Agent Wiki 把一个 Agent 的来源文件异步整理为相互链接的结构化 Markdown 页面,形成可检索的知识图谱。页面可以按路径列出、读取和搜索,适合保存需要跨会话共享的产品说明、操作手册、项目约定和其他 Agent 级资料。

Wiki 对外提供页面、链接、来源引用和搜索能力,不提供实体三元组或图查询接口。需要图数据库式实体/关系查询时,应使用其他数据模型。

前提条件

已创建记忆库(任意输入类型均可,Wiki 归属记忆库 + 三段 Agent Scope)。

资源边界

每个 Wiki 唯一归属于一个记忆库和三段 Agent Scope:

memoryStoreName + appId / tenantId / agentId
  • Wiki 不使用 runId,同一 Agent 的不同会话共享一个 Wiki。

  • 调用 GetWiki 时服务自动获取或创建该 Scope 对应的 Wiki,不需要 wikiId、构建 ID 或任务 ID。

  • 三个字段均必填、最长 128 字节,不能包含 /,不允许使用通配符 *。

支持的来源文件

类型

扩展名

写入方式

单文件上限

Markdown、文本

.md、.txt

content

100 KiB

PDF

.pdf

contentBase64 + mediaType

2,000,000 字节

Word

.doc、.docx

contentBase64 + mediaType

2,000,000 字节

Excel

.xls、.xlsx

contentBase64 + mediaType

2,000,000 字节

PowerPoint

.ppt、.pptx

contentBase64 + mediaType

2,000,000 字节

图片

.jpg、.jpeg、.png

contentBase64 + mediaType

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/ 下的来源文件异步编译为一组新页面并原子发布。

控制台

  1. 在知识编译 Wiki > 原始文件页,点击新增原始资料或批量上传,把来源文件写入 /.wiki/raw/。

  2. 点击构建 Wiki,服务异步编译页面。

  3. 在知识图谱页查看已发布页面;构建期间旧页面保持可读。

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 表示来源没有变化、无需重新构建。

常见构建状态如下:

状态

说明

pending、processing

构建已接收或正在处理

accepting_output、sealing、validating、indexing、publishing

页面正在生成、校验、建立索引或发布

ready

新页面已原子发布,可以读取和搜索

failed

构建失败,检查 errorMessage 后修正来源并重新发起

conflict

构建期间来源或当前版本发生变化,应重新获取状态并发起新构建

列出页面

按路径顺序分页列出已发布页面元数据。

  • 须先构建并发布后才有页面可列;未构建时返回资源不存在。

  • 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

ListWikiPages 默认/最大 limit

50 / 100

SearchWikiPages 默认/最大 limit

10 / 100

相关文档