ARTICLE DETAIL

资讯详情

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

我要fork openclaw了:AI自己写skill的配置骨架与验证动作

我要fork openclaw了:AI自己写skill的配置骨架与验证动作 1. 为什么我要 fork openclaw让 AI 自己写 skillopenclaw 这类 CUA Agent 最吸引我的地方不是它能点浏览器而是它能把「高层目标」拆成可执行动作。但真跑起来你会发现一个问题如果每次任务都靠一段超长 prompt 描述流程thinking 内容会爆炸token 消耗高而且步骤一多模型就开始飘。我之前的做法是把流程写死成包装好的程序结果 Agent 变成了 RPA失去了自主性。后来我换了个思路把「怎么做」沉淀成 skill让 AI 自己读、自己改、自己组合。你只需要给它几个基础方法读文件、写文件、列目录、执行命令它就能在 skill 目录里生成新的 skill 文件下次遇到同类任务直接复用。这相当于给 Agent 装了一个可自我扩展的工具箱。这篇面向的是已经 fork 了 openclaw、想跑通「AI 自写 skill」闭环的人。我会给出可复制的config.toml与settings.json骨架、TaoToken 统一 Key/API 通道的接入方式以及 skill 生成后的验证动作清单。整套配置在本地实测能跑通你照着改路径就能用。2. TaoToken 前置统一 Key 与 API 通道openclaw 的 skill 生成依赖模型调用而模型调用需要稳定的 API 通道。我试过把不同厂商的 Key 散落在各个 skill 里维护起来很痛苦。TaoToken 的价值在于它提供统一的 Key 和 API 入口openclaw 的 config 里只写一份 base_url 和 api_key所有 skill 共用。官网入口在这里https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后在控制台创建 Key。API 基地址是https://taotoken.net/api注意这个地址不带 UTM 参数直接写进配置即可。你需要提前准备三样东西一个 TaoToken API Key、openclaw 的 fork 仓库、以及本地能跑 Python 的环境。Key 的创建入口在控制台的 API Keys 页面https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你还没决定用哪个模型可以先去模型对话页面试一下https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。注意Key 只写在本地配置文件或环境变量里不要提交到 git。openclaw 的 skill 目录建议加进.gitignore。3. 可复制配置config.toml 与 settings.json 骨架openclaw fork 之后配置分两层config.toml管模型通道和全局参数settings.json管 skill 的读写权限和生成策略。下面是我实测的骨架路径按你的实际目录改。3.1 config.toml 模型通道配置# config.toml [llm] provider openai_compatible base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} model claude-sonnet-4-20250514 max_tokens 8192 temperature 0.3 [agent] name openclaw-cua workspace ./workspace skill_dir ./workspace/skills auto_load_skills true [skill] enable_self_write true write_scope ./workspace/skills require_confirm false max_skill_size_kb 64关键点说明base_url指向 TaoToken 的 API 地址api_key用环境变量注入避免硬编码。enable_self_write打开后Agent 才有权限往 skill 目录写文件。write_scope限制写入范围防止它乱写系统目录。3.2 settings.json skill 生成策略{ skill: { generation: { enabled: true, trigger: on_task_complete, template: default, naming: snake_case, overwrite: false }, validation: { syntax_check: true, dry_run: true, max_retry: 2 }, tools: [ read_file, write_file, list_dir, run_python, http_request ] }, logging: { level: info, skill_trace: true } }trigger设为on_task_complete意思是任务完成后 Agent 判断这次流程是否值得沉淀成 skill。tools列表就是开放给 AI 的基础方法它靠这几个方法自己组合出新的 skill。dry_run打开后新生成的 skill 会先空跑一遍再落盘。3.3 环境变量注入export TAOTOKEN_API_KEYsk-你的key export OPENCLAW_CONFIG./config.toml如果你用 Coding Plan 做长期编码任务可以把模型换成更适合代码的通道入口在https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。4. 验证请求跑通 AI 自写 skill 的闭环配置写完接下来验证整条链路。分三步先确认模型通道通再确认 skill 目录可写最后让 Agent 真的生成一个 skill。4.1 验证模型通道curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-20250514, messages: [{role: user, content: 回复 ok}], max_tokens: 16 }返回里能看到choices[0].message.content就说明通道正常。如果返回 401检查 Key 是否带上了Bearer前缀。4.2 验证 skill 目录权限mkdir -p ./workspace/skills touch ./workspace/skills/.keep python -c import os; print(os.access(./workspace/skills, os.W_OK))输出True表示可写。openclaw 启动时会扫描这个目录把已有 skill 加载进上下文。4.3 触发 AI 自写 skill启动 openclaw 后给它一个带明确步骤的任务比如「读取 data.csv统计每列空值数量把结果写成 report.md」。任务完成后观察./workspace/skills下是否多出一个.py或.md文件。我实测下来第一次生成通常会带一个analyze_csv_nulls.py里面是它自己组合read_file和run_python写出来的。验证动作清单检查项命令预期结果skill 文件生成ls ./workspace/skills出现新文件语法正确python -m py_compile ./workspace/skills/*.py无报错可被加载重启 openclaw 看日志日志出现loaded skill: xxx可复用再发同类任务Agent 直接调用而非重新生成4.4 让 skill 可复用新 skill 落盘后重启 openclawauto_load_skills会自动加载。再发一个同类任务观察日志里是否出现using skill: analyze_csv_nulls。如果出现了说明闭环跑通AI 写了一次 skill后面直接复用thinking 内容明显变少。5. 本篇常见错排查跑这套配置时我踩过几个坑列出来帮你省时间。报错一PermissionError: write_scope denied原因是write_scope路径和实际 skill 目录不一致。检查config.toml里的skill_dir和settings.json里的write_scope是否指向同一个绝对路径。相对路径在不同启动目录下会解析成不同结果建议统一用绝对路径。报错二skill not loaded after restart新生成的 skill 文件名不符合加载规则。openclaw 默认只加载snake_case命名的.py文件如果 AI 生成了AnalyzeCSV.py会被跳过。在settings.json里把naming设为snake_case并打开syntax_check让它在落盘前就纠正。报错三max_skill_size_kb exceededAI 把整个流程写得太长超过 64KB。这时候不要直接调大限制而是把trigger改成on_task_complete并加一个max_steps约束让它只沉淀核心步骤。skill 太大反而难维护。报错四模型返回 429并发太高或额度用尽。TaoToken 控制台能看到用量去 API Keys 页面确认额度https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果是长期高频编码任务考虑切到 Coding Plan。报错五skill 生成了但 dry_run 失败说明 AI 写的代码有逻辑错误。把max_retry设为 2让它自己修。如果两次都失败检查tools列表里是否缺了它需要的方法比如它想调http_request但你没开放。6. 接入文档与后续动作整套配置的核心就三件事TaoToken 提供统一通道、config 控制模型和 skill 目录、settings 控制生成策略。跑通之后你可以把更多基础方法加进tools列表让 AI 组合出更复杂的 skill。接入细节和参数说明看官方文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你主要做长期编码或 Agent 任务Coding Plan 的通道更适合https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。ClaudeCode 相关的接入方式在https://taotoken.net/claudecode?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后留一个实用技巧每次 AI 生成新 skill 后别急着让它自动覆盖旧文件。把overwrite保持false新 skill 会带时间戳后缀你手动对比后再决定合并。这样既能积累又不会把之前调好的流程冲掉。
返回列表