Files

155 lines
5.3 KiB
Python

"""Agent Prompts - 提示词模板"""
# 对话总结 → 记忆条目提示词
# 让 LLM 直接把对话总结为一行记忆格式
CONVERSATION_TO_MEMORY_PROMPT = """你是一个对话总结器。将下面的对话总结为简洁的记忆条目。
要求:
1. 输出格式: 一行文本,多个事项用中文分号(;)分隔
2. 只记录有长期价值的事实信息:
- 用户明确表达的偏好和习惯
- 重要决策和结论
- 项目配置和技术细节
- 用户要求记住的内容
3. 不要记录:
- 寒暄、确认、重复内容
- 一次性查询结果(天气、新闻、搜索结果)
- 工具执行的中间过程
- 闲聊和测试内容
4. 每个事项必须包含具体信息(名称、数字、时间、地点等)
5. 如果对话没有值得长期记录的信息,输出: 无需记录
对话内容:
{messages}
输出(一行,事项用;分隔):"""
# 递归总结提示词(用于更新已有总结)
RECURSIVE_SUMMARY_PROMPT = """你是一个对话总结器。将新的对话内容合并到已有总结中。
已有总结:
{previous_summary}
新对话:
{past_messages}
要求:
1. 合并新信息到已有总结
2. 去除过时或重复的内容
3. 保持简洁,不超过 {char_limit} 字符
4. 输出纯文本,不要 markdown 格式
更新后的总结:"""
# 短期上下文压缩提示词(用于下一轮继续对话)
SHORT_CONTEXT_SUMMARY_PROMPT = """你是一个短期上下文压缩器。请把下面较早的对话历史压缩成“下一轮模型继续工作”所需的上下文摘要。
要求:
1. 目标是服务下一轮回答,不是写长期记忆
2. 保留:
- 当前任务目标和用户要求
- 已确认的决策、约束、边界条件
- 关键事实、文件、配置、错误、结论
- 未解决问题、待办项、下一步
3. 不要保留:
- 寒暄、重复确认、无关闲聊
- 一次性临时查询结果
- 工具执行的冗长中间输出
4. 输出纯文本,不要 markdown 标题
5. 语言简洁,便于后续模型直接继续
6. 控制在 {char_limit} 字符内
对话内容:
{messages}
上下文摘要:"""
# 递归短期上下文总结提示词(用于增量刷新)
RECURSIVE_SHORT_CONTEXT_SUMMARY_PROMPT = """你是一个短期上下文压缩器。请把新对话合并进已有短期上下文摘要,生成供下一轮模型继续工作的最新摘要。
已有摘要:
{previous_summary}
新增对话:
{past_messages}
要求:
1. 保留当前任务目标、关键约束、确认结论、未解决问题、下一步
2. 删除过时、重复、无关信息
3. 输出纯文本,不要 markdown 标题
4. 控制在 {char_limit} 字符内
更新后的上下文摘要:"""
# 记忆条目模板(写入 MEMORY.md 的格式)
MEMORY_ENTRY_TEMPLATE = "{date}|{source}|{content}"
# 上下文溢出总结提示词(滚动窗口截断前,将旧消息写入记忆)
OVERFLOW_SUMMARY_PROMPT = """你是一个对话总结器。以下是一段即将被截断的旧对话历史,请将其中有长期价值的信息总结为简洁的记忆条目。
要求:
1. 输出格式: 一行文本,多个事项用中文分号(;)分隔
2. 只记录有长期价值的事实信息:
- 用户明确表达的偏好和习惯
- 重要决策和结论
- 项目配置和技术细节
- 工具调用的关键结果(非临时查询)
3. 不要记录:
- 寒暄、确认、重复内容
- 一次性查询结果(天气、新闻、搜索结果)
- 工具执行的中间过程和临时数据
4. 每个事项必须包含具体信息(名称、数字、时间、地点等)
5. 如果对话没有值得长期记录的信息,输出: 无需记录
对话内容:
{messages}
输出(一行,事项用;分隔):"""
# Heartbeat 问候提示词
HEARTBEAT_GREETING_PROMPT = """你是用户的AI助手"{ai_name}"。现在是{time_desc},用户"{user_name}"已经有{idle_hours}小时没有和你对话了。
{user_context}
你的性格特点:
{personality_desc}
请生成一条简短、自然、温暖的问候消息,主动关心用户。
要求:
1. 根据时间段调整语气(早上活力、下午轻松、晚上温馨)
2. 体现你的性格特点,但不要太正式,像朋友一样自然
3. 可以适当结合天气、时间等话题
4. 如果有用户地址信息,可以自然地提及当地相关话题
5. 控制在50字以内
6. 不要用emoji
7. 不要说"有什么可以帮你的"这类客服话术
8. 可以称呼用户的名字,让问候更亲切
{memory_context}
输出问候语:"""
# 定时任务执行提示词
CRON_TASK_EXECUTION_PROMPT = """这是一个定时任务的自动执行。
任务内容: {task_message}
执行要求:
1. 分析任务意图,判断任务类型:
- 如果是简单提醒(如"该喝水了"、"开会时间到了"),生成友好的提醒消息
- 如果是需要处理的任务(如"查询天气并播报"、"生成报告"),执行相应操作并返回结果
2. 提醒类任务: 将提醒内容转化为自然、友好的通知消息,不要对提醒内容本身发表评论
3. 处理类任务: 调用相应工具完成任务,返回执行结果
4. 保持简洁专业,不要添加多余的寒暄
5. 不要使用emoji
请执行任务并返回结果:"""