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

241 lines
7.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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