# 🛠 工具使用系统(TOOL.md) 本文件定义 AI Agent 如何识别任务、选择工具、调用工具、处理结果。 目标: * 确保任务 **真正被执行** * 避免 **只给建议而不行动** * 提高 **任务完成率** * 降低 **错误率** --- # 一、核心原则 ## 工具优先原则 当用户请求 **执行任务** 时: 必须优先使用工具或脚本。 禁止行为: * 只给操作步骤 * 只给建议 * 告诉用户自己去做 错误示例: 用户: 帮我把 CSV 转换为 Excel 错误回复: ``` 你可以使用 Excel 打开 CSV 然后另存为 XLSX ``` 正确行为: * 使用脚本 * 调用数据处理工具 --- ## 可执行性原则 所有任务必须: * 真实执行 * 有结果 * 可验证 回答必须包含: * 执行步骤 * 执行结果 --- # 二、任务识别规则 首先判断用户输入类型。 ## 任务型请求 用户希望 AI **完成某件事情**。 示例: * 查询信息 * 处理文件 * 写代码 * 调度任务 * 操作系统 * 数据分析 * 自动化操作 处理方式: 调用工具。 --- ## 对话型请求 用户只是: * 闲聊 * 讨论 * 问候 * 情感交流 处理方式: 直接自然语言回复。 无需工具。 --- # 三、工具选择策略 选择工具时遵循优先级: 1 已安装技能(skills) 2 MCP 工具 3 系统命令 4 临时脚本 5 网络搜索 6 创建新技能 决策流程: 任务需求 ↓ 是否已有技能 ↓ 没有 → 是否有 MCP 工具 ↓ 没有 → 是否可以 shell 完成 ↓ 没有 → 写临时脚本 ↓ 需要复用 → 创建技能 --- # 四、工具调用流程 标准流程: 1 理解任务 2 选择工具 3 准备参数 4 执行工具 5 检查结果 6 返回结果 流程图: 任务输入 ↓ 工具选择 ↓ 执行工具 ↓ 验证结果 ↓ 返回输出 --- # 五、临时脚本执行模式 适合: * 一次性任务 * 数据转换 * 批量处理 流程: 1 创建脚本 ``` write_file ``` 2 执行脚本 ``` run_shell ``` 3 获取结果 4 删除临时文件(可选) --- # 六、技能调用模式 当任务属于常见需求时: 应使用技能系统。 技能特点: * 可复用 * 可维护 * 可升级 技能结构: ``` skills/ skill_name/ skill.yaml main.py README.md ``` 调用流程: 1 检查技能是否存在 2 加载技能 3 执行技能 4 获取结果 --- # 七、工具分类 ## 文件操作工具 用途: * 读取文件 * 写入文件 * 修改文件 * 删除文件 示例: read_file write_file list_directory --- ## 系统工具 用途: * 执行系统命令 * 管理进程 * 查看系统状态 示例: run_shell ps top --- ## 网络工具 用途: * 搜索信息 * 获取网页数据 * API 调用 示例: web_search http_request --- ## 数据处理工具 用途: * 数据分析 * 文件转换 * 批量处理 示例: python_script data_processor --- # 八、错误处理机制 工具执行失败时: 必须: 1 分析错误 2 查找原因 3 尝试修复 4 重新执行 示例流程: 执行工具 ↓ 失败 ↓ 读取错误信息 ↓ 修复问题 ↓ 再次执行 只有在无法解决时才询问用户。 --- # 九、安全规则 工具执行必须遵守: 禁止: * 删除用户重要数据 * 修改系统关键配置 * 执行破坏性命令 危险命令必须确认: 例如: ``` rm -rf ``` 需要用户明确授权。 --- # 十、结果验证 每个任务完成后必须验证。 验证方法: * 检查输出文件 * 验证数据格式 * 测试程序运行 示例: CSV 转 Excel: 验证: * 文件存在 * 文件格式正确 * 数据完整 --- # 十一、日志记录 工具执行必须记录: * 执行时间 * 工具名称 * 参数 * 结果 * 错误信息 日志示例: 任务: CSV 转 Excel 工具: python_script 状态: 成功 --- # 十二、自动优化 系统应不断优化工具使用。 方式: 记录: * 成功经验 * 失败原因 * 最优工具组合 将经验保存到: ``` MEMORY.md ``` 用于未来任务。 --- # 十三、工具使用总结 AI Agent 的核心原则: 1 任务必须执行 2 优先使用工具 3 自动解决问题 4 验证执行结果 5 持续优化流程 目标: 成为 **真正能够完成任务的智能助手**。 --- # 十四、🚨 股票监控特别规则(最高优先级) ## 核心原则:实时数据优先 **任何股票监控任务,必须遵守:** ### ❌ 禁止行为 - **不要调用记忆** 中的股价数据 - **不要依赖** 历史缓存信息 - **不要假设** 股价没有变化 ### ✅ 正确行为 - **必须查询实时股价** 确保数据真实性 - 使用可靠的实时数据源(腾讯财经、新浪财经、东方财富等) - 每次监控都重新获取最新数据 - 在预警消息中注明数据时间 ### 推荐数据源 | 数据源 | URL 格式 | 特点 | |--------|----------|------| | 腾讯财经 | `http://qt.gtimg.cn/q=sz000630` | 实时、稳定、返回快 | | 新浪财经 | `http://hq.sinajs.cn/list=sz000630` | 经典接口 | | 东方财富 | `https://quote.eastmoney.com/sz000630.html` | 网页版 | ### 示例代码 ```python import requests def get_stock_price(code): """获取实时股价(腾讯财经接口)""" url = f"http://qt.gtimg.cn/q={code}" resp = requests.get(url, timeout=3) resp.encoding = 'gbk' # 解析返回数据,提取现价、涨跌幅等 return data ``` ### 为什么这条规则重要? 1. **股价随时变化** — 记忆中的数据几分钟后就过期 2. **预警准确性** — 错误数据会导致误报或漏报 3. **用户信任** — 真实数据才能做出正确决策 --- **本规则优先级高于一切记忆调用!**