Files
PromptX/docs/dacp-config-management.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

254 lines
5.7 KiB
Markdown
Raw 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.

# DACP配置管理指南
**版本**: 1.0.0
**更新日期**: 2025-01-19
**作者**: Sean
---
## 概述
DACP配置管理系统支持分层配置策略实现了项目级配置优先、用户级配置回退的灵活配置管理机制。这允许团队在项目中共享配置同时保持个人配置的独立性。
## 配置优先级
```
项目级配置 (.promptx/dacp/) > 用户级配置 (~/.promptx/dacp/)
```
### 优先级说明
1. **项目级配置** - 位于当前项目的 `.promptx/dacp/` 目录
- 优先级最高
- 适合团队共享的项目配置
- 可以版本控制管理
2. **用户级配置** - 位于用户主目录的 `~/.promptx/dacp/` 目录
- 作为回退选择
- 个人私有配置
- 跨项目通用配置
## 配置文件结构
### 邮件服务配置示例 (send_email.json)
```json
{
"provider": "gmail",
"smtp": {
"user": "your-email@gmail.com",
"password": "your-app-password"
},
"sender": {
"name": "Your Name",
"email": "your-email@gmail.com"
}
}
```
### 支持的邮件服务商
- **Gmail**: smtp.gmail.com:587
- **Outlook**: smtp-mail.outlook.com:587
- **QQ邮箱**: smtp.qq.com:465
- **163邮箱**: smtp.163.com:465
- **126邮箱**: smtp.126.com:465
## 使用方式
### 1. 项目级配置(推荐)
创建项目级配置文件:
```bash
# 创建配置目录
mkdir -p .promptx/dacp
# 创建邮件配置文件
cat > .promptx/dacp/send_email.json << 'EOF'
{
"provider": "gmail",
"smtp": {
"user": "project-team@gmail.com",
"password": "project-app-password"
},
"sender": {
"name": "Project Team",
"email": "project-team@gmail.com"
}
}
EOF
```
### 2. 用户级配置(个人回退)
创建用户级配置文件:
```bash
# 创建用户配置目录
mkdir -p ~/.promptx/dacp
# 创建个人邮件配置
cat > ~/.promptx/dacp/send_email.json << 'EOF'
{
"provider": "gmail",
"smtp": {
"user": "personal@gmail.com",
"password": "personal-app-password"
},
"sender": {
"name": "Personal Name",
"email": "personal@gmail.com"
}
}
EOF
```
## Gmail配置特别说明
### 应用专用密码设置
Gmail用户需要使用应用专用密码
1. 进入 [Google 账户设置](https://myaccount.google.com)
2. 启用两步验证
3. 生成应用专用密码
4. 在配置文件中使用生成的密码
### 配置示例
```json
{
"provider": "gmail",
"smtp": {
"user": "yourname@gmail.com",
"password": "abcd efgh ijkl mnop" // 应用专用密码16位含空格
},
"sender": {
"name": "Your Name",
"email": "yourname@gmail.com"
}
}
```
## 配置管理命令
### 检查配置状态
```javascript
const DACPConfigManager = require('./src/lib/utils/DACPConfigManager')
const configManager = new DACPConfigManager()
// 检查是否有配置(任意级别)
const hasConfig = await configManager.hasActionConfig('send_email')
// 检查项目级配置
const hasProjectConfig = await configManager.hasProjectActionConfig('send_email')
// 检查用户级配置
const hasUserConfig = await configManager.hasUserActionConfig('send_email')
```
### 读取配置
```javascript
// 读取配置(自动优先级选择)
const config = await configManager.readActionConfig('send_email')
// 明确读取项目级配置
const projectConfig = await configManager.readProjectActionConfig('send_email')
// 明确读取用户级配置
const userConfig = await configManager.readUserActionConfig('send_email')
```
### 写入配置
```javascript
const emailConfig = {
provider: "gmail",
smtp: {
user: "example@gmail.com",
password: "app-password"
},
sender: {
name: "Example User",
email: "example@gmail.com"
}
}
// 写入项目级配置
await configManager.writeProjectActionConfig('send_email', emailConfig)
// 写入用户级配置
await configManager.writeUserActionConfig('send_email', emailConfig)
```
## 最佳实践
### 1. 团队协作
- **项目配置**: 使用通用的项目配置,可以提交到版本控制
- **敏感信息**: 个人敏感信息(如密码)使用用户级配置
- **配置模板**: 在项目中提供配置模板,团队成员复制后修改
### 2. 安全性
- **不要提交密码**: 项目级配置可以包含结构,但不应包含真实密码
- **使用应用密码**: Gmail等服务使用应用专用密码
- **权限控制**: 确保配置文件权限设置合理
### 3. 配置继承
当前版本支持完全覆盖模式:
- 如果存在项目级配置,完全使用项目级配置
- 如果不存在项目级配置,回退到用户级配置
- 未来版本可能支持配置合并模式
## 错误处理
### 常见错误和解决方案
1. **配置文件不存在**
```
解决方案: 按照上述步骤创建配置文件
```
2. **项目目录无法获取**
```
解决方案: 确保在PromptX项目目录中运行或使用用户级配置
```
3. **SMTP认证失败**
```
解决方案: 检查用户名、密码和服务器配置
```
4. **Gmail应用密码问题**
```
解决方案: 重新生成应用专用密码,确保格式正确
```
## 版本兼容性
- **向后兼容**: 现有用户级配置继续工作
- **API兼容**: 原有API方法保持不变
- **渐进升级**: 可以逐步迁移到项目级配置
## 扩展功能
### 未来规划
1. **配置合并模式**: 支持项目级和用户级配置的智能合并
2. **配置验证**: 增强的配置验证和错误提示
3. **配置模板**: 内置常用配置模板
4. **环境变量支持**: 支持通过环境变量覆盖配置
5. **配置加密**: 敏感信息的加密存储
---
## 参考资料
- [DACP白皮书](./dacp-whitepaper.md)
- [MCP集成指南](./mcp-integration-guide.md)
- [PromptX架构原理](./promptx-architecture-principle.md)