📚进度:0/670%
Tool Card 模板
一个好工具不是“能被调用”就够了,而是要让模型知道什么时候该用、怎么用、失败后怎么恢复。
模板
markdown
## Tool: search_papers
**Purpose**:按关键词搜索论文元数据,返回标题、摘要、作者、年份、链接和引用信息。
**Use When**:
- 用户需要查找某个主题的代表论文。
- Agent 需要为答案补充可引用证据。
- 需要比较不同方法的提出时间和核心贡献。
**Do Not Use When**:
- 用户已经给了具体 PDF,并要求只基于该 PDF 回答。
- 问题需要网页实时信息而不是学术论文。
**Input Schema**:
```json
{
"query": "string, required",
"year_from": "integer, optional",
"year_to": "integer, optional",
"max_results": "integer, default 5, max 20"
}Output Schema:
json
{
"ok": true,
"items": [
{
"title": "string",
"authors": ["string"],
"year": 2025,
"abstract": "string, truncated to 800 chars",
"url": "string",
"source": "arXiv | Semantic Scholar | OpenAlex"
}
],
"next_page_token": "string | null"
}Errors:
| error | retryable | Agent 应对 |
|---|---|---|
rate_limited | yes | 降低 max_results 或稍后重试 |
empty_result | no | 改写 query 或放宽年份 |
source_unavailable | yes | 切换备用数据源 |
Security:
- 只访问公开论文元数据。
- 不抓取付费墙内容。
- 不把 API key 写入 trace。
Example:
json
{
"query": "agentic rag evaluation",
"year_from": 2023,
"max_results": 5
}
## 常见问题
### 工具描述要不要写很长?
可以长,但要结构化。模型更容易理解“Use When / Do Not Use / Input / Output / Errors”这种稳定格式。
### 工具返回越全越好吗?
不是。返回越长,上下文越容易被噪声污染。工具应该返回下一步决策需要的信息,并保留可追溯引用。
### 要不要让模型自己生成 API 参数?
可以,但参数范围必须由 schema 限制。对真实外部 API,建议加一层适配器做校验、分页、截断和重试。