compression.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. # 保留旧名以兼容 compaction.py 的调用
  20. COMPRESSION_EVAL_PROMPT_TEMPLATE = COMPRESSION_PROMPT_TEMPLATE
  21. SUMMARY_HEADER_TEMPLATE = """## 对话历史摘要(自动压缩)
  22. {summary_text}
  23. ---
  24. *以上为压缩摘要,原始对话历史已归档。*
  25. """
  26. # ===== 辅助函数 =====
  27. def build_compression_eval_prompt(
  28. goal_tree_prompt: str,
  29. ex_reference_list: str = "",
  30. ) -> str:
  31. return COMPRESSION_EVAL_PROMPT_TEMPLATE.format(
  32. goal_tree_prompt=goal_tree_prompt,
  33. ex_reference_list=ex_reference_list,
  34. )
  35. def build_summary_header(summary_text: str) -> str:
  36. return SUMMARY_HEADER_TEMPLATE.format(summary_text=summary_text)