refactor: 系统性移除DACP架构 - 简化框架专注@tool协议
🗑️ 核心清理 - 完全移除DACP服务架构和HTTP模式 - 删除DACPCommand、DACPConfigManager等核心组件 - 清理所有DACP相关文件、测试和文档 - 从CLI移除dacp命令,精简为6大核心锦囊 📁 删除内容 Core: - src/dacp/ - 整个DACP服务目录 - src/lib/core/pouch/commands/DACPCommand.js - src/lib/utils/DACPConfigManager.js Tests: - src/tests/commands/DACPCommand.unit.test.js - src/tests/integration/dacp-integration.test.js - src/tests/e2e/dacp-*-e2e.test.js - src/tests/unit/DACPConfigManager.unit.test.js Scripts & Docs: - scripts/test-*dacp*.js - docs/dacp-*.md - prompt/core/dacp-*.execution.md 🔧 代码清理 CLI: - src/bin/promptx.js: 移除dacp命令和--with-dacp选项 - 帮助信息更新:7大命令→6大核心命令 Core: - src/lib/core/pouch/PouchCLI.js: 移除dacp命令注册 - src/lib/core/pouch/commands/index.js: 清理DACPCommand引用 MCP: - src/lib/mcp/toolDefinitions.js: 移除promptx_dacp工具定义 - src/lib/commands/MCPServerCommand.js: 清理所有DACP方法和引用 - src/lib/commands/MCPStreamableHttpCommand.js: 移除DACP参数映射 Registry: - src/package.registry.json: 自动更新,移除2个DACP execution资源 - package.json: 移除dacp相关npm脚本 📊 架构简化结果 - 资源总数:63个 → 61个 (移除2个DACP execution) - CLI命令:7个 → 6大核心锦囊 - 代码复杂度显著降低,专注核心功能 ✅ 验证通过 - @tool://calculator 计算功能正常: 6 × 7 = 42 - @tool://send-email 邮件工具正常 - MCP Server启动正常 - 所有锦囊命令工作正常 🎯 新架构重点 1. 角色系统 - AI专业能力激活 2. 记忆系统 - 知识学习和回忆 3. @tool协议 - JavaScript工具执行 4. MCP集成 - AI应用连接 💡 技术收益 - 移除HTTP服务复杂度 - 统一@tool协议标准 - 简化维护和扩展 - 提升性能和稳定性 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -1,156 +0,0 @@
|
||||
<execution>
|
||||
<constraint>
|
||||
## 技术和环境限制
|
||||
- **配置依赖性**:真实发送需要用户在~/.promptx/dacp/send_email.json配置邮箱信息
|
||||
- **服务可用性**:需要DACP服务运行在localhost:3002或指定端口
|
||||
- **网络连接要求**:发送真实邮件需要稳定的网络连接和SMTP服务可达性
|
||||
- **邮件服务商限制**:不同服务商有发送频率和内容限制
|
||||
- **协议格式约束**:必须符合DACP协议标准的请求格式
|
||||
</constraint>
|
||||
|
||||
<rule>
|
||||
## 强制执行规则
|
||||
- **服务ID固定**:必须使用"dacp-promptx-service"作为service_id
|
||||
- **action名称固定**:必须使用"send_email"作为action
|
||||
- **必需参数验证**:user_request是必需参数,不能为空
|
||||
- **配置错误处理**:配置缺失或无效时必须向用户说明具体解决方案
|
||||
- **安全信息保护**:不得在日志或响应中暴露用户的邮箱密码
|
||||
</rule>
|
||||
|
||||
<guideline>
|
||||
## 使用指导原则
|
||||
- **智能需求解析**:从用户自然语言中提取收件人、主题、内容等信息
|
||||
- **上下文感知**:根据urgency、recipient_type等上下文调整邮件语气
|
||||
- **友好降级**:无配置时自动使用Demo模式,同时提供配置指导
|
||||
- **错误信息友好化**:将技术错误转化为用户可理解的解决建议
|
||||
</guideline>
|
||||
|
||||
<process>
|
||||
## 邮件发送执行流程
|
||||
|
||||
### Step 1: 需求分析和参数准备
|
||||
```
|
||||
1. 解析用户输入,提取邮件要素(收件人、主题、内容)
|
||||
2. 确定邮件类型和紧急程度
|
||||
3. 构造user_request自然语言描述
|
||||
4. 准备context上下文信息
|
||||
5. 验证所有必需参数完整性
|
||||
```
|
||||
|
||||
### Step 2: DACP服务调用
|
||||
```json
|
||||
// 标准DACP邮件请求格式
|
||||
{
|
||||
"service_id": "dacp-promptx-service",
|
||||
"action": "send_email",
|
||||
"parameters": {
|
||||
"user_request": "用户的自然语言邮件描述",
|
||||
"context": {
|
||||
"urgency": "high|medium|low",
|
||||
"recipient_type": "colleague|superior|client"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Step 3: 配置文件格式要求
|
||||
```json
|
||||
// ~/.promptx/dacp/send_email.json 配置文件格式
|
||||
{
|
||||
"provider": "gmail|outlook|qq|163|126",
|
||||
"smtp": {
|
||||
"user": "your-email@gmail.com",
|
||||
"password": "your-app-password"
|
||||
},
|
||||
"sender": {
|
||||
"name": "Your Name",
|
||||
"email": "your-email@gmail.com"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Step 4: 结果处理和用户反馈
|
||||
```
|
||||
1. 检查响应状态和demo_mode字段
|
||||
2. Demo模式:提供配置指导和创建配置文件的详细说明
|
||||
3. 真实发送:确认发送成功并显示message_id
|
||||
4. 错误处理:解析错误原因并提供具体解决方案
|
||||
5. 向用户反馈执行结果和后续建议
|
||||
```
|
||||
|
||||
### 配置错误处理流程
|
||||
```
|
||||
配置缺失 → 显示配置文件路径和格式 → 指导创建配置
|
||||
配置无效 → 指出具体错误字段 → 提供修复建议
|
||||
认证失败 → 检查密码和服务器设置 → 应用专用密码指导
|
||||
发送失败 → 网络和SMTP检查 → 故障排除建议
|
||||
```
|
||||
|
||||
### 邮件服务商配置指导
|
||||
```
|
||||
Gmail: 需要启用两步验证并生成应用专用密码
|
||||
Outlook: 使用账户密码,确保SMTP已启用
|
||||
QQ/163/126: 需要开启SMTP服务并使用授权码
|
||||
```
|
||||
|
||||
### 配置指导详细说明
|
||||
```
|
||||
📧 DACP邮件服务配置说明
|
||||
|
||||
📍 配置文件位置:~/.promptx/dacp/send_email.json
|
||||
|
||||
📝 完整配置示例:
|
||||
{
|
||||
"provider": "gmail",
|
||||
"smtp": {
|
||||
"user": "your-email@gmail.com",
|
||||
"password": "your-app-password"
|
||||
},
|
||||
"sender": {
|
||||
"name": "Your Name",
|
||||
"email": "your-email@gmail.com"
|
||||
}
|
||||
}
|
||||
|
||||
💡 支持的邮件服务商:gmail, outlook, qq, 163, 126
|
||||
|
||||
🔐 Gmail用户专用设置:
|
||||
1. 进入 Google 账户设置
|
||||
2. 启用两步验证
|
||||
3. 生成应用专用密码
|
||||
4. 使用生成的密码替换 "your-app-password"
|
||||
|
||||
📞 其他服务商设置:
|
||||
- Outlook: 直接使用账户密码
|
||||
- QQ/163/126: 需要开启SMTP服务并使用授权码
|
||||
```
|
||||
</process>
|
||||
|
||||
<criteria>
|
||||
## 邮件发送质量评价标准
|
||||
|
||||
### 功能完整性
|
||||
- ✅ 正确调用DACP邮件服务
|
||||
- ✅ 准确解析用户邮件需求
|
||||
- ✅ 妥善处理配置和发送异常
|
||||
- ✅ 提供完整的配置指导
|
||||
|
||||
### 用户体验质量
|
||||
- ✅ 自然语言交互流畅
|
||||
- ✅ 错误提示友好明确
|
||||
- ✅ 配置指导详细实用
|
||||
- ✅ Demo模式平滑降级
|
||||
|
||||
### 安全合规性
|
||||
- ✅ 不暴露敏感配置信息
|
||||
- ✅ 遵循邮件发送最佳实践
|
||||
- ✅ 用户级配置安全存储
|
||||
- ✅ 符合反垃圾邮件规范
|
||||
|
||||
### 系统稳定性
|
||||
- ✅ 配置缺失时不影响系统运行
|
||||
- ✅ 合理的错误处理和重试机制
|
||||
- ✅ 完整的执行反馈和日志记录
|
||||
- ✅ 多邮件服务商兼容支持
|
||||
</criteria>
|
||||
</execution>
|
||||
@ -1,241 +0,0 @@
|
||||
<execution>
|
||||
<constraint>
|
||||
## DACP服务调用技术限制
|
||||
- **参数格式固定**:必须使用{service_id, action, parameters}三层结构
|
||||
- **服务路由固定**:当前支持的服务ID有限,需要匹配现有服务
|
||||
- **网络依赖**:DACP服务需要独立运行,存在网络调用延迟
|
||||
- **错误传播**:DACP服务错误需要优雅处理,不能中断角色对话
|
||||
- **异步特性**:某些DACP操作可能需要时间,需要合理设置用户期望
|
||||
</constraint>
|
||||
|
||||
<rule>
|
||||
## DACP调用强制规则
|
||||
- **参数完整性**:service_id和action必须提供,parameters.user_request必须包含用户自然语言需求
|
||||
- **服务匹配**:只能调用已注册的DACP服务,不得尝试调用不存在的服务
|
||||
- **错误处理**:DACP调用失败时必须向用户说明原因并提供替代方案
|
||||
- **权限检查**:敏感操作(如发送邮件)需要确认用户授权
|
||||
- **结果验证**:DACP执行结果需要向用户确认,确保符合预期
|
||||
</rule>
|
||||
|
||||
<guideline>
|
||||
## DACP调用指导原则
|
||||
- **需求驱动**:只有当用户明确需要执行操作时才调用DACP,避免过度自动化
|
||||
- **透明化**:向用户说明正在调用什么服务执行什么操作,保持透明
|
||||
- **渐进式**:复杂任务拆分为多个简单的DACP调用,逐步完成
|
||||
- **用户确认**:重要操作前征得用户同意,特别是涉及外部通信的操作
|
||||
- **上下文传递**:充分利用context参数传递任务相关的背景信息
|
||||
</guideline>
|
||||
|
||||
<process>
|
||||
## DACP服务调用标准流程
|
||||
|
||||
### Step 1: 需求识别与action选择
|
||||
```mermaid
|
||||
graph TD
|
||||
A[用户需求] --> B{操作类型判断}
|
||||
B -->|数学计算/表达式| C[calculate action]
|
||||
B -->|邮件发送/生成| D[send_email action]
|
||||
B -->|纯咨询/知识| E[直接回答,不调用DACP]
|
||||
B -->|其他执行需求| F[说明演示服务限制]
|
||||
|
||||
C --> G[dacp-promptx-service]
|
||||
D --> G
|
||||
E --> H[提供专业建议]
|
||||
F --> I[建议未来扩展或手动处理]
|
||||
```
|
||||
|
||||
### Step 2: 参数构建
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A[用户需求] --> B[service_id识别]
|
||||
A --> C[action确定]
|
||||
A --> D[user_request提取]
|
||||
A --> E[context构建]
|
||||
|
||||
B --> F[DACP参数对象]
|
||||
C --> F
|
||||
D --> F
|
||||
E --> F
|
||||
```
|
||||
|
||||
### Step 3: 服务调用与结果处理
|
||||
```mermaid
|
||||
graph TD
|
||||
A[构建DACP参数] --> B[调用promptx_dacp工具]
|
||||
B --> C{调用结果}
|
||||
C -->|成功| D[解析execution_result]
|
||||
C -->|失败| E[错误处理和说明]
|
||||
D --> F[向用户展示结果]
|
||||
E --> G[提供替代方案]
|
||||
F --> H[确认用户满意度]
|
||||
G --> H
|
||||
```
|
||||
|
||||
## 当前可用DACP演示服务
|
||||
|
||||
### DACP PromptX演示服务 (dacp-promptx-service)
|
||||
|
||||
⚠️ **重要说明**:这是协议演示服务,包含calculator和email两个演示功能
|
||||
|
||||
**服务信息**:
|
||||
```
|
||||
service_id: "dacp-promptx-service"
|
||||
endpoint: "http://localhost:3002/dacp"
|
||||
type: "demo"
|
||||
description: "DACP协议验证平台,展示核心协议能力"
|
||||
```
|
||||
|
||||
#### 1. 计算器演示 (calculate)
|
||||
```
|
||||
action: "calculate"
|
||||
适用场景:数学计算、表达式求值、数值处理
|
||||
特性:中文自然语言解析、运算符智能转换
|
||||
|
||||
示例调用:
|
||||
{
|
||||
"service_id": "dacp-promptx-service",
|
||||
"action": "calculate",
|
||||
"parameters": {
|
||||
"user_request": "计算 25 加 37 乘 3",
|
||||
"context": {"precision": "high"}
|
||||
}
|
||||
}
|
||||
|
||||
返回结果:
|
||||
{
|
||||
"expression": "25 + 37 * 3",
|
||||
"result": 136,
|
||||
"formatted_result": "25 + 37 * 3 = 136",
|
||||
"calculation_type": "arithmetic"
|
||||
}
|
||||
```
|
||||
|
||||
#### 2. 邮件演示 (send_email)
|
||||
```
|
||||
action: "send_email"
|
||||
适用场景:AI邮件生成、专业沟通、团队协作
|
||||
特性:上下文感知、智能内容生成、专业格式化
|
||||
|
||||
示例调用:
|
||||
{
|
||||
"service_id": "dacp-promptx-service",
|
||||
"action": "send_email",
|
||||
"parameters": {
|
||||
"user_request": "给张三发送会议提醒邮件",
|
||||
"context": {
|
||||
"urgency": "high",
|
||||
"recipient_type": "colleague"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
返回结果:
|
||||
{
|
||||
"email_content": {
|
||||
"subject": "会议提醒...",
|
||||
"body": "专业邮件内容...",
|
||||
"format": "html"
|
||||
},
|
||||
"metadata": {...}
|
||||
}
|
||||
```
|
||||
|
||||
## DACP调用时机判断矩阵
|
||||
|
||||
| 用户需求特征 | 是否调用DACP | 推荐action | 注意事项 |
|
||||
|-------------|-------------|----------|----------|
|
||||
| 包含数字计算表达式 | ✅ | calculate | 支持中文自然语言:"25加37乘3" |
|
||||
| 要求发送/写邮件 | ✅ | send_email | 确认收件人和紧急程度 |
|
||||
| 数学运算求值 | ✅ | calculate | 自动转换运算符:加乘减除→+*-÷ |
|
||||
| 生成专业邮件内容 | ✅ | send_email | 利用context传递场景信息 |
|
||||
| 纯咨询问题 | ❌ | - | 直接提供建议和知识 |
|
||||
| 需要外部API | ❌ | - | 当前演示服务不支持 |
|
||||
| 日程安排 | ❌ | - | 演示服务已移除calendar功能 |
|
||||
| 文档创建 | ❌ | - | 演示服务已移除document功能 |
|
||||
|
||||
## 最佳实践模板
|
||||
|
||||
### 调用前确认模板
|
||||
```
|
||||
我准备为您[具体操作],将调用[服务名称]服务。
|
||||
|
||||
操作详情:
|
||||
- 服务:[service_id]
|
||||
- 操作:[action]
|
||||
- 需求:[user_request]
|
||||
|
||||
请确认是否继续?
|
||||
```
|
||||
|
||||
### 调用中透明化模板
|
||||
```
|
||||
正在调用DACP服务执行您的需求...
|
||||
|
||||
🔄 服务:[service_id]
|
||||
📋 操作:[action]
|
||||
⏱️ 请稍候...
|
||||
```
|
||||
|
||||
### 调用后结果展示模板
|
||||
```
|
||||
✅ DACP服务执行完成!
|
||||
|
||||
📊 执行结果:[execution_result]
|
||||
📈 性能评估:[evaluation]
|
||||
📋 应用指南:[applied_guidelines]
|
||||
|
||||
结果是否符合您的预期?如需调整请告诉我。
|
||||
```
|
||||
|
||||
## 错误处理标准流程
|
||||
|
||||
### 常见错误类型与处理
|
||||
```mermaid
|
||||
graph TD
|
||||
A[DACP调用失败] --> B{错误类型}
|
||||
B -->|服务不可用| C[说明服务状态,建议稍后重试]
|
||||
B -->|参数错误| D[重新解析需求,调整参数]
|
||||
B -->|权限不足| E[说明权限要求,请用户确认]
|
||||
B -->|网络超时| F[提供离线替代方案]
|
||||
|
||||
C --> G[记录问题并提供manual方案]
|
||||
D --> H[重新构建参数再次尝试]
|
||||
E --> I[等待用户授权]
|
||||
F --> G
|
||||
```
|
||||
|
||||
### 降级处理策略
|
||||
- **calculate action失败** → 提供计算思路、步骤分解和数学公式
|
||||
- **send_email action失败** → 生成邮件模板、提供写作建议和发送指导
|
||||
- **DACP服务整体不可用** → 说明演示服务状态,提供手动替代方案
|
||||
- **网络连接问题** → 检查localhost:3002服务状态,建议重启演示服务
|
||||
</process>
|
||||
|
||||
<criteria>
|
||||
## DACP调用质量标准
|
||||
|
||||
### 调用准确性
|
||||
- ✅ 服务选择与用户需求高度匹配
|
||||
- ✅ 参数构建完整准确
|
||||
- ✅ 错误处理及时有效
|
||||
- ✅ 结果解释清晰易懂
|
||||
|
||||
### 用户体验
|
||||
- ✅ 调用前充分说明和确认
|
||||
- ✅ 调用中保持透明化沟通
|
||||
- ✅ 调用后验证用户满意度
|
||||
- ✅ 失败时提供替代方案
|
||||
|
||||
### 技术规范
|
||||
- ✅ 严格遵循DACP协议格式
|
||||
- ✅ 合理使用context参数
|
||||
- ✅ 妥善处理异步特性
|
||||
- ✅ 遵循最小权限原则
|
||||
|
||||
### 服务效率
|
||||
- ✅ 避免不必要的服务调用
|
||||
- ✅ 合理组合多个服务调用
|
||||
- ✅ 充分利用缓存和上下文
|
||||
- ✅ 及时反馈执行进度
|
||||
</criteria>
|
||||
</execution>
|
||||
Reference in New Issue
Block a user