# 🛠 工具使用系统（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. **用户信任** — 真实数据才能做出正确决策

---

**本规则优先级高于一切记忆调用！**
