运行时依赖
安装命令
点击复制技能文档
Datris 内存层 Datris 是长期语义内存层。 本地内存文件是真实来源。 Datris 从它们重建 —— 永远不会相反。
前置条件 本技能假设安装了本地 Datris: Datris 平台(包括 MCP 服务器)—— 基于 Docker,参见 docs.datris.ai/installation。 MCP 服务器默认在 http://localhost:3000/sse 运行;可以使用 MCP_SERVER_URL 覆盖。 Datris CLI —— 通过 brew tap datris/tap && brew install datris 安装。 参见 docs.datris.ai/cli 获取命令参考。 在依赖本技能之前,请确认两者都正常工作: datris health 每次都 ping 每个后端服务,内存管道需要这些服务。
规则 优先使用 Datris MCP 工具进行内存操作,而不是 CLI。 CLI 只是用于以下“何时使用 CLI”部分列出的情况下的备用方案。 一个文件对应一个 upload_data 调用。 永远不要连接、捆绑或合并多个内存文件到单个语料上传。 每个文件的名称是其来源 —— 它必须能够干净地回路到 Datris 并在检索结果中返回。 捆绑看起来像优化,但实际上并不是:它永久破坏了来源,阻止了每个文件的增量同步,并使重置更加困难。 将每个文件上传,即使不需要。 让 Datris 服务器端分块。 不要预分块。 不要为本地文件使用文档 tap。 唯一需要分割单个文件的情况是当该文件真正超过上传限制时; 在这种情况下,使用显式来源标记在分块文件名中分割它(例如,MEMORY.md.part1,MEMORY.md.part2)。 并行上传文件。 每个 upload_data 调用立即返回一个 job 令牌 —— 先发起所有上传,然后轮询。 不要等待一个 job 完成后再开始下一个。 轮询 job 状态直到完成,然后再声明任何摄取成功。 轮询用于验证,而不是用于阻塞后续上传。 在每次摄取运行后使用语义搜索验证检索。 内存管道必须针对向量目标(pgvector、Qdrant、Weaviate、Milvus 或 Chroma)。 嵌入模型在管道创建时固定。 向量维度不能在事后更改。 在摄取之前,请确认嵌入模型与管道匹配。 切换嵌入模型意味着删除和重新创建目标集合。 默认情况下,将每个创建的资源放入 openclaw 数据目录中。 管道、tap、密钥、目标集合 —— 代理在 Datris 中代表 OpenClaw 创建的所有内容都应放入名为 openclaw 的目录中, 除非用户明确指示其他方式。 这将 OpenClaw 的足迹与同一实例上的其他 Datris 工作负载清晰地分开, 使清理和审计变得微不足道,并允许多个 OpenClaw 用户在不冲突的情况下共享实例。 如果代理要重用的现有资源位于不同的目录中,请不要默默地迁移它 —— 将不匹配的情况显示给用户并询问是否继续。
何时使用 CLI MCP 工具是默认的。 在以下特定情况下使用 datris CLI: 引导或故障排除期间的运行状况检查。 datris health 确认每个后端服务都已启动。 使用它作为更彻底的交叉检查,当 MCP check_service_health 返回模糊结果时, 或者当诊断卡住的摄取时。 MCP 服务器不可用。 如果 MCP 连接已关闭,datris ingest --dest pgvector 和 datris search "" --store pgvector --collection 是摄取和检索的等效回退。 仅使用它们来保持用户不受阻塞; 一旦服务器可达,立即恢复基于 MCP 的操作。 管道状态时 MCP 轮询停滞。 datris status 是一种干净的方式来读取最新的 job 状态,如果 MCP get_job_status 循环丢失了跟踪哪个令牌。 用户自己运行的点检查。 当用户想通过手动验证摄取时,请将他们引导到 datris search 对目标集合进行搜索, 而不是指导他们完成 MCP 工具调用。 在 audit 日志(memory/.md)中记录每个 CLI 调用, 与 MCP 调用相同 —— 同样的来源纪律适用。
首次引导 阅读 Datris MCP 资源和工具描述。 在采取行动之前,了解管道、上传、job 状态和搜索工作流程。 通过 MCP check_service_health 工具检查服务运行状况。 如果它返回模糊或部分结果,请回退到 datris health 以获取更详细的每个服务视图。 在 openclaw 目录中重用现有的向量管道用于内存,如果存在。 否则,在 openclaw 目录中创建一个 —— pgvector 很好。 如果内存管道存在于 openclaw 目录之外,请在重用或迁移之前将其显示给用户。 通过每个 upload_data 调用摄取 MEMORY.md 和每个 memory/*.md 文件 —— 每个文件一个上传, 没有例外。 不要将它们连接到单个语料文档中,即使总集很小。 并行发起上传并在轮询之前收集所有 job 令牌。 并发轮询所有 job 直到每个 job 都报告完成。 使用语义搜索在每次摄取运行后进行验证。