novel-doomsday-resurgence/skills/veadk-skills/references/common/tools.md

54 lines
1.9 KiB
Markdown
Raw Normal View History

# Tools 定义方法
## 导入方法
- 网络搜索:`from veadk.tools.builtin_tools.web_search import web_search`
- 链接读取:`from veadk.tools.builtin_tools.link_reader import link_reader`
- 图像生成:`from veadk.tools.builtin_tools.image_generate import image_generate`
- 视频生成:`from veadk.tools.builtin_tools.video_generate import video_generate`
- 代码沙箱执行(用来执行 Python 代码):`from veadk.tools.builtin_tools.run_code import run_code`
## 自定义 Tool
你可以通过撰写一个 Python 函数来定义一个自定义 Tool你必须清晰地定义好 Docstring
```python
def add(a: int, b: int) -> int:
"""Add two integers together.
Args:
a (int): The first integer.
b (int): The second integer.
Returns:
int: The sum of a and b.
"""
return a + b
agent = Agent(tools=[add])
```
如果你使用自定义 Tool请遵循以下规范
推荐1返回 dict字段名稳定且语义清晰2对外部错误用“可解释的错误字符串”或 {"error": "...", "details": ...},避免直接抛异常导致整轮失败
不推荐1返回复杂对象实例模型侧不可读2返回超大文本建议先做裁剪/分页/只返回必要字段)
为了让模型更愿意正确用工具挂载与触发建议1instruction 里明确“什么时候必须用工具”2工具函数参数名要贴近业务语义例如 order_id、city3返回里提供模型可直接引用的字段例如 result、items、summary
## 代码规范
你可以通过如下方式将某个工具挂载到智能体上,例如 `web_search` 网络搜索工具:
```python
from veadk.tools.builtin_tools.web_search import web_search
root_agent = Agent(
name="...",
description="...",
instruction="...", # 智能体系统提示词
tools=[web_search] # 挂载工具列表
)
```