从零实现一个完整的AI Agent:5+1层记忆架构+混合RAG+容错三层防护(附源码+面试手册)
·
摘要
本文介绍了一个基于LLM的个人数字伙伴项目「小柏Agent」,包含5+1层记忆架构、混合RAG检索、LLM容错三层防护、信息抽取Pipeline等核心模块。项目有完整的测评体系(6维度220条测试,综合得分85.9%)和详细的面试手册(16章50张图解)。适合写简历、找实习、深入理解LLM应用开发。
正文
一、项目介绍
小柏Agent是一个基于LLM的个人数字伙伴,支持微信/飞书/Web多通道接入。核心能力包括:
- 长期记忆:5+1层记忆架构,记住用户说过的话、偏好、情绪
- 智能检索:混合RAG(向量+BM25+Reranking),检索成功率100%
- 主动关怀:规则驱动的主动提醒,4条规则+冷却机制
- 容错防护:熔断器+响应缓存+兜底回复三层防护
二、核心架构
2.1 5+1层记忆架构
Layer 0: 对话存档(conversations)- 每句话都存
Layer 1: 结构化事实(facts)- 8种类型,Upsert去重
Layer 2: 情绪时间线(emotions)- 8种情绪,带强度
Layer 3: 关联索引(associations)- 关键词→消息映射
Layer 4: 任务管理(tasks)- 用户任务+系统任务
Layer +1: 学习记录(learning_log)- 学习内容+理解程度
关键设计:
- Upsert去重:152条→30-40条,减少70%噪音
- 分层过滤:稳定画像全保留,临时事件只留7天
- Embedding持久化:SQLite BLOB存储,避免重复计算
2.2 混合RAG检索
# 向量检索
query_emb = await cache.get_or_compute(query)
vector_scored = [(msg_id, cosine_similarity(query_emb, emb))
for msg_id, emb in all_msg_embs]
# BM25关键词检索
bm25 = BM25()
bm25.index(doc_ids, docs)
bm25_results = bm25.search(query, top_k=10)
# 混合Reranking
hybrid_score = 0.6 * vector_score + 0.4 * bm25_score
2.3 LLM容错三层防护
第一层:熔断器
- 连续失败5次 → 自动熔断
- 60秒后自动恢复
第二层:响应缓存
- LRU 100条
- TTL 1小时
- 相同query秒回
第三层:兜底回复
- LLM不可用时返回友好提示
- 用户永远不会看到错误
2.4 信息抽取Pipeline
# Fire-and-forget模式
async def handle_message(user_message):
# 先回复用户
response = await llm.chat(messages)
yield response
# 后台异步提取信息(不阻塞回复)
facts, emotion, topics, is_learning, learning_info =
await extractor.extract(user_msg)
三、测评体系
基于98条真实对话数据的6维度综合测评:
| 维度 | 指标 | 测试数 | 结果 |
|---|---|---|---|
| 记忆召回 | Recall@5 | 43条 | 100% |
| 任务完成检测 | 准确率 | 64条 | 87.5% |
| 情绪识别 | 一致率 | 7条 | 100% |
| RAG检索 | 成功率 | 25条 | 100% |
| 信息抽取 | 覆盖率 | 8条 | 75% |
| 上下文管理 | 连贯性 | 73条 | 53% |
综合得分:85.9%
四、项目亮点
- 真实使用:不是demo,是真正使用了10天+的项目
- 完整架构:从记忆系统到容错机制,覆盖LLM应用核心
- 测评驱动:基于真实数据的测评体系,有具体数字
- 面试友好:16章面试手册+50张图解,面试直接讲
五、适合谁?
- 🎯 找实习的同学:写简历、面试讲故事
- 📚 学习LLM应用开发:完整的项目案例
- 💼 准备面试:有详细的面试手册和图解
六、项目地址
GitHub:ronghuixiao/xiaobo-agent
技术栈:Python · FastAPI · SQLite · OpenAI API
七、快速开始
# 克隆项目
git clone https://github.com/ronghuixiao/xiaobo-agent.git
# 安装依赖
pip install -r requirements.txt
# 配置
cp config/config.yaml.example config/config.yaml
# 编辑config.yaml,填入你的API Key
# 启动
python main.py --daemon
八、面试手册
项目包含详细的面试手册(16章):
- 项目执行全流程
- 分层架构详解
- 核心模块深度解析
- LLM配置详解
- 测试工程
- Debug过程精华
- 项目改进方向
- 面试Q&A手册
- Tool Calling系统
- Skill系统
- 简历包装策略
- 测评框架
- 设计决策总览
- 多通道配置详解
- 核心模块详细代码
- 部署与配置详解
九、图解
项目包含50张图解,包括:
- 技术图解(30张):架构图、流程图、设计图
- 故事图解(20张):用比喻解释技术概念
十、最后
这个项目是我深入理解LLM应用开发的实践。
重点不是用了什么LLM,而是围绕LLM的Harness设计——
记忆系统、检索机制、上下文管理、容错处理、测试评估。
如果你也在做LLM应用,欢迎交流!
标签:AI、LLM、Agent、Python、大模型、人工智能、简历项目、找实习
更多推荐

所有评论(0)