【Hermes:核心机制】9、40+ 内置工具全解:执行/信息/媒体/记忆/协调五大类 —— 智能体手脚架完全手册

40+ 内置工具全解:执行/信息/媒体/记忆/协调五大类 ------ 智能体手脚架完全手册

一个智能体(Agent)的能力边界,由它所能调用的工具决定。Honcho 内置了超过 40 种工具,分为五大类:执行、信息、媒体、记忆、协调。本文将逐一拆解,并给出选型与安全建议。

前言:为什么工具是智能体的"手脚"?

如果把大语言模型(LLM)比作大脑,那么工具(Tools)就是智能体的手脚和感官。没有工具,LLM 只能纸上谈兵------它知道如何计算,但不会真的运行代码;它知道天气 API 的用法,但无法主动联网获取实时温度。

Honcho 智能体框架内置了 40 多种工具,覆盖了从终端命令执行、代码运行、文件操作,到网页浏览、图像生成、语音合成,再到长期记忆、任务调度、多智能体协作等全场景。这些工具既可以单独调用,也可以通过 Toolset 机制按需组合,形成强大的自动化工作流。

本文将从分类逻辑出发,逐类讲解代表性工具的使用方法、典型场景、安全注意事项,并给出最佳实践。全文包含 5 张 mermaid 流程图,帮助你直观理解工具间的协作关系。


1. 工具总览与分类逻辑

1.1 为什么需要分类?

40 多种工具如果平铺罗列,会让开发者无从下手。Honcho 按照工具的职责边界划分为五大类:

类别 英文标识 核心职责 典型工具示例
执行类 Executors 在真实环境中产生副作用 terminal, code_execution, file
信息类 Informers 从外部获取数据 web, browser, session_search
媒体类 Media 处理多媒体内容 vision, image_gen, tts
记忆类 Memory 持久化存储与检索 memory, skills, todo, cronjob
协调类 Coordinators 管理多智能体、用户交互 delegation, moa, clarify

这种分类不仅便于文档检索,更重要的是影响安全策略:执行类工具通常需要最高权限确认,而信息类工具相对安全。

1.2 总览图:五大类工具关系

智能体核心
副作用
读取
生成/理解
读写
交互
交互
协调类
任务委派
多智能体
澄清询问
记忆类
长期记忆
技能库
待办
定时任务
媒体类
图像识别
图像生成
语音合成
信息类
网页抓取
浏览器自动化
会话搜索
执行类
Terminal 命令
代码执行
文件操作
Honcho Agent
环境/文件系统
外部数据源
媒体内容
持久化存储
User


2. 执行类工具:让智能体真正"动手"

执行类工具是智能体与现实环境交互的桥梁。它们会改变系统状态------创建文件、运行进程、修改配置,因此默认需要用户授权

2.1 terminal ------ 命令行执行器

功能:在宿主系统(或容器内)执行任意 shell 命令,返回 stdout/stderr 和退出码。

典型场景

  • 自动化部署脚本
  • 系统监控(df -h, top -bn1
  • 批量文件处理(rename, grep

使用示例(伪代码):

python 复制代码
result = agent.call_tool("terminal", {
    "command": "ls -la /var/log",
    "timeout": 30
})
print(result.stdout)

安全机制

  • 默认禁用危险命令:rm -rf /, dd, mkfs 等会被拦截。
  • 工作目录限制在沙箱内(可通过配置放宽)。
  • 每次执行前弹出确认(高安全模式)。

2.2 code_execution ------ 代码运行沙箱

功能 :在隔离环境中执行 Python、JavaScript、Bash 等代码片段,返回输出。与 terminal 的区别在于:code_execution 更侧重短脚本、临时计算,自带超时和资源限制。

支持语言:Python 3.11+、Node.js 18+、Bash。

典型场景

  • 数据清洗:用户给出 CSV 样例,要求"计算平均值"。
  • 算法验证:用户问"斐波那契数列第 30 项",智能体直接运行代码返回结果。
  • 教育辅导:执行学生提交的代码并反馈错误。

沙箱限制

  • 网络访问受限(只能访问白名单域名)。
  • 文件读写局限于临时目录。
  • CPU 时间 ≤ 5 秒,内存 ≤ 256 MB。

代码执行沙箱 Honcho Agent 用户 代码执行沙箱 Honcho Agent 用户 若代码试图删除文件,立即终止 "计算 1到100的质数和" 注入代码片段 + 测试用例 隔离执行 输出结果 + 耗时 "1060 (质数之和)"

2.3 file ------ 文件系统操作

功能:读写、复制、移动、删除文件或目录。支持文本和二进制文件。

细分工具file_read, file_write, file_append, file_delete, file_list, file_mkdir

典型场景

  • 读取配置文件,让智能体根据配置生成报告。
  • 保存对话历史为 Markdown 文件。
  • 整理下载目录(批量重命名)。

安全设计

  • 路径遍历防护:禁止使用 ../ 跳出基础目录。
  • 删除操作默认需要二次确认。
  • 支持设置文件大小上限(例如读取文件不超过 10 MB)。

2.4 执行类工具的安全平衡

工具 风险等级 默认权限 推荐场景
terminal 🔴 高 需授权 运维自动化、本地开发
code_execution 🟡 中 沙箱内自动 计算、代码教学
file 🟡 中 需授权写操作 日志记录、配置管理

3. 信息类工具:打开智能体的眼睛与耳朵

信息类工具帮助智能体感知外部世界------从网页、浏览器、历史会话中提取信息。

3.1 web ------ 网页内容抓取

功能:发送 HTTP 请求,获取 HTML/JSON/纯文本内容,并自动提取正文(去除导航、广告等噪音)。

参数url, method(GET/POST), headers, body, extract_main(bool)。

典型场景

  • 实时新闻摘要:抓取 RSS 源或新闻页面。
  • 技术文档查询:读取官方文档并回答用户问题。
  • 价格监控:定期抓取商品页面。

智能特性 :支持 ?query= 参数自动识别百度/Google 搜索结果页。

3.2 browser ------ 浏览器自动化(Playwright 后端)

功能:启动无头或可视化浏览器,执行点击、输入、截图、等待元素等操作。适用于 JavaScript 渲染的现代网站。

操作集navigate, click, type, screenshot, evaluate(执行 JS)。

典型场景

  • 登录后抓取数据(需用户提供 Cookie 或凭证)。
  • 自动化表单填写。
  • 单页应用(SPA)内容提取。

注意browserweb 慢且消耗资源,仅在必须渲染 JS 时使用。

功能:在当前对话的历史消息中进行向量检索,找到与当前问题最相关的历史片段。

与普通记忆的区别session_search 只检索本次会话(session)内的内容,不跨会话。适合需要引用刚才讨论过的细节的场景。

使用示例 :用户问"我之前提到的那个函数名是什么?",智能体调用 session_search(query="函数名", top_k=1) 找到之前的消息。
会话历史
相似度最高
用户: 我定义了一个process_data函数
助手: 它接受一个列表参数
用户: 能排序吗
向量化
会话向量库
用户: 那个函数叫什么
助手: 您指的是process_data函数

3.4 信息类工具对比

工具 适用场景 限制
web 静态页面、API、RSS 无法执行 JS,可能被反爬
browser 现代 SPA、需要登录/交互的站点 速度慢、资源重、需处理验证码
session_search 长对话中的上下文回溯 仅限当前会话,不跨会话持久化

4. 媒体类工具:让智能体看会听会说

媒体类工具赋予智能体多模态能力。

4.1 vision ------ 图像理解

功能:基于多模态大模型(如 GPT-4V、LLaVA)分析图片内容,返回描述、物体识别、文字提取(OCR)等。

输入:图片 URL 或 base64 编码。

输出:结构化文本描述。

典型场景

  • 识别截图中的 UI 元素,辅助自动化测试。
  • 从扫描文档中提取表格数据。
  • 根据用户上传的草图生成前端代码。

4.2 image_gen ------ 图像生成

功能:调用 Stable Diffusion、DALL‑E 等模型根据文本提示生成图片。

参数prompt, negative_prompt, width, height, steps

典型场景

  • 根据用户需求生成配图(PPT 插图、UI 素材)。
  • 创意设计迭代:智能体生成多个版本供用户选择。

输出:返回图片 URL(或文件路径),并自动上传到 CDN。

4.3 tts ------ 文本转语音

功能:将文本合成为自然语音,支持多语言、多音色。

典型场景

  • 无障碍阅读:将长回复转为语音。
  • 有声内容生成(播客、教学音频)。
  • 语音助手的前端。

参数text, voice(en-US-Female, zh-CN-XiaoxiaoNeural), speed
同时返回文本
用户收听
Honcho Agent
TTS工具
生成音频文件

4.4 媒体类工具的注意事项

  • 成本:图像生成和语音合成通常按量计费,需设置预算上限。
  • 内容安全:自动过滤 NSFW 提示词,防止生成不当内容。
  • 延迟:图像生成可能需要 5-15 秒,建议异步通知。

5. 记忆类工具:让智能体拥有长期记忆与习惯

如果说执行类是手脚,信息类是感官,那么记忆类就是大脑的海马体------负责长期存储、技能学习、任务规划。

5.1 memory ------ 长期语义记忆

功能 :将用户陈述的事实、偏好存储到向量数据库,支持跨会话检索。与 session_search 的区别:memory 是永久性的。

核心操作

  • remember(key, value)remember_auto(自动提取关键信息)
  • recall(query, top_k) 语义检索
  • forget(key) 删除

典型场景

  • 记住用户"我是素食主义者",在后续所有会话中推荐素食餐厅。
  • 存储项目约定:"我们团队使用 tabs 缩进"。

5.2 skills ------ 技能库

功能:允许智能体学习新的工具调用序列,并将其封装为一个"技能"。类似于人类的肌肉记忆。

示例 :用户多次演示"抓取网页 → 提取正文 → 翻译成中文 → 保存到文件"这个流程,智能体可以将其保存为 fetch_translate 技能。下次用户只需说"用那个技能处理这篇英文文章",智能体就会自动调用。

内部实现:技能本质是一个 JSON 描述的工作流,包含步骤、输入输出映射。

5.3 todo ------ 待办事项管理

功能:维护当前任务列表,支持增删改查、标记完成、排序。

典型场景

  • 智能体帮用户拆解复杂任务:"请将'写年度报告'拆成 5 个待办项"。
  • 跨会话的任务提醒:用户关闭对话后,下次打开仍能看到未完成的 todo。

命令示例todo add "调研竞品", todo list, todo done 2

5.4 cronjob ------ 定时任务

功能:设置周期性执行某个工具或工作流。基于 cron 语法。

典型场景

  • 每天早上 8 点抓取新闻并发送摘要到用户邮箱。
  • 每小时检查服务器磁盘空间,超过阈值时告警。

安全限制:每个智能体最多 10 个 cronjob,最小间隔 5 分钟,避免资源滥用。
00:00 00:15 00:30 00:45 01:00 01:15 01:30 01:45 02:00 用户说"记住我的API密钥" 用户创建todo"备份数据库" 后续对话调用记忆 智能体设置cronjob每天2点执行 cronjob触发备份工具 长期记忆 待办与定时 记忆类工具协作示例


6. 协调类工具:管理复杂交互与多智能体

协调类工具解决的是"智能体如何与其他智能体或人类高效协作"的问题。

6.1 delegation ------ 任务委派

功能:当前智能体将子任务委托给另一个专门智能体(或同一个智能体的不同实例)。类似于团队中的"组长分配任务"。

典型场景

  • 主智能体负责综合问答,遇到数学计算时委托给 calculator_agent
  • 用户要求"生成图片并配上描述",主智能体委托 image_gen_agentcaption_agent 并行工作。

参数target_agent_id, task_description, input_data, expected_output_format

6.2 moa ------ 多智能体协作(Mixture of Agents)

功能:同时调用多个智能体处理同一问题,然后通过投票或加权融合得到最终答案。灵感来自 MoA(Mixture of Agents)论文。

典型场景

  • 高可靠性需求:让 3 个不同模型(GPT-4, Claude, Gemini)分别回答,再让一个裁判智能体选出最佳答案。
  • 多视角分析:同时从技术、商业、伦理三个角度分析一个决策。

使用示例

json 复制代码
{
  "tool": "moa",
  "params": {
    "agents": ["gpt4_agent", "claude_agent", "gemini_agent"],
    "aggregation": "vote",
    "query": "解释量子计算的基本原理"
  }
}

6.3 clarify ------ 澄清询问

功能:当用户指令模糊或缺少关键信息时,主动生成一个结构化的问题列表,引导用户补充信息。

与传统"再问一遍"的区别clarify 会基于任务模板和历史画像,提出最少但最有效的问题,并支持多轮澄清。

典型场景

  • 用户说"帮我订机票"。智能体调用 clarify,返回 {"questions": ["出发地?", "目的地?", "日期?"]},然后一次性收集所有答案。

执行原任务
不充分
收到模糊指令
调用clarify
clarify
生成问题列表
用户回答
检查是否充分
充分

6.4 协调类工具的设计哲学

  • 降低认知负担 :用户不需要知道背后有几个智能体在工作,delegationmoa 对用户透明。
  • 提升容错性moa 的多模型投票可以避免单一模型的偏见。
  • 减少往返次数clarify 一次性收集所有缺失信息,而不是多轮低效提问。

7. Toolset 按需启用:安全与效率平衡

Honcho 不会一次性加载全部 40+ 工具。原因有三:

  1. 上下文长度限制:每个工具的描述都会占用 LLM 的上下文窗口。
  2. 安全性:高风险的执行类工具不应在不需要时可用。
  3. 推理效率:工具选择也是计算成本,减少候选工具可加快决策。

7.1 Toolset 定义

Toolset 是工具的逻辑分组。开发者可以创建自定义 Toolset,例如:

  • basic_toolsetweb, memory, clarify(适用于客服机器人)
  • developer_toolsetterminal, code_execution, file, browser(适用于编程助手)
  • creative_toolsetimage_gen, tts, vision(适用于设计助手)

7.2 按需启用策略

python 复制代码
# 示例:根据任务动态启用工具
if task_type == "coding":
    agent.enable_tools(["terminal", "code_execution", "file"])
elif task_type == "research":
    agent.enable_tools(["web", "browser", "session_search", "memory"])
else:
    agent.enable_tools(["clarify", "web"])  # 默认最小集

7.3 安全与效率平衡表

场景 推荐 Toolset 理由
公开聊天机器人 只启用 memory(只读), clarify 避免任意代码执行风险
个人编程助手(本地) 全部执行类 + 信息类 用户完全信任,效率优先
企业内部分析师 web, browser, file(受限), moa 需要抓取数据,但禁止删除文件
儿童教育应用 vision, tts, image_gen 媒体类友好,禁用终端和文件删除

8. 总结:工具是智能体的"手脚"

经过对五大类 40+ 工具的全面拆解,我们可以得出以下结论:

  1. 分类是理解的第一步:执行、信息、媒体、记忆、协调------每类工具解决一类问题,组合使用可覆盖绝大多数自动化需求。

  2. 安全与能力需要平衡:执行类工具强大但危险,必须配合沙箱、授权和 Toolset 按需启用;信息类工具相对安全但可能被反爬;媒体类工具成本高需预算控制。

  3. 记忆与协调是高级智能的体现:长期记忆让智能体不再是"金鱼大脑",协调类工具让多智能体协作从幻想走向现实。

  4. 实际选型建议

    • 新手从 web + code_execution + memory 开始。
    • 进阶加入 browservision
    • 生产环境务必使用 Toolset 限制,并开启所有安全钩子。

一张图总结工具生态

Honcho 40+ 工具
执行类
terminal
code_execution
file读写删列
信息类
web抓取
browser自动化
session_search
媒体类
vision理解
image_gen生成
tts语音
记忆类
memory长期
skills技能
todo待办
cronjob定时
协调类
delegation委派
moa多模型投票
clarify澄清

未来扩展

Honcho 的工具系统是可插拔的。社区可以贡献新工具,例如:

  • database:直接查询 SQL 数据库。
  • email:发送和接收邮件。
  • slack:与团队协作工具集成。

工具赋予了智能体行动力,而行动力才是 AI 从"玩具"走向"工具"的关键。掌握 Honcho 的工具系统,你就能构建出真正自动化的智能体应用。

下一步:尝试在自己的 Honcho 实例中定义一个 Toolset,并为你的特定场景(例如:自动生成周报、监控竞品价格、管理个人知识库)编写第一个工具调用流程。


附录:快速参考表(部分工具)

工具名 类别 典型调用参数 输出
terminal 执行 {"command":"echo hello"} {"stdout":"hello","code":0}
code_execution 执行 {"language":"python","code":"print(2+2)"} {"output":"4"}
file_read 执行 {"path":"/data/notes.txt"} {"content":"..."}
web 信息 {"url":"https://example.com"} {"title":"...","text":"..."}
browser 信息 {"action":"navigate","url":"..."} {"screenshot":"base64..."}
session_search 信息 {"query":"之前的函数名","top_k":1} [{"message":"...","score":0.92}]
vision 媒体 {"image_url":"..."} {"description":"A cat"}
image_gen 媒体 {"prompt":"sunset over mountains"} {"image_url":"..."}
tts 媒体 {"text":"Hello","voice":"en-US-Jenny"} {"audio_url":"..."}
memory_recall 记忆 {"query":"food preference"} [{"fact":"素食主义者"}]
todo_add 记忆 {"task":"Buy milk"} {"id":3,"status":"pending"}
cronjob_create 记忆 {"schedule":"0 8 * * *","action":"web_get"} {"job_id":"cron_123"}
delegation 协调 {"to":"math_agent","task":"计算 5^3"} {"result":125}
moa 协调 {"agents":["a","b"],"query":"..."} {"final_answer":"..."}
clarify 协调 {"intent":"book_flight","missing_fields":[]} {"questions":["出发地?"]}
相关推荐
程序员三明治2 小时前
【AI】Java 调用大模型 API 实战:从 OpenAI 协议到 SiliconFlow 流式响应解析
java·开发语言·人工智能
xinlianyq2 小时前
文艺复兴科技新增AI因子,量化基金重夺主导权
人工智能·ai
数据牧羊人的成长笔记2 小时前
机器学习预备知识
人工智能·机器学习
互联网推荐官2 小时前
上海小程序开发:从技术架构到工程落地的完整拆解
人工智能·物联网·软件工程
人工智能培训2 小时前
大模型部署资源不足?轻量化部署解决方案
人工智能·机器学习·prompt·agent·智能体
两万五千个小时2 小时前
Agent 任务没做完就停了?我扒了 Claude Code 源码,找到了 4 层原因
人工智能·程序员·架构
老成说AI2 小时前
DEEPSEEK V4 实测:它不够炸裂,但正在啃最硬的骨头
人工智能·ai·deepseek
Wanderer X2 小时前
【LLM】GSPO DAPO
人工智能
IpdataCloud2 小时前
IP查询工具的准确率怎么评估?一份可上生产的选型与验收指南
网络·人工智能·算法