尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

OpenClaw 技能辅助编程实战教程:用 Agent 自动写代码的配置与验证

OpenClaw 技能辅助编程实战教程:用 Agent 自动写代码的配置与验证 1. 为什么我决定把 OpenClaw 接进日常开发流OpenClaw 是一个支持技能Skills扩展的 Agent 运行框架核心能力是让大模型不只是聊代码而是通过 read、write、edit、exec 这类工具真正落到项目文件里干活。它适合谁适合那些已经厌倦了复制 AI 生成的代码 → 手动粘贴 → 手动装依赖 → 手动跑命令这套循环的开发者尤其是需要快速搭原型、批量改老项目、或者想让 Agent 接管重复性开发步骤的人。我之前的痛点很具体每次让模型写个 Express 接口它给我一段代码我还得自己建文件、自己 npm install、自己起服务中间任何一步路径写错就得来回问。OpenClaw 的技能机制把这一串动作串起来了——Agent 判断需要写文件就调 write需要装依赖就调 exec需要看现有结构就调 read。你要做的只是把技能配置好、把模型 API 接上、把 workspace 指对。这篇教程聚焦落地配置不空谈概念。我会给出可复制的技能配置骨架、settings.json 示例然后完整跑一遍让 Agent 自动创建一个 Node.js API 服务的验证流程。模型 API 这块我用 TaoToken 来对接因为它兼容 Anthropic 风格的接口配置起来比较直接。下面从环境准备开始。2. TaoToken 前置把模型 API 接进 OpenClawOpenClaw 本身是 Agent 框架它需要一个能调用的模型后端。TaoToken 提供兼容 Anthropic 接口的 API 服务正好可以接进来。你需要先拿到 API Key然后配置到 OpenClaw 的模型设置里。2.1 获取 API Key访问 TaoToken 控制台的 API Keys 页面创建一个密钥https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite创建后复制那串 key形如sk-xxxxxxxx。注意这个 key 只在创建时完整显示一次丢了就得重新生成。2.2 确认 API 端点TaoToken 的 API 基础地址是https://taotoken.net/api这个地址不加任何 UTM 参数直接作为 base_url 使用。OpenClaw 在配置模型时需要填的就是这个。2.3 在 OpenClaw 中配置模型OpenClaw 的模型配置通常在settings.json里。找到模型相关的字段填入 TaoToken 的端点和你的 key。具体字段名可能因版本略有差异但核心是三项base_url、api_key、model。{ model: { provider: anthropic, base_url: https://taotoken.net/api, api_key: sk-你的密钥, model_name: claude-sonnet-4-20250514 } }注意api_key 不要提交到 git。建议用环境变量注入或者在 settings.json 里引用${TAOTOKEN_API_KEY}这种占位符具体语法看你的 OpenClaw 版本支持哪种。配置完成后OpenClaw 启动时就会用这个模型来处理 Agent 的推理请求。如果模型连不上后面所有技能都不会触发所以这一步必须先验证通过。3. 可复制配置技能骨架与 settings.jsonOpenClaw 的技能本质是一套能力封装告诉 Agent 在什么场景下可以调用哪些工具。一个完整的技能包含三部分SKILL.md技能说明、调用规则触发条件、可执行工具read/write/edit/exec 等。3.1 技能目录结构在 OpenClaw 的 skills 目录下每个技能一个文件夹。我建议这样组织skills/ code-writer/ SKILL.md config.json3.2 SKILL.md 骨架SKILL.md 是给 Agent 看的说明书用自然语言描述这个技能能干什么、什么时候用。下面是一个可复制的骨架# Code Writer Skill ## 描述 当用户需要在 workspace 中创建、修改或删除代码文件时使用本技能。 ## 触发条件 - 用户要求创建新项目或新文件 - 用户要求修改现有代码 - 用户要求批量替换代码内容 - 用户要求运行开发命令npm、pip、git 等 ## 可用工具 - read读取文件内容 - write创建或覆盖文件 - edit修改文件中的指定片段 - exec执行 shell 命令 ## 使用约束 - 所有文件操作限制在 workspace 目录内 - 执行命令前先确认工作目录 - 修改现有文件前先 read 确认内容3.3 config.json 示例config.json 定义工具的具体参数和权限边界{ name: code-writer, enabled: true, tools: { read: { allowed: true, max_file_size: 1048576 }, write: { allowed: true, restrict_to_workspace: true }, edit: { allowed: true, restrict_to_workspace: true }, exec: { allowed: true, allowed_commands: [npm, pip, git, node, python], timeout: 120 } } }3.4 settings.json 完整示例把模型配置和技能配置合在一起settings.json 大概长这样{ workspace: /Users/yourname/projects/openclaw-demo, model: { provider: anthropic, base_url: https://taotoken.net/api, api_key: sk-你的密钥, model_name: claude-sonnet-4-20250514 }, skills: { directory: ./skills, enabled: [code-writer] }, tools: { exec: { shell: /bin/bash, default_timeout: 120 } } }提示workspace 路径一定要写绝对路径相对路径在不同启动方式下容易出问题。我踩过一次坑用./workspace结果 Agent 把文件写到了 OpenClaw 安装目录里。配置好之后重启 OpenClaw让它加载新的 settings.json 和技能。4. 验证请求让 Agent 自动写一个 Node.js API配置完不代表能跑通得实际发一个任务验证。我选的任务是让 Agent 在当前 workspace 创建一个 Node.js API 服务使用 Express提供一个/hello接口。这个任务覆盖了 write创建文件、exec装依赖、起服务两类工具能验证整条链路。4.1 发起任务在 OpenClaw 的对话界面里直接输入需求在当前 workspace 创建一个 Node.js API 服务使用 Express并提供一个 /hello 接口返回 JSON { message: hello }。4.2 观察 Agent 执行流程正常情况下Agent 会按这个顺序动作第一步创建package.json。Agent 调用 write 工具写入{ name: openclaw-demo, version: 1.0.0, main: index.js, scripts: { start: node index.js }, dependencies: { express: ^4.18.0 } }第二步写入index.jsconst express require(express); const app express(); const port 3000; app.get(/hello, (req, res) { res.json({ message: hello }); }); app.listen(port, () { console.log(Server running on http://localhost:${port}); });第三步调用 exec 执行npm install。这一步会拉取 express 依赖输出安装日志。第四步调用 exec 执行npm start或node index.js启动服务。4.3 验证结果服务起来后另开一个终端验证curl http://localhost:3000/hello预期返回{message:hello}如果返回了这个 JSON说明整条链路跑通了模型通过 TaoToken 推理 → Agent 判断需要 code-writer 技能 → 调用 write 创建文件 → 调用 exec 装依赖并启动 → 接口正常响应。4.4 再试一个修改任务为了验证 edit 工具可以接着让 Agent 改代码帮我把 /hello 接口的返回改成 { message: hello, timestamp: 当前时间 }。Agent 会先 readindex.js然后用 edit 修改对应片段最后你可能需要手动重启服务或者让 Agent 再跑一次启动命令。这一步能验证 Agent 是否真的理解了现有代码结构而不是盲目覆盖。5. 本篇常见错排查跑不通的时候问题通常集中在几个地方。下面是我实际遇到过的和社区里反馈比较多的。5.1 Agent 不调用技能只回复文字现象你让它写代码它给你一段代码块但没有实际创建文件。原因通常是技能没加载或者 SKILL.md 的触发条件写得不够明确。排查步骤检查 settings.json 里skills.enabled是否包含code-writer检查 skills 目录路径是否正确看 OpenClaw 启动日志里有没有加载技能的记录。如果技能加载了但还是不触发把 SKILL.md 的触发条件写得更具体比如加上当用户提到创建文件、写入代码、修改项目时这类明确指令。5.2 exec 执行失败现象Agent 尝试运行npm install但报错。可能原因有几个exec 工具的allowed_commands里没加npm运行环境里没装 Node.js工作目录不对导致找不到 package.json。排查时先手动在 workspace 目录下跑一遍npm install确认环境本身没问题。然后检查 config.json 里 exec 的 allowed_commands 列表。最后确认 Agent 执行命令时的工作目录是不是 workspace。5.3 模型 API 连不上现象Agent 完全不响应或者报模型调用错误。先确认 TaoToken 的 base_url 写的是https://taotoken.net/api没有多余斜杠或路径。再确认 api_key 有效且没有过期。可以用 curl 直接测一下模型接口curl https://taotoken.net/api/v1/messages \ -H x-api-key: sk-你的密钥 \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d {model:claude-sonnet-4-20250514,max_tokens:100,messages:[{role:user,content:hi}]}如果这个能返回内容说明 API 侧没问题问题在 OpenClaw 配置。如果这个也报错那就是 key 或端点的问题。5.4 修改范围过大现象你只想让它改一个文件结果它把整个项目都重写了。这是权限边界没设好。在 config.json 里给 write 和 edit 加上restrict_to_workspace: true并且可以在 SKILL.md 里明确写只修改用户指定的文件不要动其他文件。另外任务描述里把文件路径写清楚比如只修改 src/routes/hello.js比改一下 hello 接口要安全得多。5.5 文件写入路径错误现象Agent 说写好了但你在 workspace 里找不到文件。大概率是 workspace 路径配置问题。检查 settings.json 里的workspace字段是不是绝对路径以及 Agent 执行 write 时用的路径是相对还是绝对。我建议在 SKILL.md 里加一条约束所有文件路径基于 workspace 根目录使用相对路径写入。6. 把 Agent 接进长期编码流Coding Plan 与后续跑通单次任务之后如果你打算把 OpenClaw 当成日常开发助手有几个方向可以继续。一是把常用技能固化下来。比如加一个test-runner技能专门负责跑测试并解析结果加一个git-helper技能负责提交和分支操作。技能越多Agent 能接管的重复劳动就越多。二是控制成本。Agent 自动写代码会频繁调用模型尤其是 read 大文件、多轮 edit 的时候。如果你要长期跑可以看看 TaoToken 的 Coding Plan它针对编码场景有更合适的额度方案https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite三是把接入文档存下来。OpenClaw 版本更新时配置字段可能变TaoToken 的接口文档可以作为对照https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite如果你更想先手动试试模型对话效果确认模型输出质量再决定要不要接 Agent可以用模型对话页面https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite最后说一个实际经验Agent 自动写代码最怕的是需求模糊 权限过大。我现在的做法是每个任务都明确三件事——改哪个文件、改成什么样、不要动什么。这三件事说清楚Agent 的成功率会高很多。技能配置只是骨架真正决定效果的是你怎么描述任务和怎么限制边界。
返回列表