我用 Qwen3.6-27B 审查了 82K 行代码,它一次性建了 1,763 个记忆节点
一个室内设计师写的 Agent 认知系统,如何在极复杂任务中“不崩溃、不遗忘、不死循环”
0. 先看一组真实数据
前不久,我用祖龙(ZULONG)对自己的源码做了一个深度审查:
- 代码量:82,000+ 行(169 个 Python 文件)
- 使用的模型:Qwen3.6-27B(通过 API 调用)
- 最终结果:
- 记忆节点:1,763 个(完成率 99.83%)
- 记忆边:4,133 条(依赖、关联、引用)
- 构建速度:~100 节点/秒
- 整个任务 FC 步数:200+ 步,系统全程稳定
它不是一次性全量喂入的,而是让 AI Agent 自己“边看代码、边建记忆、边分析关联”,整个过程没有死循环、没有中途忘记进度、没有上下文溢出。
下面我直接讲两个核心:
- 祖龙是怎么让一个 27B 模型完成这种“超复杂任务”的?
- 它是怎么保证 Agent 不跑飞、不死循环、不早退的?
1. 祖龙是什么(30 秒版)
祖龙不是一个聊天机器人,而是一个AI 认知操作系统。
它的核心是:
- MemoryGraph:异构记忆图谱(11 种节点 + 7 种边 + 赫布学习 + 艾宾浩斯衰减)
- TaskGraph:无限深度任务图谱(支持挂起 / 恢复 / 依赖 DAG)
- FC 循环:带 5 层防护链的自主工具调用引擎
- Circuit Breaker:6 信号死循环熔断机制
你可以把它理解为:给 Agent 装上了一个能长期记忆 + 自主规划 + 自我保护的“大脑”并且所有记忆都是原始数据未经压缩,长期记忆不会丢失准确度。
2. 实测回顾:1,763 个记忆节点是怎么来的
任务内容
让祖龙以 Qwen3.6-27B 为推理模型,对自己的源码进行全量分析:
- 扫描 169 个 Python 文件
- 为每个类、关键方法、模块创建记忆节点
- 自动分析文件关联、依赖关系、代码锚点
系统行为(简化版)
用户:分析祖龙源码,建立完整的代码记忆图谱
L2 推理引擎:
→ 调用 task_create_plan 创建任务图
→ 遍历目录,每个文件作为一个子任务
→ 对每个文件执行:
调用 exec_read_file
调用 analyze_code_structure(自制工具)
调用 save_memory_note 创建 CODE_SYMBOL / MODULE 节点
调用 discover_related 自动发现关联
→ 过程中 Circuit Breaker 持续监控
→ 最终自动汇总,task_mark_status 标记完成
关键结果
| 指标 | 数值 |
|---|---|
| 总记忆节点 | 1,763 |
| 总记忆边 | 4,133 |
| 完成率 | 99.83%(3 个节点因文件缺失未建) |
| 方法级定位 | ✅ 支持(可折叠,可展开) |
| 依赖自动发现 | ✅ 已实现 |
| 图谱内存占用 | ~200 MB |
| 检索响应时间 | <50 ms |
这里不是“一次性把所有代码塞进上下文”,而是 Agent 自己拆任务、逐步构建、边做边记。1,763 个节点是系统长期记忆的真实增长。
3. 核心一:5 层防护链 —— 防止 Agent “早退、乱跑、空转”
很多 Agent 框架只给一个简单的 max_iterations,超出就截断。祖龙用了5 层防护链(全部实现在 ide_fc_runner.py):
用户回复
↓
1. CB 强制收敛检查
→ 如果处于 RED 状态,移除所有工具,强制文本输出
→ 空回复自动用工具结果缓冲区组装
↓
2. RuleGuardian 过早完成拦截
→ 检查 TaskGraph 是否还有未完成节点
→ 若 Agent 说“完成了”但实际没完成,注入纠正指令
↓
3. InfoGap 信息缺口检测
→ 检测 NEED_SUBTASK_RESULT / NEED_USER_INPUT
→ 自动重试,上限 5 次,防止无限等待
↓
4. RESUME AutoMark 安全网
→ Qwen3.6 经常“忘了”调用 task_mark_status
→ 系统自动标记当前 in_progress 节点为 completed
→ 并自动推进到下一个节点
↓
5. COMPLEX Backfill 节点回填
→ 模型创建骨架后直接输出完整内容(跳过逐节点提交)
→ 系统从回复文本中匹配节点标签,自动回填内容
→ 并自动标记 completed
结果:在 200+ 步的源码审查任务中,Qwen3.6 出现了 10+ 次“忘记标记节点”和 2 次“过早声称完成”的情况,全部被防护链自动修正,用户无感知。
4. 核心二:Circuit Breaker —— 6 信号熔断机制
死循环是 Agent 的噩梦。祖龙不是简单数步数,而是从 6 个维度检测(circuit_breaker.py):
| 信号 | 检测逻辑 | YELLOW 阈值 | RED 阈值 |
|---|---|---|---|
| 1. 相同调用重复 | 同名 + 同参数 hash | 连续 2 次 | 连续 3 次 |
| 2. 模式循环 | 窗口内工具频次 + 查询相似度 | 5/6 次 | 7/6 次 或 相似度>0.7 |
| 3. 信息增益递减 | 结果 hash 重叠检测 | 全空/极短 | 完全相同 |
| 4. 上下文压力 | token 估算 / 窗口比 | ≥75% | ≥90% |
| 5. 经过时间 | 墙钟时间检测 | 可配置 | 可配置 |
| 6. 无进度空转 | 连续信息检索工具无行动工具 | 4 次 | 6 次 |
状态机:GREEN → YELLOW(注入警告)→ RED(强制停止)
在源码审查任务中的表现
- 模型有几次在同一个文件上反复调用
read_file(工具调用重复) - CB 在 第 3 次 触发 YELLOW,注入警告:“检测到重复操作,请推进任务”
- 模型收到警告后改变了行为,没有进入 RED
- 全程未出现硬性截断或崩溃
很多框架到 RED 就直接抛异常了,祖龙会在 YELLOW 时给模型一次自我纠正的机会。
5. 对比:为什么 LangGraph / AutoGen 很难做到同样的事?
| 维度 | 祖龙 | LangGraph | AutoGen |
|---|---|---|---|
| 死循环检测 | 6 信号 + 状态机 | 仅步数限制 | 仅步数限制 |
| 输出防护 | 5 层链 | 无 | 基础重试 |
| 记忆与任务耦合 | MemoryGraph + TaskGraph 双向同步 | 无内置 | 无 |
| 小模型补偿 | 8 种专项机制 | 无 | 无 |
| 任务挂起/恢复 | 完整持久化 | Checkpointing | 无 |
祖龙不是“更强的模型调用”,而是“更可靠的 Agent 运行时”。
它允许你用 27B 模型,完成原本只有云端全量模型才能稳定跑的任务。
6. 最后:开源 & 邀请你一起玩
祖龙已分层开源详情见GitHub仓库。
GitHub 仓库:👉 github.com/beautistart…
如果你正在做:
- AI Agent / 长记忆系统
- 代码智能分析 / IDE 插件
- 机器人认知后端
- 或者单纯对“Agent 不崩溃”感兴趣
欢迎来:
- ⭐ Star 支持一下
- 🐛 提 Issue 讨论 / 吐槽
- 💬 加入 Discord 或 GitHub Discussions 一起共建
📊 当前 Star 数:0 —— 如果这篇文章对你有启发,欢迎去 GitHub 点个 ⭐️,每增加 100 个 Star,我会发布下一篇深度技术解析(下一篇预告:MemoryGraph 异构图记忆系统的完整设计原理)。 让 AI 真正拥有记忆,并且稳定地执行复杂任务 —— 这件事,一个人做很慢,一群人做会很快。