每次请求都在为“说明书“付费:工具套餐化

简介: 给 Agent 挂几十个工具?每份工具说明书(schema)都随每次请求发给模型、都按 token 计费,还稀释注意力。本文附我开源项目 codeAgent 的真实源码 toolsets.py:像餐厅套餐一样管理工具——core 全家桶、minimal 给子代理、bg/team 按场景、MCP 是连接后现场登记的动态菜单,Explore 侦察兵只有只读工具。模型看得见的工具少了,账单和幻觉一起降。

codeAgent 系列 第 4 篇,每天一个真实技术点,全部附源码。
仓库:https://github.com/Harvil1/codeAgent

请添加图片描述

一个被严重低估的成本大头

聊 Agent 成本,大家先想到历史消息。但还有一块常被忽略:工具的 schema。

模型不会"天生"知道怎么调你的工具——每个工具的名称、描述、参数 JSON Schema,都要放在每次请求的 tools 字段里发过去。30 个工具轻松吃掉两三千 token,而且每一轮都重发、每一轮都计费,还让模型在一堆不相关的工具里分心。

解法:餐厅套餐

我的做法在 toolsets.py,文件开头就把比方打好了:

"""(文件头注释)
像餐厅菜单:不把全部菜一次端上桌,而是按场景配成几套"套餐"(工具集),
每次只上一套。
为什么不全部端上来?因为每份工具说明书(schema)都要随每次请求发给
LLM、都花 token,可见性必须有人为控制。位于工具体系的可见性层,
被 model_tools.get_tool_definitions 调用。
"""

# 核心工具集:agent 默认装备,全部对 LLM 可见(浏览器不进 core,
# 需要时走 MCP 接外部服务——"能力放边缘"的设计原则)
_CORE_TOOLS = [
    # —— 文件与命令 ——
    "terminal",        # 跑 shell 命令
    "read_file",       # 读文件
    ...
]

套餐登记表是一个普通字典,一眼看懂:

# 所有"套餐"的登记表:名字 → {描述, 包含哪些工具, 还捎带哪些别的套餐}
TOOLSETS: Dict[str, dict] = {
   
    "core": {
   
        "description": "核心工具集 - agent 默认装备",
        "tools": _CORE_TOOLS,
        "includes": [],
    },
    "minimal": {
   
        "description": "最小工具集(适合子代理)",
        "tools": ["terminal", "read_file"],
    },
    "bg": {
   
        "description": "后台任务管理",
        "tools": ["bg_start", "bg_status", "bg_result", "bg_list", "bg_stop"],
    },
    "team": {
   
        "description": "Team 多 agent 协作",
        "tools": ["team_send", "team_inbox", "team_members", ...],
    },
    ...
}

三个值得抄的细节:

1. 子代理给 minimal。派出去干活的分身只带 terminal + read_file——它不需要全副武装,少给工具既省钱又防越权。

2. MCP 是"动态菜单":

    # MCP = 接外部工具服务器的协议。这个套餐是"动态菜单":
    # 固定清单为空,实际工具在连接服务器后现场登记(名字带 mcp__ 前缀,
    # 服务器断线时对应工具自动隐身)
    "mcp": {
   
        "description": "MCP 外部服务器工具(动态发现,通过 check_fn 门控)",
        "tools": [],
    },

外部工具服务器连上时现场登记、断线自动隐身——工具清单跟着现实状态走,不是写死的。

3. 侦察兵有专用只读套餐。Explore 子代理(只看不改的分身)的套餐里全是 read_file / search_files / web_fetch 这类只读工具,从可见性层面就杜绝了它改东西的可能——比"提醒它别改"可靠一百倍。

效果量级

工具从 30 个砍到 10 个,schema 开销立减约三分之二;更重要的是小工具集显著降低模型"选错工具"的概率——省钱和提准是一枚硬币的两面。

小结

  1. 工具 schema 是每轮重发的隐性成本,几十个工具就是几千 token
  2. 套餐化:默认 core、子代理 minimal、场景包 bg/team、MCP 动态登记
  3. 可见性裁剪 = 成本优化 + 权限收窄 + 准确率提升,一石三鸟

下一篇:并行工具调用回喂的坑——Anthropic 凭什么把我拒了 400(附消息转换源码)。


仓库在这,注释全中文,欢迎 Star ⭐:https://github.com/Harvil1/codeAgent

标签:Agent Function Calling 成本优化 Python

目录
相关文章
|
14天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
8067 15
|
13天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
2076 12
|
12天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1798 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
11天前
|
人工智能 编解码 并行计算
MiniMax-H3 一键整合包技术文档:8G 显存运行 AI 漫剧制作 —— 角色替换 / 动作迁移 / 文图生视频部署与调参指南
MiniMax H3 是 MiniMax 开源的全模态视频生成模型,支持文/图/音/视多条件输入,输出最高2K、15秒带双声道音频视频。本文档详述其Int8量化版在8GB显存下的本地一键部署、三段式工作流(EDIT/REPLACE/CONTINUE)、参数调优及常见问题排查。(239字)
|
7天前
|
人工智能 Linux 开发者
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
Codex是OpenAI推出的AI编程智能体,可读取本地项目、理解需求并自动修改代码。支持桌面GUI、命令行(CLI)及VS Code/Cursor插件三种形态,覆盖可视化操作、终端高效开发与编辑器无缝集成场景,助开发者用自然语言驱动编码全流程。(239字)
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
|
26天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork详细介绍:产品核心能力、典型场景、价格及常见问题解答
千问办公是阿里云推出的一站式AI办公平台,主打"不止于对话,更注重交付",依托通义千问旗舰大模型,用户一句话即可完成数据分析、PPT生成、视频剪辑等复杂任务,直接输出可用成果。产品深度打通钉钉生态与企业OA,覆盖桌面端、网页端,提供企业标准版198元/人/月等多档订阅方案,新用户注册即赠2000积分,适配工程师、HR、财务等多职业办公场景,成为能动手干活的"全能AI同事"。
3843 10
|
20天前
|
缓存 IDE Java
【保姆级】Android Studio下载、安装和汉化教程(2026最新)
Android Studio 是 Google 官方推出的免费 Android 应用开发集成环境,基于 IntelliJ IDEA,内置模拟器、调试器、性能分析及 Compose 界面工具,功能全面,文档丰富,是安卓开发首选工具。(239字)
2187 1

热门文章

最新文章