乐于分享
好东西不私藏

你的AI装了一堆工具,为什么还在"凭嘴回答"?

你的AI装了一堆工具,为什么还在"凭嘴回答"?

你的AI装了一堆工具,为什么还在"凭嘴回答"?

问题从来不是工具不够,是它压根不知道该用哪个。


01 我遇到最尴尬的一件事

我本地跑的那套AI工作流,说出来够唬人的——

长期记忆文件、技能库、跨平台搜索、浏览器自动化、小红书MCP、爬虫、出图、Zep/Letta记忆服务、GitHub、Docker、一堆API……

但真到干活的时候,画风是这样的:

我说:"帮我查一下某个赛道最近的资料。"

它回:"好的,我从以下几个方面帮您分析……"

然后它开始纯靠常识往外蹦字。

我不是没有工具。我是工具全装了,AI根本没调度起来。


02 最大误区:工具装了,不等于AI会用

现在大家都在往Claude Code、Codex、Cursor上接工具。

Web Search、Browser-Use、Scrapling、xhs-mcp、TikHub、Zep、Letta、GitHub CLI、各种MCP……

但都跳过了一个关键问题:

工具"挂上去了",跟"AI知道什么时候该用它",是两码事。

更别说让它判断——

  • 这活儿该调哪个工具?
  • 哪几个工具得串起来用?
  • 谁先上谁后上?
  • 挂了怎么办?
  • 哪些事儿可以自己干了再汇报,哪些必须先请示?

这些没想清楚,工具越多越抓瞎。

最后就是:你攒了10把刀,它切菜还是用手撕。


03 真正缺的那一层:运行时路由

我后来想明白了一件事:问题不在某个工具不好使,是中间缺了一层。

用户指令进来,不应该直接丢给模型"自由发挥",而应该先过一道判断:

指令 → 识别任务 → 拆解能力需求 → 匹配工具 → 判断风险 → 调用/确认 → 失败降级 → 输出

我把这层叫运行时工具路由层

它就干一件事:搞清楚当前任务到底需要什么能力。

举个实际例子——

用户说:"查一下最近小红书上儿童水杯的用户痛点。"

你以为只是一句"搜索"?错了。这句话背后藏着5个能力需求:

  1. 小红书平台检索
  2. 笔记/评论/标题/发布时间的内容抓取
  3. 从用户原话里提炼痛点的归纳能力
  4. 按你习惯的格式输出的偏好调取
  5. 参考你之前做过的同类分析的经验回溯

系统不该只调一个搜索了事。

它应该先拆能力清单,再去工具池里找谁能干这活儿


04 别写死"搜索=某某工具"

我一开始也走过弯路——给每个工具写死触发规则:

  • 搜索 → Agent Reach
  • 开网页 → Browser-Use
  • 偏好 → Zep
  • 小红书 → xhs-mcp
  • 出图 → Agnes AI

短期没问题。长期一定崩。

因为工具会不断迭代替换。今天用Agent Reach,明天换Perplexity,后天加TikHub,后面还有视频解析、飞书、Notion……

每来一个新工具就改一遍总规则,越改越乱。

所以正确姿势不是"任务→工具名",而是:

任务 → 能力需求 → 谁有这能力就谁来

打个比方——公司里不是"所有设计活都找张三",而是"这活儿需要UI+动效+品牌能力,谁有谁来"。

工具调度也是同一个逻辑。


05 我的解法:工具注册表 + 路由规则

我把方案拆成了两块:

一块叫runtime_tool_router,负责判断:

  • 用户要干嘛?
  • 需要哪些能力?
  • 哪些能自动调?哪些必须先问?
  • 挂了怎么降级?
  • 什么时候查偏好?什么时候查经验?

另一块叫tool_registry,负责记录:

  • 当前有啥工具
  • 每个工具有啥能力
  • 触发词是什么
  • 风险等级
  • 挂了降级给谁
  • 当前能不能用

每个工具不是写个名字就完事,得有一张"工具身份证"。

比如Agent Reach这张卡长这样:

能力标签: cross_platform_search / link_discovery / competitor_search

适用场景: 跨平台搜索、找资料源、找竞品、找热点

触发词: 全网、跨平台、找链接、竞品、对标

风险等级: 只读,低风险,可自动调用

失败降级: WebSearch → Browser-Use → Scrapling

再看Browser-Use这张卡:

能力标签: browser_automation / dynamic_page_read / web_detail_extract

适用场景: 打开网页、读取动态页面、翻页、看评论、看价格

风险分级:

  • 只读浏览 → 可自动调用
  • 涉及登录/发布/提交 → 必须人工确认

失败降级: WebFetch → Jina Reader → Scrapling

新工具进来怎么办?补一张卡,结束。 整个路由体系不用动。


06 自动调用 ≠ 乱来

一说"AI自动调工具",有人就慌:它会不会乱删文件?乱push代码?乱花API钱?

所以必须划清边界。

低风险、只读、可逆的——直接干,别墨迹:

  • 搜公开网页
  • 打开你给它的URL
  • 抓公开内容
  • 读本地文件
  • 查记忆和经验
  • 出草稿和提示词

用户都说"查一下"了,你还问"需要我帮您查吗"——这不是谨慎,这是添堵。

高风险、不可逆的——必须先过你这一关:

  • 删/覆盖文件
  • Git commit / push
  • 发布内容
  • 登录账号
  • 付费操作
  • 改数据库、Docker核心配置

好的Agent:该主动时不犹豫,该请示时不擅作主张。


07 一句"请你智能调用工具"为什么没用?

很多人觉得,我在prompt里加一句"请你根据任务智能调用工具"就够了。

不够。远远不够。

因为这句话太抽象了。AI需要的是可执行规则,不是口号。

可执行规则长什么样?

用户说"查一下" → 识别为搜索任务 → 提取能力:web_search → 查注册表 → 匹配Agent Reach/WebSearch → 找到链接后需要web_detail_extract → 匹配Browser-Use → 涉及用户格式偏好 → 匹配Zep → 涉及同类经验 → 匹配Letta → 输出

这才叫可执行

否则AI只会说"好的我注意",然后下次照旧纯嘴输出。


08 五层架构,各管各的

我现在跑的体系分五层:

第一层 Memory——用户偏好、行为规则、错误日志、长期上下文

第二层 Skills——写作、出图、搜索、商业分析、工作流、开发

第三层 Tool Registry——工具能力、触发词、降级方案

第四层 Runtime Router——任务判断、能力匹配、风险确认、失败降级

第五层 Reference——具体工具的安装/调用/限制/状态

每层只干自己的活儿。新工具加入,动注册表那一层就行,其他不用碰。


09 别把所有规则塞进一个超大prompt

我以前也犯这个错:恨不得把所有规则写进一个巨型prompt。

结果?上下文浪费,模型分不清主次。

正确做法是按需加载——

  • 普通聊天,不用加载工具说明
  • 写文章,不用读Git工作流
  • 出图,不用管爬虫配置
  • 查小红书,不用看出图模板
  • 改代码,不用读公众号排版规则

开机只读核心规则,干活时再按需读取。


10 这套东西解决的不是"一个工具不好用"

短期看,它解决的是:AI为什么不调工具?

长期看,它解决的是:工具越来越多,Agent怎么保持秩序?

  • 没有注册表 → 工具越多越乱
  • 没有路由层 → AI不知道什么时候该动手
  • 没有风险分级 → 要么啥都不敢干,要么啥都敢干
  • 没有降级方案 → 工具一挂,任务就死
  • 没有长期记忆 → 每次都不知道你喜欢什么格式
  • 没有经验回溯 → 同样的坑次次踩

本质上,这是把AI从"聊天助手"推进到"工作系统"。

聊天助手的逻辑:你问一句,我答一句。

工作系统的逻辑:你给目标,我拆任务、调工具、查记忆、借经验、跑流程、交结果。


11 如果你也在折腾AI工作流

别一上来就疯狂接工具。先干三件事:

第一,盘清楚你现有的工具。 搜索、浏览器、爬虫、出图、记忆、代码、平台、自动化——先分个类。

第二,给每个工具打能力标签。 别光写名字。写清楚:它能解决什么需求?适合什么场景?挂了谁顶上?

第三,写一份运行时路由规则。 哪些任务主动调工具、哪些必须确认、失败怎么降级、什么时候查记忆、什么时候查经验。

做到这三步,你的AI才真正像一个能干活的助理。

否则,你只是有一堆工具,但它不会用。


写在最后

以前觉得AI Agent的命门是模型能力。

跑了几个月才发现,模型只是底座。

真正拉开差距的,是这几件事:

记忆体系 · 技能体系 · 工具注册 · 运行时路由 · 风险分级 · 经验沉淀

工具越来越多以后,最扎心的不是"我没有工具"。

而是——我有工具,但它不知道什么时候该用哪个。

下一阶段AI Agent的竞争,不是谁接的工具多,是谁的调度体系更像一个真正的工作系统

能被正确调用的工具,才有价值。


觉得有用?转给你那个工具装了一堆、但AI还在靠嘴输出的朋友。

相关学习资料