Files
PromptX/prompt/core/dacp-service-calling.execution.md
Sean 2954cd5354 Staging (#71)
* Develop (#66)

* 重构ActionCommand和LearnCommand,更新DPMLContentParser和SemanticRenderer的导入路径,确保模块结构一致性。删除不再使用的DPMLContentParser和SemanticRenderer文件,优化代码结构,提升可维护性。

* 重构PromptX资源协议系统,采用极简两层协议架构,删除不必要的语义层,优化路径解析和资源加载流程。引入AI协作优化,支持直接生成完整协议路径,提升系统性能和用户体验。整体架构简化60%,实现零配置启动,显著降低内存占用和启动时间。

* optimize:优化女娲提示词

* Optimize:更新记忆策略文档,增加角色专业记忆的独特价值和工作流程,强调角色记忆与客户端记忆的差异,优化记忆引导话术和决策规则,以提升用户对专业记忆系统的理解和应用。

* feature:增加 Sean 角色

* optimize:优化记忆格式化逻辑,确保完整记忆内容不被截断,同时更新工具定义中的描述,增强用户对记忆回想器的理解和使用指导。

* feat: 添加DACP服务支持,允许通过命令行调用DACP专业服务,增强AI角色的执行能力,同时更新相关依赖和工具定义。

* feat: 在MCPServerCommand和MCPStreamableHttpCommand中添加'promptx_dacp'参数映射,同时在DACPCommand中优化参数处理逻辑,以支持数组参数的正确解析。

* feat: 更新DACP演示服务,重命名服务和描述,简化功能,删除不必要的日历和文档操作,增强演示效果。同时,优化了API接口和README文档,确保用户更易于理解和使用。

* feat: 添加DACP邮件发送功能,支持真实发送与Demo模式,增强邮件发送的配置管理和错误提示,优化用户体验。

* feat: 更新女娲和Sean角色文档,增强角色身份、核心特质和决策框架的描述,优化内容结构,提升用户理解和使用体验。同时,更新产品哲学知识体系,明确矛盾驱动和简洁性原则的应用。

* Add product management submodule

* fix: 修复 recall 和 learn 的 bug

* refactor: 把 hello 改成 welcome

* feat: 添加DACP服务启动脚本和测试命令,更新相关依赖,优化配置文件路径处理

* fix: 更新pnpm-lock.yaml以匹配DACP依赖,解决CI中--frozen-lockfile的错误

* 更新DACP白皮书的更新日期至2025-01-19;在DACPConfigManager中优化配置管理,支持项目级和用户级配置的优先级处理,增强错误提示信息,更新相关方法以支持异步操作。

* Develop (#70)

* 重构ActionCommand和LearnCommand,更新DPMLContentParser和SemanticRenderer的导入路径,确保模块结构一致性。删除不再使用的DPMLContentParser和SemanticRenderer文件,优化代码结构,提升可维护性。

* 重构PromptX资源协议系统,采用极简两层协议架构,删除不必要的语义层,优化路径解析和资源加载流程。引入AI协作优化,支持直接生成完整协议路径,提升系统性能和用户体验。整体架构简化60%,实现零配置启动,显著降低内存占用和启动时间。

* optimize:优化女娲提示词

* Optimize:更新记忆策略文档,增加角色专业记忆的独特价值和工作流程,强调角色记忆与客户端记忆的差异,优化记忆引导话术和决策规则,以提升用户对专业记忆系统的理解和应用。

* feature:增加 Sean 角色

* optimize:优化记忆格式化逻辑,确保完整记忆内容不被截断,同时更新工具定义中的描述,增强用户对记忆回想器的理解和使用指导。

* feat: 添加DACP服务支持,允许通过命令行调用DACP专业服务,增强AI角色的执行能力,同时更新相关依赖和工具定义。

* feat: 在MCPServerCommand和MCPStreamableHttpCommand中添加'promptx_dacp'参数映射,同时在DACPCommand中优化参数处理逻辑,以支持数组参数的正确解析。

* feat: 更新DACP演示服务,重命名服务和描述,简化功能,删除不必要的日历和文档操作,增强演示效果。同时,优化了API接口和README文档,确保用户更易于理解和使用。

* feat: 添加DACP邮件发送功能,支持真实发送与Demo模式,增强邮件发送的配置管理和错误提示,优化用户体验。

* feat: 更新女娲和Sean角色文档,增强角色身份、核心特质和决策框架的描述,优化内容结构,提升用户理解和使用体验。同时,更新产品哲学知识体系,明确矛盾驱动和简洁性原则的应用。

* Add product management submodule

* fix: 修复 recall 和 learn 的 bug

* refactor: 把 hello 改成 welcome

* feat: 添加DACP服务启动脚本和测试命令,更新相关依赖,优化配置文件路径处理

* fix: 更新pnpm-lock.yaml以匹配DACP依赖,解决CI中--frozen-lockfile的错误

* 更新DACP白皮书的更新日期至2025-01-19;在DACPConfigManager中优化配置管理,支持项目级和用户级配置的优先级处理,增强错误提示信息,更新相关方法以支持异步操作。

* fix: 统一Pouch命令路径获取机制,解决Issue #69记忆持久化问题

修复多实例MCP环境下的路径不一致问题:
- RememberCommand: 使用ResourceManager替代DirectoryService直接调用
- RecallCommand: 使用ResourceManager替代DirectoryService直接调用
- RegisterCommand: 使用ResourceManager+DirectoryService统一路径获取

核心改进:
1. 所有命令现在使用相同的getGlobalResourceManager()初始化
2. 通过resourceManager.initializeWithNewArchitecture()确保路径一致性
3. 实现"要对一起对,要错一起错"的一致性原则

测试验证:
- 记忆写入和读取使用相同项目路径
- 多实例环境下路径解析行为完全一致
- 向后兼容,无破坏性变更

Fixes #69

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-20 12:28:41 +08:00

7.7 KiB
Raw Permalink Blame History

## DACP服务调用技术限制 - **参数格式固定**:必须使用{service_id, action, parameters}三层结构 - **服务路由固定**当前支持的服务ID有限需要匹配现有服务 - **网络依赖**DACP服务需要独立运行存在网络调用延迟 - **错误传播**DACP服务错误需要优雅处理不能中断角色对话 - **异步特性**某些DACP操作可能需要时间需要合理设置用户期望 ## DACP调用强制规则 - **参数完整性**service_id和action必须提供parameters.user_request必须包含用户自然语言需求 - **服务匹配**只能调用已注册的DACP服务不得尝试调用不存在的服务 - **错误处理**DACP调用失败时必须向用户说明原因并提供替代方案 - **权限检查**:敏感操作(如发送邮件)需要确认用户授权 - **结果验证**DACP执行结果需要向用户确认确保符合预期 ## DACP调用指导原则 - **需求驱动**只有当用户明确需要执行操作时才调用DACP避免过度自动化 - **透明化**:向用户说明正在调用什么服务执行什么操作,保持透明 - **渐进式**复杂任务拆分为多个简单的DACP调用逐步完成 - **用户确认**:重要操作前征得用户同意,特别是涉及外部通信的操作 - **上下文传递**充分利用context参数传递任务相关的背景信息 ## 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服务状态建议重启演示服务
## DACP调用质量标准
### 调用准确性
- ✅ 服务选择与用户需求高度匹配
- ✅ 参数构建完整准确
- ✅ 错误处理及时有效
- ✅ 结果解释清晰易懂

### 用户体验
- ✅ 调用前充分说明和确认
- ✅ 调用中保持透明化沟通
- ✅ 调用后验证用户满意度
- ✅ 失败时提供替代方案

### 技术规范
- ✅ 严格遵循DACP协议格式
- ✅ 合理使用context参数
- ✅ 妥善处理异步特性
- ✅ 遵循最小权限原则

### 服务效率
- ✅ 避免不必要的服务调用
- ✅ 合理组合多个服务调用
- ✅ 充分利用缓存和上下文
- ✅ 及时反馈执行进度