# 工具定义规范 > 从 Claude Code `buildTool()` 模式迁移而来。 > 适用于需要"统一接口"的重复任务。 ## 模式 所有工具调用遵循以下骨架: ``` 目的 + 输入 + 执行 + 输出 + 错误 ``` ## 通用工具定义格式 ```typescript // 伪代码思路:工具即定义 Tool = { name: string, // 唯一名称 description: string, // 一句话说明"为什么"有这个工具 input: Schema, // 输入参数定义 validate(input): // 前置校验(快速失败) run(input, ctx): // 核心执行 error(e, ctx): // 错误处理(分级) } ``` ## 规则 1. **快速失败优先**:参数校验在 run 之前,不执行无效操作 2. **输出确定性**:相同输入 + 相同状态 = 相同输出 3. **错误分级**:可重试 / 不可重试 / 用户取消 4. **执行时间预估**:10s 以内的直接干,以上的先汇报 5. **不重复造轮子**:先看 tools/ 目录是否有已有工具 ## 当前已定义工具 见 `tools/` 目录中的工具模板文件。