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:
sean
2025-06-28 14:26:25 +08:00
parent 40e0c01c59
commit b18983bdac
29 changed files with 196 additions and 4792 deletions

View File

@ -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>

View File

@ -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>