✏️ 编辑

如何用 Claude Code 生成一个工具?

创建于 2026-06-11 10:27:34 · 更新于 2026-06-12 09:07:00

核心思路

让 Claude Code 生成工具,本质上就是用自然语言描述需求,让 AI 帮你写代码。你只需要说清楚要什么,Claude 会完成编码、调试、优化的全流程。

四步工作法

需求描述 → Claude 规划 → 编码实现 → 测试验证 → 迭代优化

第一步:写好需求描述

好的需求描述包含以下要素:

要素 说明 好例子 差例子
目标 做什么用的 "命令行日志分析工具" "帮我写个工具"
技术栈 用什么语言实现 "用 Python 3,只用标准库" "用 Python"
功能清单 具体功能点 "支持按日期过滤、统计级别分布" "分析日志"
输入输出 输入什么、输出什么 "读取 access.log,输出表格" "处理一下"
约束条件 限制和注意事项 "文件超过 100MB 时给出提示" "要快"

好的例子

帮我写一个 Node.js 命令行工具,功能是批量调整图片大小:
- 输入:指定图片目录
- 输出:缩放到指定宽高,保存到 output/ 目录
- 参数:--width 800 --height 600 --quality 80
- 要求:支持 jpg/png/webp 格式,处理进度条显示
- 约束:使用 sharp 库,兼容 Node.js 18+

差的例子

帮我写个图片处理工具

第二步:让 Claude 生成

完整流程演示

你输入需求后,Claude 会:

你:帮我写一个 Nginx 日志分析工具

Claude:好的,我先分析一下需求...
       需要实现的功能:
        1. 读取 Nginx access.log
        2. 统计每个 IP 的访问次数
        3. 统计每个 URL 的访问次数
        4. 输出格式化的表格
       我建议使用 Python 实现,只用标准库
       开始编码...

       【创建文件 log-analyzer.py】
       代码实现完成,测试一下...

       【运行 python3 log-analyzer.py access.log】
       运行成功,输出结果如下:
       ┌──────────────┬───────┐
       │ IP           │ 次数  │
       ├──────────────┼───────┤
       │ 192.168.1.1  │ 152   │
       │ 10.0.0.2     │ 89    │
       └──────────────┴───────┘

       如果还需要其他功能,随时告诉我。

分步推进策略

对于复杂工具,分多轮对话逐步构建:

第 1 轮:生成核心功能
"生成基础框架,能读取日志文件并逐行输出"

第 2 轮:添加统计功能
"添加 IP 统计和 URL 统计功能,按访问次数降序排列"

第 3 轮:增强输出
"输出格式改为表格,添加颜色区分高低频"

第 4 轮:添加参数支持
"支持通过命令行参数指定日志路径、过滤条件"

第 5 轮:健壮性提升
"添加错误处理、文件不存在提示、大文件处理"

第三步:调试和修复

生成工具后,Claude 会自动运行测试。如果出错,它会自动分析并修复:

常见的调试场景

问题 Claude 的处理方式
语法错误 自动读取错误信息、定位问题行、修复
运行时异常 分析堆栈跟踪、补充边界条件处理
逻辑错误 检查代码逻辑、添加日志输出排查
性能问题 分析瓶颈、优化算法或数据结构

手动调试

你也可以主动让 Claude 帮你调试:

这个工具运行报错了,错误信息:
TypeError: Cannot read property 'length' of undefined
文件:src/parser.js:25

帮我看一下是什么问题

Claude 会分析错误信息,定位问题并修复。

第四步:将工具封装成 Skill

工具开发完成后,可以封装成 Claude Code 的 Skill,方便随时调用:

JavaScript
// .claude/skills/log-analyzer.js
export const meta = {
  name: 'log-analyzer',
  description: '分析 Nginx 日志,统计 IP 和 URL 访问次数',
  whenToUse: '需要分析访问日志文件时',
};

之后在对话中直接使用:

/log-analyzer /var/log/nginx/access.log

实战示例合集

示例 1:批量文件重命名工具

用 Python 写一个批量重命名工具:
- 遍历指定目录下的所有文件
- 支持替换文件名中的指定字符串
- 支持添加前缀/后缀
- 支持正则表达式匹配
- 执行前预览改动
- --dry-run 参数只显示不改

示例 2:API 健康检查工具

用 Node.js 写一个 API 健康检查工具:
- 从 config.json 读取 URL 列表
- 每隔 30 秒检查一次
- 记录响应状态码和响应时间
- 超时 5 秒标记为异常
- 异常时输出红色警告
- 运行结果输出到 health-report.log

示例 3:数据库迁移脚本

写一个数据迁移脚本:
- 从 SQLite 读取用户表
- 数据清洗:去除空值、格式统一
- 写入 PostgreSQL 目标表
- 每迁移 1000 条输出一次进度
- 迁移完成后输出统计报告
- 支持 --rollback 回滚

生成工具的最佳实践

✅ 要做的

  • 先小后大:从最小可用版本开始,逐步迭代
  • 明确边界:说清楚文件范围、不要改什么
  • 及时测试:每轮迭代后让 Claude 运行验证
  • 审查代码:生成后再检查一遍,特别是涉及文件操作的逻辑

❌ 不要做的

  • 一次性提超大需求:Claude 的处理能力有限,分步更靠谱
  • 不明确技术栈:不指定语言时 Claude 可能选你不熟悉的
  • 忽略错误处理:生成后记得让 Claude 补充异常处理

💡 实际使用场景

场景一:生成图片压缩工具

设计师每次都要手动压缩网页图片,前端小陈用 Claude Code 生成了一个工具:

帮我写一个 Node.js 批量图片压缩工具,锐度优先模式,支持拖拽文件夹处理

Claude 生成了脚本,小陈测试后发现压缩率不够理想,继续输入:

把压缩质量从 80 降到 60,保留 EXIF 信息,输出压缩前后的大小对比

Claude 调整了参数,重新运行。三次迭代后,工具达到了预期效果。小陈把它封装成了 Skill,之后设计师自己都能用。

场景二:生成数据清洗脚本

运营给了数据分析师小吴一份 2GB 的 CSV,格式混乱。小吴让 Claude 生成脚本:

写一个 Python 脚本清洗这份 CSV:去除空行、统一日期格式为 YYYY-MM-DD、去重、输出清洗报告

Claude 生成的脚本跑完后输出了:原始 52341 行、清洗后 48722 行、去重 3619 行、日期修正 124 条。小吴直接拿数据去做分析了。

场景三:生成 API 文档工具

后端老张写完了一套 API,懒得手写文档,用 Claude 生成了一个文档生成器:

读取 routes/ 目录下的所有路由文件,自动生成 OpenAPI 格式的文档

Claude 分析了路由注册代码,提取了 URL、方法、参数信息,生成了标准的 OpenAPI 规范文档,可以直接导入 Swagger UI。