第二种画法已应用到 S03 正文,并在 S04、S05 中延续文件工具的可见归属。这里保留修改前的图与试稿快照,记录选择过程;两张图表达同一个 S03 系统,配色都以 S02 为参照。

采用前的画法:文件工具不再单独出现

图 2 · S03:在执行入口加权限判断紫色是新增权限层;原工具、执行模块、停止动作与回传继续保留。图 2 · S03:在执行入口加权限判断紫色是新增权限层;原工具、执行模块、停止动作与回传继续保留。对话历史保存问题与结果请求模型system + tools判断响应是否 tool_use分发并执行handlers[name]回传结果按调用 ID 配对TOOLSBash + 四个文件工具本轮结束否则权限检查check_permission允许拒绝结果执行 / 拒绝结果追加 → 再问模型
颜色与线型
  • 蓝色:已有且保留
  • 橙色:修改/职责迁移(本图未用)
  • 紫色:真正新增
  • 红色虚线:真实移除(本图未用)
  • 灰色实线框:存储/辅助节点(本图未用)
  • 灰色虚线框:细节合并,功能保留(本图未用)
  • 灰字:来源/补充说明
  • 灰色虚线:关联,不是执行回环(本图未用)
  • 实线箭头:流程/数据方向
旧图快照:TOOLS 写着 Bash 与四个文件工具,但读者看不到这些工具的实现归属;文件工具在 S02 中原有的框不再出现。左右滑动查看全图。

这里的主要问题:TOOLS 只保存工具说明与参数 schema。实际工作由分发表选择本地函数来完成,所以“文件工具合并到 TOOLS”容易混淆定义与执行。

已采用的试稿:保留文件工具,给权限判断增加空间

S03 试稿:保留文件工具,展开权限入口蓝色保留工具定义与文件实现;紫色权限检查插在实际执行之前。S03 试稿:保留文件工具,展开权限入口蓝色保留工具定义与文件实现;紫色权限检查插在实际执行之前。对话历史保存问题与结果请求模型system + tools判断响应是否 tool_use分发并执行handlers[name]回传结果按调用 ID 配对TOOLS名称 / 描述 / schema本轮结束否则执行 / 拒绝结果追加 → 下一轮请求文件工具实现read / write / edit / glob权限检查check_permission允许拒绝结果TOOLS 提供说明;分发表选择实现。虚线是实现关联,不是执行顺序。
颜色与线型
  • 蓝色:已有且保留
  • 橙色:修改/职责迁移(本图未用)
  • 紫色:真正新增
  • 红色虚线:真实移除(本图未用)
  • 灰色实线框:存储/辅助节点(本图未用)
  • 灰色虚线框:细节合并,功能保留(本图未用)
  • 灰字:来源/补充说明
  • 灰色虚线:关联,不是执行回环
  • 实线箭头:流程/数据方向
试稿:S02 的八个已有节点保持原位置并用蓝色表示;紫色权限检查加入下方。灰色虚线仍表示执行入口与文件工具实现的关联。允许执行,拒绝直接回传,回环仍在最下方。左右滑动查看全图。
图中位置表示什么
TOOLS → 请求模型模型读取工具名称、描述和参数约定
分发并执行用工具名查 TOOL_HANDLERS,调用对应函数
文件工具实现run_read、run_write、run_edit、run_glob;虚线说明它们是分发可用的实现,不是一条额外执行循环
权限检查放在实际调用之前,允许与拒绝仍各自生成工具结果

Bash 也继续由同一个分发表处理。为了保留 S02 的原图结构,这次只保留原有文件工具框,没有另加一个 Bash 节点;所有工具的函数内部都放在代码讲解中。

这张试稿将原来的 760 × 350 画布扩为 760 × 450。变化主要是增加一行空间,已有节点保持可辨认的位置。

这次比较的三个问题

  1. 文件工具保持可见后,是否更容易认出 S02 到 S03 的连续关系?
  2. 是否能直接区分“工具定义给模型看”和“工具实现由程序执行”?
  3. 多出的一行空间,是否比省掉文件工具框更容易阅读?

最终选择是保留这个能力框,并应用到 S03–S05。代价是画布增高与权限路径变长;收益是能力归属和章节连续性更清楚。这个选择不要求所有节点永久固定坐标,后续仍可以按清楚的模块边界分组和有限折叠。

返回 S03 正文