Files
Mofox-Core/SMART_PROMPT_INTEGRATION.md
Windpicker-owo 2dee32e5ad feat(chat): 引入SmartPrompt智能提示构建系统
重构DefaultReplyer对话提示构建逻辑,统一使用SmartPrompt抽象组件替代原冗长的模板选择与参数拼装流程。将原160+行的分支式模板处理逻辑压缩为统一的SmartPrompt.build_prompt()调用,实现提示构建策略的可插拔与可维护性提升。

- 新增 src.chat.utils.smart_prompt 模块(SmartPrompt类及参数封装)
- 移除旧的normal/s4u分支硬编码,由SmartPrompt内部按需适配
- 事件管理器仅补充HandlerResult显式导入,无功能变动
2025-08-31 15:33:16 +08:00

84 lines
3.2 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.

# SmartPrompt系统集成问题与修复记录
## 发现的问题
### 1. 关键方法缺失 ❌
- **问题**: SmartPrompt类缺少`build_prompt()`方法
- **影响**: DefaultReplyer在[src/chat/replyer/default_generator.py:1107](src/chat/replyer/default_generator.py:1107)处调用失败
- **修复**: 添加`build_prompt()`方法并保持向后兼容性
### 2. 模拟实现问题 ⚠️
- **问题**: SmartPromptBuilder中的所有构建方法都是模拟实现包含`asyncio.sleep()`和静态返回值)
- **影响**: 新系统无法真正构建提示词的各个组件
- **风险**: 高 - 可能导致功能完全失效
### 3. 模板选择问题 ❌
- **问题**: SmartPrompt使用固定的模板系统但缺少对不同prompt_mode的动态支持
- **影响**: 无法支持原有系统的"s4u"和"normal"模式的复杂逻辑
### 4. 参数传递不完整 ❌
- **问题**: SmartPromptParameters缺少关键参数如
- chat_target_info
- message_list_before_now_long
- message_list_before_short
- 各种系统依赖的参数
- **影响**: 无法正确构建原有复杂上下文
### 5. 架构完整性评估 🔄
#### 严重缺失的构建逻辑:
1. **构建表达式习惯** - 需要集成原有的`build_expression_habits`方法
2. **记忆块构建** - 需要集成原有的`build_memory_block`方法
3. **关系信息构建** - 需要集成原有的`build_relation_info`方法
4. **工具信息构建** - 需要集成原有的`build_tool_info`方法
5. **知识信息构建** - 需要整合原有的知识系统
6. **跨群上下文** - 需要集成原有的跨群构建逻辑
7. **聊天历史构建** - 需要支持原有的复杂聊天历史处理
#### 缺失的关键功能:
- S4U模式下的背景对话和核心对话分离
- Normal模式下的聊天历史统一处理
- 正确的模板选择逻辑
- 完整的上下文数据构建和传递
## 修复建议
### 立即修复(已解决)
- ✅ 添加`build_prompt()`方法到SmartPrompt类
- ✅ 添加方法别名保持向后兼容性
### 深度集成需求需要后续PR
- 🔧 重写SmartPromptBuilder以使用原有的DefaultReplyer方法
- 🔧 扩展SmartPromptParameters支持所有必要参数
- 🔧 实现完整的模板系统集成
- 🔧 添加完整的上下文构建逻辑
## 建议回滚或分阶段实现
### 方案1分阶段实现
1. 第一阶段保持原有DefaultReplyer逻辑不变
2. 第二阶段逐步引入SmartPrompt的特定功能
3. 第三阶段:完全替换(测试通过后)
### 方案2并行模式
- 通过配置开关可以切换新旧系统
- 默认使用原有系统
- SmartPrompt作为可选增强模式
## 当前状态评估
### 已修复:
- [x] 方法缺失问题
- [x] API兼容性问题
### 待修复(需要重大重构):
- [ ] 完整的上下文构建系统
- [ ] 所有模式的支持s4u/normal/minimal
- [ ] 参数传递机制
- [ ] 原有功能的完整集成
- [ ] 性能优化和缓存机制
- [ ] 回归测试验证
## 总结
虽然已修复了基本的方法缺失问题但SmartPrompt系统目前还**无法**完全替代原有的DefaultReplyer因为它缺失了大部分核心构建逻辑。建议在此状态下**不要合并**到主分支而是作为技术债务记录或在后续PR中完成完整的集成。