核心原理

上下文工程

Downcity 如何让 Agent 上下文保持明确、可落盘、可检查

上下文工程

Downcity 把“上下文”拆成可组合、可落盘的几层数据:

  1. PROFILE.md / SOUL.md
  2. downcity.json 配置
  3. .downcity/agents/<agentId>/sessions/<sessionId>/messages/messages.jsonl 会话历史
  4. .downcity/memory/MEMORY.md 长期记忆
  5. .downcity/memory/daily/<YYYY-MM-DD>.md 每日增量记忆
  6. .downcity/agents/<agentId>/sessions/<sessionId>/memory/working.md 会话工作记忆(可选)

为什么这样设计

  • 历史记录可审计,不依赖隐式内存。
  • 超长对话可 compact,保留最近消息与摘要。
  • sessionId 相互隔离,减少串话。
  • 记忆召回通过 memory.search -> memory.get 按预算检索,不再整文件注入。

实践建议

  • PROFILE.md 写清楚边界、目标、风格。
  • sessionId 区分不同渠道/用户/业务流。
  • 定期查看 .downcity/logs/<date>.jsonl 与任务 run 目录。