Skip to content

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

errorretryableAgent 应对
rate_limitedyes降低 max_results 或稍后重试
empty_resultno改写 query 或放宽年份
source_unavailableyes切换备用数据源

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,建议加一层适配器做校验、分页、截断和重试。

Released under the MIT License.