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

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

3.2 KiB
Raw Blame History

SmartPrompt系统集成问题与修复记录

发现的问题

1. 关键方法缺失

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作为可选增强模式

当前状态评估

已修复:

  • 方法缺失问题
  • API兼容性问题

待修复(需要重大重构):

  • 完整的上下文构建系统
  • 所有模式的支持s4u/normal/minimal
  • 参数传递机制
  • 原有功能的完整集成
  • 性能优化和缓存机制
  • 回归测试验证

总结

虽然已修复了基本的方法缺失问题但SmartPrompt系统目前还无法完全替代原有的DefaultReplyer因为它缺失了大部分核心构建逻辑。建议在此状态下不要合并到主分支而是作为技术债务记录或在后续PR中完成完整的集成。