乐于分享
好东西不私藏

OpenClaw工具拆解之tavily+auxiliary

OpenClaw工具拆解之tavily+auxiliary

一、tavily 工具

1.1 工具概述

功能:AI 优化搜索引擎
核心特性

  • • AI 优化搜索结果
  • • 支持搜索深度(basic/advanced)
  • • 支持主题分类
  • • 需要 API Key

1.2 Schema 定义

constTavilySearchToolSchema = Type.Object({
queryType.String({ description"Search query" }),
searchDepthType.Optional(Type.String({ 
enum: ["basic""advanced"],
description"Search depth level"
    })),
topicType.Optional(Type.String({ 
description"Topic category for better results"
    })),
maxResultsType.Optional(Type.Number({
description"Maximum number of results to return",
default10
    }))
});

1.3 执行代码

functioncreateTavilyTool(options) {
const apiKey = options?.config?.tools?.tavily?.apiKey ?? process.env.TAVILY_API_KEY;

if (!apiKey) {
returnnull;  // API Key 未配置,工具不可用
    }

return {
label"Tavily",
name"tavily",
description"AI-optimized search engine for research and fact-finding.",
parametersTavilySearchToolSchema,
executeasync (_toolCallId, args) => {
const params = args;

// 1. 解析查询(必填)
const query = readStringParam$1(params, "query", { requiredtrue });

// 2. 解析搜索深度
const searchDepth = params.searchDepth === "advanced" ? "advanced" : "basic";

// 3. 解析主题
const topic = readStringParam$1(params, "topic");

// 4. 解析结果数量
const maxResults = typeof params.maxResults === "number" ? 
Math.max(1Math.min(params.maxResults20)) : 10;

// 5. 调用 Tavily API
const response = awaitfetch("https://api.tavily.com/search", {
method"POST",
headers: {
"Content-Type""application/json",
"Authorization"`Bearer ${apiKey}`
                },
bodyJSON.stringify({
                    query,
search_depth: searchDepth,
topic: topic || "general",
max_results: maxResults,
include_answertrue,
include_raw_contentfalse
                })
            });

if (!response.ok) {
thrownewError(`Tavily API error: ${response.status}${response.statusText}`);
            }

const data = await response.json();

// 6. 返回结果
returnjsonResult({
query: data.query,
answer: data.answer,
results: data.results.map((r) => ({
title: r.title,
url: r.url,
content: r.content,
score: r.score
                })),
total: data.results.length
            });
        }
    };
}

1.4 返回结果格式

成功

{
"query":"OpenClaw documentation",
"answer":"OpenClaw is an AI assistant framework...",
"results":[
{
"title":"OpenClaw Documentation",
"url":"https://docs.openclaw.ai",
"content":"Official documentation for OpenClaw...",
"score":0.95
}
],
"total":10
}

二、辅助工具

2.1 apply_patch(已在第 13 组涉及)

功能:应用补丁到多个文件
详细说明:见 apply_patch+sandboxed_read.md

2.2 image_generate(已在第 10 组涉及)

功能:生成图像(文生图/图生图)
详细说明:见 web_fetch+image_generate.md

2.3 sessions_history(已在第 03 组涉及)

功能:获取会话历史消息
详细说明:见 sessions_list+sessions_history.md


三、工具分类总览

3.1 完整工具列表(36 个)

类别
工具数量
工具名称
核心基础工具
5
read, write, edit, exec, process
会话管理工具
7
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, session_status, subagents
网络工具
4
web_search, web_fetch, browser, tavily
媒体工具
3
image, image_generate, pdf
OpenClaw 核心工具
11
gateway, agents_list, cron, nodes, canvas, message, tts, memory_search, memory_get, apply_patch, plugin 工具
沙盒工具
3
sandboxed_read, sandboxed_write, sandboxed_edit
Host 工具
2
host_workspace_write, host_workspace_edit
补丁工具
1
apply_patch

3.2 文档覆盖情况

文档
工具
状态
read+write.md
read, write
✅ 完成
edit+process.md
edit, process
✅ 完成
sessions_list+sessions_history.md
sessions_list, sessions_history
✅ 完成
sessions_send+sessions_spawn.md
sessions_send, sessions_spawn
✅ 完成
sessions_yield+session_status.md
sessions_yield, session_status
✅ 完成
subagents+gateway.md
subagents, gateway
✅ 完成
cron+nodes.md
cron, nodes
✅ 完成
canvas+message.md
canvas, message
✅ 完成
tts+web_search.md
tts, web_search
✅ 完成
web_fetch+image_generate.md
web_fetch, image_generate
✅ 完成
image+pdf.md
image, pdf
✅ 完成
browser+agents_list.md
browser, agents_list
✅ 完成
apply_patch+sandboxed_read.md
apply_patch, sandboxed_read
✅ 完成
sandboxed_write+sandboxed_edit.md
sandboxed_write, sandboxed_edit
✅ 完成
host_workspace_write+host_workspace_edit.md
host_workspace_write, host_workspace_edit
✅ 完成
memory_search+memory_get.md
memory_search, memory_get
✅ 完成
tavily+auxiliary.md
tavily, 其他
✅ 完成

四、17 组(36 个工具)最终总结

已完成 17 组(36 个工具)

组号
工具
文档大小
01
read + write
14KB
02
edit + process
25KB
03
sessions_list + sessions_history
26KB
04
sessions_send + sessions_spawn
25KB
05
sessions_yield + session_status
15KB
06
subagents + gateway
22KB
07
cron + nodes
36KB
08
canvas + message
21KB
09
tts + web_search
8KB
10
web_fetch + image_generate
15KB
11
image + pdf
24KB
12
browser + agents_list
17KB
13
apply_patch + sandboxed_read
10KB
14
sandboxed_write + sandboxed_edit
9KB
15
host_workspace_write + host_workspace_edit
11KB
16
memory_search + memory_get
12KB
17
tavily + auxiliary
本组

总计:约 300KB 文档,覆盖 36 个核心工具


五、使用指南

5.1 工具选择指南

需求
推荐工具
读取文件
read / sandboxed_read
写入文件
write / sandboxed_write / host_workspace_write
编辑文件
edit / sandboxed_edit / host_workspace_edit
执行命令
exec + process
搜索网络
web_search / tavily
抓取网页
web_fetch
图像分析
image
图像生成
image_generate
PDF 分析
pdf
语音合成
tts
浏览器自动化
browser
定时任务
cron
节点管理
nodes
Canvas 控制
canvas
消息发送
message
会话管理
sessions_*
子 agent 管理
subagents / sessions_spawn
Gateway 管理
gateway
Agent 列表
agents_list
记忆搜索
memory_search / memory_get
补丁应用
apply_patch

5.2 沙盒模式选择

沙盒模式启用时:
├─ 读取文件 → sandboxed_read
├─ 写入文件 → sandboxed_write
└─ 编辑文件 → sandboxed_edit

非沙盒模式时:
├─ 读取文件 → read
├─ 写入文件 → host_workspace_write
└─ 编辑文件 → host_workspace_edit