1.5 KiB
1.5 KiB
title, date
| title | date |
|---|---|
| Tools开发 | 2026-06-29 |
一、工作流程
【定义工具能力】
↓
【约定输入输出】
↓
【实现工具逻辑】
↓
【注册到模型】
↓
用户自然语言请求
↓
【模型选择工具】
↓
【执行工具】
↓
【返回结果】
二、实战
2.1 工具定义
实现一个根据接口查询数据的工具:
@tool
def repair_search(date: list[str]) -> str:
"""
查询维修工单列表。
参数说明:
- date (list[str], 必填):
- 日期范围,格式:["YYYY-MM-DD", "YYYY-MM-DD"]
- 示例:["2026-07-01", "2026-08-01"]
"""
if date is None:
date = []
params = {
"currentPage": 0,
"pageSize": 0,
"customer": "",
"deviceName": "",
"deviceModel": "",
"date": date
}
token = get_token()
headers = {
"satoken": token
}
try:
resp = requests.get(f"{BASE_URL}repair", params=params, headers=headers, timeout=10)
resp.raise_for_status()
return resp.text
except Exception as e:
return f"查询维修工单失败: {e}"
2.2 注册到模型
integrate_agent = create_agent(
model=model,
tools=[repair_search],
system_prompt=integrate_prompt
)
::: tip
工具里面的注释大模型是无法查看的,需要把工具的使用说明,例如接口返回值的含义,写在提示词里面。
:::