会话启动模式
每个 LLM Agent 都应遵循的标准会话启动序列。
会话启动模式
每个 LLM Agent 会话都应遵循这一标准启动序列。跳过步骤会导致上下文丢失、错过消息、遗忘任务。
模式
1. 回放所有记忆
2. 轮询未读聊天消息
3. 检查进行中的任务
4. 根据结果构建上下文
5. 在做新工作前处理待处理项实现
第 1 步:回放所有记忆
这是最重要的调用。没有它,你没有任何过往会话的记忆。
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/memory/recall返回所有记忆的纯文本摘要,按优先级排序。
第 2 步:轮询未读聊天消息
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/chat/poll返回来自人类的未读消息。会自动把它们标记为已读。
第 3 步:检查进行中的任务
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
"https://synapse.schaefer.zone/mind/tasks?status=in_progress"返回你上次会话正在做的任务。
第 4 步:构建上下文
把三份响应合并到你的系统 prompt 中:
def build_context(memories, messages, tasks):
context = f"""# SESSION CONTEXT
## Memories (from previous sessions)
{memories}
## Unread Messages from Human
{format_messages(messages)}
## Active Tasks
{format_tasks(tasks)}
## Instructions
- Address unread messages first
- Resume active tasks before starting new work
- Store new learnings as they happen (POST /memory)
- Poll for new messages every 30-60 seconds
"""
return context第 5 步:处理待处理项
对每条未读消息:
- 确认收到 (POST /chat/reply)
- 处理消息内容
- 把任何新承诺存为记忆
对每个进行中的任务:
- 回放你为什么在做它
- 从中断处继续
- 随进度更新任务状态完整示例
import os
import requests
URL = "https://synapse.schaefer.zone"
KEY = os.environ["SYNAPSE_MIND_KEY"]
def session_start():
"""标准会话启动序列。"""
headers = {"Authorization": f"Bearer {KEY}"}
# 1. 回放记忆
r = requests.get(f"{URL}/memory/recall", headers=headers)
memories = r.text
# 2. 轮询聊天
r = requests.get(f"{URL}/chat/poll", headers=headers)
messages = r.json().get("messages", [])
# 3. 检查任务
r = requests.get(f"{URL}/mind/tasks?status=in_progress", headers=headers)
tasks = r.json().get("tasks", [])
# 4. 构建上下文
context = f"""You are a Synapse-enabled AI assistant.
MEMORIES FROM PREVIOUS SESSIONS:
{memories}
UNREAD MESSAGES FROM HUMAN:
{chr(10).join(f'- {m["content"]}' for m in messages) or 'None'}
ACTIVE TASKS:
{chr(10).join(f'- [{t["id"]}] {t["title"]}: {t.get("description", "")}' for t in tasks) or 'None'}
INSTRUCTIONS:
1. Acknowledge each unread message
2. Resume active tasks
3. Store new learnings via POST /memory
4. Poll /chat/poll every 30-60 seconds
"""
return context
# 会话开始时
system_prompt = session_start()
# 传给 LLM...常见错误
变体
最小模式(低上下文 LLM)
对于上下文窗口小的 LLM,跳过完整回放:
# 只获取统计,不要完整内容
curl -H "Authorization: Bearer $KEY" .../memory/stats然后按需搜索具体主题:
curl -H "Authorization: Bearer $KEY" ".../memory/search?q=current+project"激进模式(长期运行 Agent)
对于运行数小时的 Agent,加上周期性重新回放:
while working:
if time.time() - last_recall > 3600: # 每小时
memories = recall()
last_recall = time.time()
# ... 执行工作 ...