ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenClaw Ontology 技能学习笔记:从 config.toml 骨架到知识图谱落地

OpenClaw Ontology 技能学习笔记:从 config.toml 骨架到知识图谱落地 1. 为什么 Agent 需要 Ontology 技能从“聊完就忘”到本地知识图谱OpenClaw 的 Ontology 技能本质上是给 Agent 装一套本地结构化记忆系统。它要解决的核心问题很具体普通对话式 Agent 在会话结束后就丢失上下文跨会话记不住人物、项目、任务之间的关系信息以自然语言散落在历史记录里无法做实体关联推理你问“上次那个负责登录模块的人现在手上还有什么任务”它只能靠模糊检索猜答不准。Ontology 技能的做法是把这些信息抽成实体和关系落到本地文件里。它适合三类开发者一是想让 Agent 长期记住项目成员、任务归属、事件安排的团队协作场景二是需要基于历史信息做关联问答的客服或知识助手三是想研究 Agent 记忆机制、自己动手改 schema 的开发者。整个技能没有后台常驻进程走的是“指令触发 → 规则校验 → 文件读写 → 结果返回”的按需调用链路对资源占用很友好。它的触发机制依赖MEMORY.md里的规则描述Agent 匹配到关键词后自动调用规则约束来自memory/ontology/schema.yaml限定哪些实体、属性、关系可以被记录数据则写入memory/ontology/graph.jsonl。这三个文件构成技能的最小闭环路径错一个技能就静默失效。下面从配置骨架开始一步步把它跑通。2. TaoToken 前置统一 Key 与 API 通道在配置 OpenClaw 之前先把模型调用通道准备好。TaoToken 提供统一的 Key 和 API 入口OpenClaw 里所有需要调用大模型的地方都走这个通道省去在多个供应商之间切换配置的麻烦。你需要先拿到一个 API Key。登录官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 进入控制台后创建密钥。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 密钥管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。创建后复制那串以sk-开头的 Key后面写进 OpenClaw 的配置里。API 的基础地址是 https://taotoken.net/api 注意这个地址不带任何查询参数直接作为 base_url 使用。如果你用的是兼容 OpenAI 接口的客户端把 base_url 指向它、把 Key 填进去即可。想先验证 Key 是否可用可以打开模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 发一条消息能正常返回就说明通道没问题。对于长期跑编码任务或 Agent 工作流的场景可以了解 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 它在调用额度和稳定性上更适合持续性的自动化任务。接入细节和参数说明统一看文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有各语言 SDK 的示例。3. 可复制配置config.toml 骨架与技能文件OpenClaw 的主配置是config.toml模型通道和技能开关都在这里声明。先确认工作区路径默认是~/.openclaw/workspace如果你改过后面所有相对路径都要跟着调整。3.1 config.toml 模型通道骨架在 OpenClaw 配置目录下编辑config.toml加入模型 provider 段落。下面这段可以直接复制把sk-你的密钥替换成上一步拿到的 Key[provider.taotoken] type openai-compatible base_url https://taotoken.net/api api_key sk-你的密钥 default_model gpt-4o-mini [agent] workspace ~/.openclaw/workspace memory_file MEMORY.md [skills.ontology] enabled true schema_path memory/ontology/schema.yaml graph_path memory/ontology/graph.jsonltype用openai-compatible是因为 TaoToken 的接口兼容 OpenAI 规范大多数客户端不用改代码。default_model按你实际可用的模型名填不确定就先在模型对话页面确认。[skills.ontology]段落把技能打开并显式指定 schema 和 graph 的路径避免 Agent 去猜。3.2 创建技能目录与 schema.yaml进入工作区建目录、建空数据文件、写 schemacd ~/.openclaw/workspace mkdir -p memory/ontology touch memory/ontology/graph.jsonl然后生成schema.yaml。这个文件定义可记录的实体类型、必填/可选属性以及实体间关系是技能唯一认可的规则文件types: person: required: [name] optional: [role, contact] project: required: [name] optional: [status, deadline, owner] task: required: [title, status] optional: [assignee, deadline, project] event: required: [title, date] optional: [location, participants] document: required: [title] optional: [author, tags] relations: belongs_to: [task, project] created_by: [task, person] related_to: [*] deadline_for: [task, event]required里的字段缺失时这条实体不会被写入这是防止脏数据的第一道闸。relations定义关系两端允许的实体类型related_to用*表示任意类型之间都能建这条关系。3.3 MEMORY.md 触发规则MEMORY.md告诉 Agent 什么时候自动调用技能。没有规则就只能手动触发touch MEMORY.md cat MEMORY.md EOF ## Ontology 自动调用规则 当用户提及人物、项目、任务、事件、文档相关内容时自动调用 Ontology 技能记录实体信息及关联关系 查询相关信息时优先从 Ontology 知识图谱中检索数据保证回答精准连贯。 EOF规则写完后重启网关配置才会加载openclaw gateway restart4. 验证请求技能加载与图谱查询是否生效配置完不能只看文件在不在要实际验证技能被加载、图谱能写入和查询。4.1 确认文件结构ls -l memory/ontology/正常应看到schema.yaml和graph.jsonl两个文件。如果graph.jsonl不存在技能写入时会报错所以这一步别跳过。4.2 手动触发技能在 OpenClaw 对话里输入/skill ontology如果技能已加载会返回技能已激活或类似的确认信息。没有反应说明config.toml里enabled没生效或者网关没重启。4.3 写入一条实体并查询用自然语言让 Agent 记录一条信息比如帮我记一下张三是后端负责人正在做支付重构项目这个项目 6 月底截止。触发规则命中后Agent 会调用 Ontology 技能把person:张三、project:支付重构、以及belongs_to、deadline_for等关系写入graph.jsonl。写入后查看文件cat memory/ontology/graph.jsonl每行应是一条 JSON 记录包含实体类型、属性和关系。如果文件为空说明触发规则没匹配上检查MEMORY.md里的关键词描述是否覆盖了“记一下”这类表达。再问一句关联查询支付重构项目是谁负责的截止时间是什么时候Agent 应优先从图谱检索返回“张三负责6 月底截止”。如果它答不上来或答得含糊说明查询路径没走图谱回到MEMORY.md确认“查询相关信息时优先从图谱检索”这条规则是否被读取。4.4 用 API 直接验证通道想单独确认 TaoToken 通道是否正常可以用 curl 发一条最小请求curl https://taotoken.net/api/chat/completions \ -H Authorization: Bearer sk-你的密钥 \ -H Content-Type: application/json \ -d { model: gpt-4o-mini, messages: [{role: user, content: ping}] }返回带choices的 JSON 就说明 Key 和 base_url 都对。这一步和 Ontology 技能无关但能帮你把“模型通道问题”和“技能配置问题”分开定位。5. 本篇常见错排查技能不触发graph.jsonl一直是空的。先看MEMORY.md是否在config.toml指定的memory_file路径下再看规则描述里的关键词是否覆盖了你的说法。规则写得太窄比如只写了“记录人物”你说“记一下项目”就不会命中。写入报 schema 校验失败。检查实体是否缺少required字段。比如task必须有title和status只给标题不给状态会被拒。另外relations里定义的关系两端类型要对得上belongs_to只允许task和project拿person去连就会失败。路径错误导致技能静默失效。schema_path和graph_path是相对工作区解析的如果你在config.toml里写了绝对路径但工作区被移动过就会读不到。统一用相对路径并确认cd ~/.openclaw/workspace后memory/ontology/真实存在。改了配置不生效。任何对config.toml、schema.yaml、MEMORY.md的修改都要openclaw gateway restart之后才加载。只改文件不重启Agent 用的还是旧规则。模型调用报 401 或超时。这属于通道问题不是技能问题。确认 Key 没有多余空格base_url是https://taotoken.net/api而不是带路径的地址。如果持续超时去接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 核对当前推荐的模型名和参数。图谱越写越乱查询命中率下降。这是 schema 设计问题。实体类型别贪多先把person、project、task三类跑顺关系只保留真正会查的几条。related_to用*虽然灵活但会让图谱变得稀疏查询时反而不好收敛。6. 把通道和技能串起来下一步怎么走Ontology 技能跑通后你的 Agent 就有了本地结构化记忆的底座。接下来可以做的几件事把schema.yaml按自己的业务扩展实体类型比如加customer、ticket在MEMORY.md里补更细的触发规则区分“记录”和“查询”两类意图定期备份graph.jsonl它是纯本地文件丢了就没了。通道侧如果你要长期跑编码或 Agent 自动化任务建议把 Key 和额度规划放到 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里统一管理避免频繁换 Key 打断工作流。需要新建或轮换密钥时直接去 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 操作。所有接口参数和 SDK 用法以接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 为准遇到报错先对照文档里的错误码说明再回来查技能配置。最后提醒一句graph.jsonl是逐行追加的写入频繁后文件会变大查询变慢时可以按时间切分归档但别直接删行容易破坏关系引用。先把最小闭环跑稳再谈扩展。
返回列表