工具发现与使用的四阶段认知流程设计
🎯 设计背景
PromptX当前面临工具资源类型区分的架构挑战:
- 提示词资源(.md):AI学习消化,获得能力
- 代码资源(.js):AI调用执行,产生动作
传统方案需要重构整个资源架构,成本高、风险大。
💡 解决方案:文档驱动的工具认知流程
采用”说明书优先”的设计理念,通过最小化改动实现优雅的类型区分。
核心原则
- 文档驱动发现 – 只发现和展示
.tool.md文件 - 学习后使用 – AI必须先学习工具说明书,再调用工具
- 源码定位 – 通过
<source>标签指向实际可执行代码 - 认知缓存 – 利用AI上下文作为工具知识缓存
🔄 四阶段认知流程
阶段1:工具发现
promptx_welcome # 展示可用工具列表
输出示例:
🔧 项目工具
1. calculator - 数学计算工具,支持基本四则运算
2. image-processor - 图像处理工具,支持缩放、裁剪、滤镜
3. data-analyzer - 数据分析工具,支持统计和可视化
阶段2:学习理解(按需触发)
promptx_learn @tool://calculator
AI行为:
- 阅读工具的完整说明文档
- 理解功能、参数、使用方法
- 获取源码位置信息(
<source>标签) - 缓存工具知识到当前对话上下文
阶段3:上下文检查
AI自主判断:
- 检查当前对话中是否已学习过该工具
- 如果已有工具知识,跳过学习步骤
- 避免重复学习同一工具
阶段4:工具调用
promptx_tool {
"tool_resource": "@file://tools/calculator.tool.js",
"parameters": {"operation": "add", "a": 25, "b": 37}
}
AI行为:
- 使用从说明书中获得的源码位置
- 传递正确的参数格式
- 处理执行结果
📋 工具说明书标准格式
# Calculator Tool
> 数学计算工具,支持基本四则运算和高级数学函数
## 功能描述
提供加减乘除、幂运算、三角函数等数学计算能力,适用于各种数值计算场景。
## 参数说明
- `operation`: 运算类型 (add, subtract, multiply, divide, power, sin, cos, tan)
- `a`: 第一个操作数 (number)
- `b`: 第二个操作数 (number, 单参数运算时可选)
## 使用示例
```json
{"operation": "add", "a": 25, "b": 37}
{"operation": "power", "a": 2, "b": 8}
{"operation": "sin", "a": 1.57}
返回格式
{"result": 62, "operation": "add", "operands": [25, 37]}
@file://tools/calculator.tool.js
“`
🌟 设计优势
🧠 认知符合性
- 先理解后使用 – 符合人类使用工具的认知模式
- 按需学习 – 只学习当前任务需要的工具
- 避免重复 – 已学习的工具不需要重复阅读
🏗️ 架构优雅性
- 职责分离 – welcome负责发现,learn负责理解,tool负责执行
- 最小改动 – 无需重构现有资源架构
- 向后兼容 – 现有工具只需添加说明文档
🔧 实现友善
- 缓存友善 – AI上下文天然缓存工具知识
- 错误减少 – 先学习再使用,减少参数错误
- 位置灵活 – 源码可以在任何地方(本地、网络、包内)
🚀 实施计划
Phase 1: 基础设施
- 修改
WelcomeCommand只发现.tool.md文件 确保promptx_learn支持@tool://协议<input type="checkbox" disabled="" aria-required="false" aria-invalid="false" aria-label="设计 “ 标签解析机制 checklist item” class=”TaskListItem-module__taskStatusCheckbox–ANT4s prc-Checkbox-Input-mxggT prc-Checkbox-Checkbox-gIwWX” value=”” aria-checked=”false”> 设计<source>标签解析机制
To pick up a draggable item, press the space bar.
While dragging, use the arrow keys to move the item.
Press space again to drop the item in its new position, or press escape to cancel.
Phase 2: 标准化
- 制定工具说明书标准格式 为现有工具创建说明文档 更新工具开发指南
To pick up a draggable item, press the space bar.
While dragging, use the arrow keys to move the item.
Press space again to drop the item in its new position, or press escape to cancel.
Phase 3: 测试验证
- 端到端流程测试 性能和缓存效果评估 用户体验优化
To pick up a draggable item, press the space bar.
While dragging, use the arrow keys to move the item.
Press space again to drop the item in its new position, or press escape to cancel.
🎯 预期效果
- 开发者体验:必须先写文档才能被发现,促进工具文档化
- AI使用体验:理解工具后再使用,调用更准确
- 架构清晰度:职责分离明确,扩展性强
- 维护成本:最小改动实现最大效果
📚 相关资源
- DPML 资源协议框架
- PromptX 工具架构设计
- 工具开发最佳实践
设计理念:让AI像人一样,先学习工具说明书,再正确使用工具。
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END






















- 最新
- 最热
只看作者🎯 部分实现 - Manual协议奠定基础
在分支
feature tool-prompts-and-cognitive-flow中,我们为四阶段认知流程奠定了重大基础:已实现部分
1. 工具文档分离(Manual协议)- ✅ 工具代码:
*.tool.js→@tool: tool-name- ✅ 工具手册:
*.manual.md→@manual: tool-name- ✅ 通过metadata关联两者
2. 强制文档先行机制
更新了
promptx_tool的提示词:- 🚫 禁止在不了解工具的情况下调用
- ✅ 必须先通过
@manual:查看说明书- 📖 提供清晰的使用引导和错误示例
与四阶段流程的对应- 发现阶段 - 通过
promptx_welcome展示工具- 学习阶段 - 通过
@manual:协议阅读说明书 ✅- 验证阶段 - AI确认已理解工具功能 ✅
- 执行阶段 - 使用
promptx_tool调用工具 ✅
下一步计划- 在welcome中展示可用的manual资源 实现工具使用的上下文缓存 完善工具发现的智能推荐 To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.
这次实现解决了最核心的问题:确保AI在使用工具前必须先理解工具。
🎯 第四步:AI基于说明书的智能工具调用
核心机制设计
AI读取工具说明书后,根据
<identity>组件中描述的@resource reference来传入promptx_tool调用工具。关键流程链路 >Learn: promptx_learn @tool: text-analyzer Learn->>AI: 返回完整说明书内容 Note over AI: 解析组件中的@tool: 引用 AI->>Tool: promptx_tool调用,传入@tool: text-analyzer Tool->>Sandbox: 基于@resource定位.tool.js文件 Sandbox->>Tool: 执行结果 Tool->>AI: 返回工具输出">
📋 第三步:Welcome工具发现 - 项目级说明书激活
当前问题分析
目前welcome发现的工具存在严重问题:
核心矛盾识别
这体现了Issue #117提到的根本性矛盾:
解决方案设计(基于奥卡姆剃刀原则)
修改WelcomeCommand工具发现逻辑
🔧 鲁班修正:工具说明书创建规范
第一步:鲁班角色职责 - 必须附赠工具说明书
按照四阶段工具认知流程,鲁班开发完工具后必须创建对应的
.tool.md说明书文件。这是整个流程的基础。说明书文件命名规范