compression.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. """
  2. 压缩相关 Prompt
  3. 包含 Level 2 消息压缩(LLM 总结)使用的 prompt。
  4. """
  5. # ===== 压缩总结 =====
  6. COMPRESSION_PROMPT_TEMPLATE = """请对以上对话历史进行压缩总结。
  7. ### 摘要要求
  8. 1. 保留关键决策、结论和产出(如创建的文件、修改的代码、得出的分析结论)
  9. 2. 保留重要的上下文(如用户的要求、约束条件、之前的讨论结果)
  10. 3. 省略中间探索过程、重复的工具调用细节
  11. 4. 使用结构化格式(标题 + 要点 + 相关资源引用,若有)
  12. 5. 控制在 2000 字以内
  13. 当前 GoalTree 状态:
  14. {goal_tree_prompt}
  15. 格式要求:
  16. [[SUMMARY]]
  17. (此处填写结构化的摘要内容)
  18. **生成摘要后立即停止,不要继续执行原有任务。**
  19. """
  20. # 保留旧名以兼容 compaction.py 的调用
  21. COMPRESSION_EVAL_PROMPT_TEMPLATE = COMPRESSION_PROMPT_TEMPLATE
  22. SUMMARY_HEADER_TEMPLATE = """## 对话历史摘要(自动压缩)
  23. {summary_text}
  24. ---
  25. *以上为压缩摘要,原始对话历史已归档。*
  26. """
  27. # ===== 辅助函数 =====
  28. def build_compression_eval_prompt(
  29. goal_tree_prompt: str,
  30. ex_reference_list: str = "",
  31. ) -> str:
  32. return COMPRESSION_EVAL_PROMPT_TEMPLATE.format(
  33. goal_tree_prompt=goal_tree_prompt,
  34. ex_reference_list=ex_reference_list,
  35. )
  36. def build_summary_header(summary_text: str) -> str:
  37. return SUMMARY_HEADER_TEMPLATE.format(summary_text=summary_text)