news 2026/5/4 8:41:54

工具即双手 —— 从 Bash 到 Tool Dispatch Map

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
工具即双手 —— 从 Bash 到 Tool Dispatch Map

第三篇:工具即双手 —— 从 Bash 到 Tool Dispatch Map

s01 说"一个 bash 就够了",但没人真的只用 bash 写代码。


全栈工程师 vs. 全栈工具

你说"帮我读一下 config.py 的第 10 行到第 20 行",如果 Agent 只有一个 bash 工具,它得敲:sed -n '10,20p' config.py。这当然可以。但就像你可以用螺丝刀钉钉子,但有锤子的话为什么要用螺丝刀?

这就是 s02 的核心进化:从"一个万能工具"到"一套专用工具"

Tool Dispatch Map

s02 的核心创新是一张映射表:

TOOL_HANDLERS={"bash":lambda**kw:run_bash(kw["command"]),"read_file":lambda**kw:run_read(kw["path"],kw.get("limit")),"write_file":lambda**kw:run_write(kw["path"],kw["content"]),"edit_file":lambda**kw:run_edit(kw["path"],kw["old_text"],kw["new_text"]),}

一个函数名到处理函数的直接映射。没有 if-else 森林。当模型返回工具调用时:

handler=TOOL_HANDLERS.get(block.name)output=handler(**block.input)ifhandlerelsef"Unknown tool:{block.name}"

两行代码,路由了一切。想加新工具?加一行字典条目就行。

专有工具的精妙之处

read_file 比 bash cat 好在哪里?

  1. 安全边界:safe_path() 阻止路径穿越
  2. 输出控制:limit 参数 + 50000 字符截断
  3. 友好报错:异常被捕获为字符串
  4. 语义精准:模型知道"我在读文件"

那个 safe_path 函数:

defsafe_path(p:str)->Path:path=(WORKDIR/p).resolve()ifnotpath.is_relative_to(WORKDIR):raiseValueError(f"Path escapes workspace:{p}")returnpath

永远、永远、永远不要相信模型的输入。

Agent Loop 没有变

defagent_loop(messages:list):whileTrue:response=client.messages.create(...)messages.append(response.content)ifresponse.stop_reason!="tool_use":returnforblockinresponse.content:ifblock.type=="tool_use":handler=TOOL_HANDLERS.get(block.name)output=handler(**block.input)messages.append(tool_result)

和 s01 相比,唯一的变化就是把 run_bash 换成了 TOOL_HANDLERS.get。

这就是扩缩性的全部秘密。你不改核心循环。你只改工具注册表。

如果说 Agent Loop 是操作系统内核,那 TOOL_HANDLERS 就是系统调用表。

从 4 个工具到 16 个工具

s02 只有 4 个工具。到了 s12,同一个 pattern 被扩展到了 16 个——基础工具、任务工具、worktree 工具、事件工具。但核心循环还是那几行,没变。

下一篇:TodoManager —— 一个让模型自己写 TODO List 的工具,以及一个讨人厌的提醒器。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 8:41:36

显卡驱动深度清理终极指南:DDU工具高效使用全解析

显卡驱动深度清理终极指南:DDU工具高效使用全解析 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller …

作者头像 李华
网站建设 2026/5/4 8:40:30

Free Dictionary API 多语言词典查询服务深度解析与技术实现

Free Dictionary API 多语言词典查询服务深度解析与技术实现 【免费下载链接】freeDictionaryAPI There was no free Dictionary API on the web when I wanted one for my friend, so I created one. 项目地址: https://gitcode.com/gh_mirrors/fr/freeDictionaryAPI 在…

作者头像 李华
网站建设 2026/5/4 8:28:58

基于WebSocket与CDP协议实现本地IDE与云端浏览器自动化交互

1. 项目概述:连接本地IDE与云端浏览器的桥梁最近在折腾一个很有意思的项目,叫cursor-browser-bridge。简单来说,它就像是在你的本地代码编辑器(比如 Cursor)和云端浏览器(比如 Chrome)之间&…

作者头像 李华
网站建设 2026/5/4 8:23:04

Python AI模型训练速度提升300%:从NumPy到CUDA的7步加速法

更多请点击: https://intelliparadigm.com 第一章:Python AI模型训练速度提升300%:从NumPy到CUDA的7步加速法 在现代深度学习实践中,CPU上的纯NumPy训练常成为性能瓶颈。将计算密集型操作迁移至GPU,配合内存优化与内核…

作者头像 李华