透明记忆注入
Transparent Memory Injection
通过包装 LLM 客户端在调用前自动检索并注入相关记忆,对业务代码零侵入
子问题
1.客户端代理包装
2.自动查询提取
3.记忆格式化与注入位置
4.同步/异步兼容
5.同步上下文中桥接异步检索的事件循环冲突处理
6.注入记忆的 token 预算控制与上下文窗口协调
各项目的解法1 solutions
Signals
横向对比
| 维度 | memU |
|---|---|
| 注入方式 | 三层 __getattr__ 代理链拦截 client.chat.completions.create |
| 记忆格式化 | XML <memu_context> 标签包裹,追加到 system prompt 末尾 |
| 降级策略 | except Exception: return [] 静默降级,不阻断主 LLM 调用 |
| 同步异步兼容 | ThreadPoolExecutor 桥接 + asyncio.run 三级回退 |
| 作用域隔离 | user_data dict 支持 user_id/agent_id/session_id 多维度过滤 |
| 检索深度 | 三层级递进检索(Category→Item→Resource)+ LLM sufficiency check |
最佳实践
1.注入失败时静默降级不阻断主流程
2.使用 XML 标签包裹注入内容便于模型区分
3.浅拷贝 messages 列表避免修改调用方原始数据
4.工厂函数支持 user_id/agent_id/session_id 多维度作用域构建