知识服务
Cognition 知识服务是 Agent 推理时使用的强类型知识面:页面带一等关系,支持词法检索与混合检索,附带摄入生命周期。这一面与 Runtime 内部的知识 bank 不同,是独立权威自己的知识面。
知识服务拥有什么
| 关注点 | 接口面 |
|---|---|
| 强类型页面生命周期 | 保存 / 列出 / 加载 / 删除 |
| 词法检索 | 关键词与短语搜索 |
| 混合检索 | 词法 + 向量 |
| 一等关系 | 页面之间的强类型关系图 |
| 摄入生命周期 | queued → running → completed/failed |
| 页面元数据 | 服务侧生成 |
页面是强类型的。关系图是一等公民:你可以问"什么连接到这一页",得到的是一份强类型图结果,而不是一张扁平列表。
一等关系
| 属性 | 值 |
|---|---|
| 存储 | 强类型关系图 |
| 基数 | 按关系类型决定 |
| 跨作用域 | 禁止(Cognition 作用域内闭合) |
| 变更 | 通过准入的关系契约 |
| 查询 | "什么连接到 X" 返回强类型图 |
这一点把 Cognition 知识与扁平搜索索引区分开。读者或 Agent 可以沿着关系图走;推理也能跟随"X 派生自 Y"这条线索。
摄入生命周期
| 状态 | 含义 |
|---|---|
queued | 等待摄入 |
running | 摄入进行中 |
completed | 摄入成功 |
failed | 摄入失败,原因已记录 |
被中断的本地任务,重新打开时表现为显式失败。平台不会悄悄丢掉摄入进度;重新打开时这次失败可见。
场景:Agent 用词法搜索
某个 Agent 在回合中需要回忆某个话题的信息。
- 词法搜索:Agent 通过
KnowledgeService.Search发起一次查询。 - 服务返回匹配:命中页面附带服务侧生成的相关性元数据。
- Agent 使用结果:思考层结合检索到的知识组成回应。
Agent 不需要自己扫所有页面,由服务提供强类型搜索面。
场景:Agent 沿关系图导航
Agent 有一份关于"明天面试"的页面。可能相关的页面包括"用户偏好的话题"、"用户的职业目标"、"用户的焦虑触发点"。
- 从锚点页出发:Agent 调用
KnowledgeService.RelatedPages(pageId)。 - 服务返回强类型图:相连的页面与强类型关系类别一同返回。
- Agent 顺图遍历:把相关上下文纳入推理。
- 组成回应:体现 Agent 更广的理解。
一等关系让结构化推理成为可能。扁平搜索索引回答不了"什么连接到这一页"。
场景:摄入流水线半路失败
用户摄入一批大文档,过程中被打断。
- 摄入开始:状态从
queued进入running。 - 进程被杀:外部中断。
- 重新打开:摄入状态被识别为
failed,或running心跳过期后超时为failed。 - 失败可见:用户看到带原因的强类型失败,而不是"看似已完成"。
- 续做或重启:用户可在准入的恢复契约下续做,或重新摄入。
平台让中断显式可见。如果允许默默部分完成,过期状态就会冒充"已完成"。
知识的清理
知识页面与记忆记录一样,可被纳入摘要清理范围。
| 清理来源 | 清理什么 |
|---|---|
| 摘要 | 引用断裂或证据陈旧的页面 |
| 显式删除 | 用户驱动的硬删 |
| 归档 | 可恢复的归档(摘要的第一道处理) |
清理可追溯到引用图的推理过程。一份因引用断裂而被归档的页面,会带着断裂引用作为解释。
Cognition 作用域
知识页面位于 Cognition 作用域内。跨作用域引用被禁止——一个 Agent 作用域内的知识不会泄漏到另一个 Agent。
边界归属
| 关注点 | 归属 |
|---|---|
| 页面存储 | Cognition 知识服务 |
| 关系图 | Cognition(一等) |
| 搜索 | 词法 / 混合检索 |
| 摄入 | 强类型生命周期 |
| 清理 | 摘要 + 显式删除 |
知识服务不做的事
| 关注点 | 不做的原因 |
|---|---|
| 改写 kernel | kernel 是核心真相,advisory 不能压制 |
| 跨作用域引用 | 直接拒绝 |
| 自由格式无类型摄入 | 页面是强类型的 |
| 隐式相关性 | 服务侧元数据是显式的 |