548 lines
23 KiB
Markdown
548 lines
23 KiB
Markdown
# Agent Architecture Audit — 小龙 🐉 全系统
|
||
|
||
> **审计日期:** 2026-06-05 22:13 CST
|
||
> **审计范围:** scripts/, memory/, test/, rules/, workspace config, prompts
|
||
> **审计方法:** 静态分析 + 架构模式检查 + 运行行为验证
|
||
|
||
---
|
||
|
||
## 第一部分:代码质量审计
|
||
|
||
### 发现清单
|
||
|
||
#### Critical
|
||
|
||
**C-01: Domain Matcher 生成无效 FK 引用**
|
||
- 位置: `model-contract.mjs` → `createContract()` → FK 生成逻辑
|
||
- 问题: 生成 `REFERENCES boards(id)`、`REFERENCES assignees(id)`、`REFERENCES equipments(id)` 等指向不存在的表的外键
|
||
- 影响: 每次生成新 domain 都会破坏 SQLite schema,导致 INSERT/DELETE 测试失败
|
||
- 根因: FK 生成只看 field name 是否含 `Id` 后缀,不验证目标表是否存在
|
||
- 修复: `createContract` 阶段校验 FK 目标表是否在 entities 列表中
|
||
|
||
**C-02: Domain Matcher 误匹配导致实体污染**
|
||
- 位置: `project-intake-agent.mjs` → `matchDomain()`
|
||
- 问题: "仓库出入库"→NoteApp,"合同管理"→OAFlow,"设备巡检"→generic
|
||
- 影响: 2/3 真实项目匹配到错误 domain,产生无关组件(NoteCard、contracts/approvals 表)
|
||
- 根因: 纯关键词计数匹配,无权重/否定词机制
|
||
- 修复: 增加关键词权重、否定关键词、最高频实体优先
|
||
|
||
#### High
|
||
|
||
**H-01: Duplicate Export Bug**
|
||
- 位置: `frontend-builder-agent.mjs` → service 文件生成逻辑
|
||
- 问题: `items.ts` 生成了两遍 `export function get()` 和 `export function post()`
|
||
- 影响: TypeScript 编译失败
|
||
- 根因: Domain 模板和 generic 模板叠加生成,无去重
|
||
|
||
**H-02: Singularize Bug — `equipments` vs `equipment`**
|
||
- 位置: `model-contract.mjs` → `toTableName()`
|
||
- 问题: `equipment` 被 singularize 为 `equipments`(添加了 s),但 SQLite 表名是 `equipment`
|
||
- 影响: FK 引用失败
|
||
- 根因: singularize 规则对不可数名词处理有误
|
||
|
||
**H-03: Domain Bleed — 跨域组件污染**
|
||
- 位置: `frontend-builder-agent.mjs` → component 生成逻辑
|
||
- 问题: NoteApp domain 的 `NoteCard` 组件被注入到仓库出入库系统
|
||
- 影响: 构建失败(类型不匹配)
|
||
- 根因: component 生成不检查当前 domain 是否为 note
|
||
|
||
**H-04: 3.9GB `.tmp-benchmark` 目录未清理**
|
||
- 位置: `/Users/a1234/.openclaw/workspace/.tmp-benchmark/`
|
||
- 问题: 历史 benchmark 产生的临时文件占 3.9GB
|
||
- 影响: 磁盘浪费
|
||
- 根因: 无自动清理机制
|
||
|
||
#### Medium
|
||
|
||
**M-01: Guard Scripts 全部使用相同 import 模式但无共享基类**
|
||
- 位置: `scripts/guard-*.mjs` (6 个文件)
|
||
- 问题: 每个 guard 都独立 import `readdirSync, readFileSync, existsSync`,逻辑高度相似
|
||
- 影响: 维护成本高,改一处要改 6 处
|
||
|
||
**M-02: `type: "commonjs"` 但所有脚本使用 ESM**
|
||
- 位置: `package.json`
|
||
- 问题: `"type": "commonjs"` 但所有 `.mjs` 文件使用 `import/export`
|
||
- 影响: `.mjs` 扩展名强制 ESM 所以能跑,但 `package.json` 声明与实际不符
|
||
- 风险: 低(.mjs 优先级高于 type 字段),但容易误导
|
||
|
||
**M-03: Active Memory 测试存在但脚本已删除**
|
||
- 位置: `test/active-memory/*.test.mjs` (31 个文件) vs `scripts/active-memory-*.mjs` (不存在)
|
||
- 问题: `package.json` 引用的 `active-memory:*` 脚本全部不存在
|
||
- 影响: 6 个 npm script 全部不可用
|
||
- 根因: 脚本被删除但测试和 package.json 未清理
|
||
|
||
**M-04: Dream Cycle 日志但事件数极少**
|
||
- 位置: `memory/.dreams/events.jsonl` (8 events), `memory/.dreams/short-term-recall.json` (350 entries)
|
||
- 问题: Dream Cycle 每天运行但事件捕获极少
|
||
- 影响: 记忆系统实际贡献度存疑
|
||
|
||
#### Low
|
||
|
||
**L-01: `.memory-core-test/` 和 `.active-memory-precompute-cache/` 空目录**
|
||
- 位置: workspace root
|
||
- 影响: 无功能影响,只是残留
|
||
|
||
**L-02: 多个 report 文件堆积在 workspace root**
|
||
- 位置: `benchmark-report.md`, `certification-report.md`, `capability-report.md` 等 10+ 个文件
|
||
- 影响: workspace 混乱,应归档到 `docs/reports/`
|
||
|
||
---
|
||
|
||
## 第二部分:性能与瘦身审计
|
||
|
||
### 存储浪费分析
|
||
|
||
| 路径 | 大小 | 状态 |
|
||
|------|------|------|
|
||
| `.tmp-benchmark/` | **3.9 GB** | 🔴 **立即删除** |
|
||
| `output/` | **1.3 GB** | 🟡 按需保留 |
|
||
| `.benchmark/` | 87 MB | 🟡 可归档 |
|
||
| `.codegraph/` | 19 MB | 🟢 保留 |
|
||
| `.tmp-pr12-test/` | 16 KB | 🔴 删除 |
|
||
| `.tmp-pr13-test/` | 28 KB | 🔴 删除 |
|
||
| `.memory-core-test/` | 0 B | 🔴 删除空目录 |
|
||
| `.active-memory-precompute-cache/` | 0 B | 🔴 删除空目录 |
|
||
|
||
**总浪费: ~4 GB**
|
||
|
||
### 代码冗余分析
|
||
|
||
| 冗余类型 | 位置 | 影响 |
|
||
|----------|------|------|
|
||
| Guard 脚本重复 | 6× guard-*.mjs | 维护成本 ×6 |
|
||
| Contract 相关脚本重复 | model-contract + contract-consistency-test + contract-e2e (1,630 行) | 测试和核心逻辑边界模糊 |
|
||
| Active Memory 测试残留 | 31 个 test 文件,0 个实现 | 测试无效 |
|
||
| Workspace root 报告堆积 | 10+ 个 .md/.json | 混乱 |
|
||
|
||
### Token 浪费分析
|
||
|
||
| 浪费源 | 估算 |
|
||
|--------|------|
|
||
| MEMORY.md 注入上下文(每次对话) | ~2,500 tokens |
|
||
| AGENTS.md + SOUL.md + IDENTITY.md + USER.md + TOOLS.md | ~3,000 tokens |
|
||
| HEARTBEAT.md | ~500 tokens |
|
||
| capability-registry.json (注入 context) | ~800 tokens |
|
||
| 其他 workspace files | ~1,000 tokens |
|
||
| **总注入上下文** | **~7,800 tokens/会话** |
|
||
|
||
**优化空间:** capability-registry.json 和 TOOLS.md 注入无实际使用价值(工具由 OpenClaw 管理),可节省 ~1,800 tokens。
|
||
|
||
### 必须保留 / 建议删除
|
||
|
||
#### 必须保留
|
||
- `scripts/project-intake-agent.mjs` — Generator 入口
|
||
- `scripts/architecture-agent.mjs` — 架构生成
|
||
- `scripts/frontend-builder-agent.mjs` — 前端生成
|
||
- `scripts/backend-builder-agent.mjs` — 后端生成
|
||
- `scripts/fullstack-composer-agent.mjs` — 全栈组合
|
||
- `scripts/model-contract.mjs` — 核心数据模型
|
||
- `scripts/lib/deprecation-warning.mjs` — 工具函数
|
||
- `memory/daily/` — 日常记忆
|
||
- `memory/vault.md` — 动态记忆
|
||
- `memory/registers/` — 持久化事实
|
||
- `test/e2e-regression.test.mjs` — 核心回归测试
|
||
- `test/software-factory-core.test.mjs` — 核心测试
|
||
|
||
#### 建议保留
|
||
- `scripts/guard-all.sh` — 统一入口
|
||
- `scripts/guard-runtime-core.mjs` — 最有价值的 guard
|
||
- `scripts/smoke-test.mjs` — 快速验证
|
||
- `scripts/dream-cycle.sh` — 记忆维护
|
||
- `scripts/memory-sync.sh` — 记忆同步
|
||
- `scripts/memory-auto.sh` — 记忆自动化
|
||
|
||
#### 可选
|
||
- `scripts/guard-dreaming-phase.mjs` — 低频使用
|
||
- `scripts/guard-memory-backend.mjs` — 低频使用
|
||
- `scripts/guard-tool-path.mjs` — 低频使用
|
||
- `scripts/guard-tool-trace.mjs` — 低频使用
|
||
- `scripts/check-deprecations.mjs` — 低频使用
|
||
- `scripts/electron-builder-agent.mjs` — Real World 未使用
|
||
- `scripts/release-builder-agent.mjs` — Real World 未使用
|
||
- `test/active-memory/` (31 个文件) — 实现已删除
|
||
|
||
#### 建议删除
|
||
- `.tmp-benchmark/` (3.9 GB) — 纯浪费
|
||
- `.tmp-pr12-test/`, `.tmp-pr13-test/` — 临时残留
|
||
- `.memory-core-test/`, `.active-memory-precompute-cache/` — 空目录
|
||
- `scripts/contract-consistency-test.mjs` — 可合并到 e2e-regression
|
||
- `scripts/contract-e2e.mjs` — 可合并到 e2e-regression
|
||
- workspace root 的 10+ 个 report 文件 → 归档到 `docs/reports/`
|
||
|
||
---
|
||
|
||
## 第三部分:任务规划能力审计
|
||
|
||
### 当前状态
|
||
|
||
```
|
||
User 输入
|
||
↓
|
||
小龙理解意图(LLM 推理)
|
||
↓
|
||
直接执行(调用工具)
|
||
↓
|
||
验证结果
|
||
↓
|
||
返回用户
|
||
```
|
||
|
||
### 缺失环节
|
||
|
||
| 环节 | 存在? | 说明 |
|
||
|------|--------|------|
|
||
| **Planner Agent** | ❌ | 无独立规划器 |
|
||
| **Task Decomposition** | ❌ | 无自动任务拆解 |
|
||
| **Dynamic Task Tree** | ❌ | Goal→SubGoal→Task→Action 不支持 |
|
||
| **Task Rollback** | ❌ | 失败后无回滚机制 |
|
||
| **Failure Replanning** | ❌ | 失败后靠 LLM 临时推理,无结构化重规划 |
|
||
| **Complexity Detection** | ⚠️ 部分 | 靠 LLM 推理判断,无显式机制 |
|
||
| **Plan Persistence** | ⚠️ 部分 | `update_plan` 工具存在但仅当前会话有效 |
|
||
|
||
### 评估
|
||
|
||
- **简单任务**: 直接执行 ✅ 正确
|
||
- **复杂任务**: 仍直接执行,靠 LLM 推理拆解 ⚠️ 不稳定
|
||
- **多步骤任务**: 会使用 `update_plan` 跟踪进度 ✅ 但无自动拆解
|
||
- **失败恢复**: 靠 LLM 自行判断重试 ⚠️ 不可靠
|
||
|
||
### 评分: **35/100**
|
||
|
||
**优势:**
|
||
- LLM 推理能力作为隐式 planner 能处理大多数任务
|
||
- `update_plan` 提供了基本的任务跟踪
|
||
|
||
**缺陷:**
|
||
- 无显式 planning 层
|
||
- 无 complexity classifier
|
||
- 无 structured replanning
|
||
- 无 task dependency graph
|
||
- 无 parallel task execution planning
|
||
|
||
### 改进方案
|
||
|
||
```
|
||
Level 0 (当前): LLM 推理 → 直接执行
|
||
Level 1 (推荐): LLM 推理 → Plan Check → 执行 → 验证
|
||
Level 2 (进阶): Planner Agent → Task Graph → 执行器 → 反思
|
||
Level 3 (理想): 自适应规划 → 动态任务树 → 失败重规划 → 学习
|
||
```
|
||
|
||
**立即可做:** 在 AGENTS.md 中增加 planning 协议 — 复杂任务必须先输出 plan 再执行。
|
||
|
||
---
|
||
|
||
## 第四部分:记忆系统审计
|
||
|
||
### 记忆层全景
|
||
|
||
| 记忆层 | 路径 | 行数 | 真正使用? | 使用频率 | 实际贡献 |
|
||
|--------|------|------|-----------|----------|----------|
|
||
| **MEMORY.md** | workspace root | 126 | ✅ 每会话注入 | 每次 | ⭐⭐⭐⭐⭐ 核心 |
|
||
| **AGENTS.md** | workspace root | 128 | ✅ 每会话注入 | 每次 | ⭐⭐⭐⭐ 行为指南 |
|
||
| **SOUL.md** | workspace root | 30 | ✅ 每会话注入 | 每次 | ⭐⭐⭐⭐ 人格 |
|
||
| **IDENTITY.md** | workspace root | 19 | ✅ 每会话注入 | 每次 | ⭐⭐⭐ 基础 |
|
||
| **USER.md** | workspace root | 13 | ✅ 每会话注入 | 每次 | ⭐⭐⭐ 基础 |
|
||
| **TOOLS.md** | workspace root | 21 | ✅ 每会话注入 | 每次 | ⭐⭐ 低(工具由 OpenClaw 管理) |
|
||
| **HEARTBEAT.md** | workspace root | 52 | ⚠️ 心跳时 | 低频 | ⭐⭐⭐ 心跳检查 |
|
||
| **memory/vault.md** | memory/ | ~200 | ⚠️ 按需读取 | 中频 | ⭐⭐⭐⭐ 动态记忆 |
|
||
| **memory/daily/** | memory/daily/ | ~700 | ⚠️ 按需读取 | 中频 | ⭐⭐⭐⭐ 日志 |
|
||
| **memory/registers/** | memory/registers/ | ~200 | ⚠️ 按需读取 | 低频 | ⭐⭐⭐ 持久事实 |
|
||
| **memory/USER.md** | memory/ | ~50 | ⚠️ 按需读取 | 低频 | ⭐⭐ 与 workspace USER.md 重复 |
|
||
| **memory/SESSION_START.md** | memory/ | ~30 | ⚠️ 启动时 | 低频 | ⭐⭐ 协议文件 |
|
||
| **memory/core/** | memory/core/ | ~300 | ❌ 极少读取 | 极低 | ⭐ 与 registers 重复 |
|
||
| **memory/entities/** | memory/entities/ | ~100 | ❌ 极少读取 | 极低 | ⭐ 实体记忆,价值低 |
|
||
| **memory/projects/** | memory/projects/ | ~400 | ⚠️ 按需 | 低频 | ⭐⭐⭐ 项目记忆 |
|
||
| **memory/CONTRADICTION.md** | memory/ | ~50 | ❌ 从未读取 | 无 | ⭐ 无贡献 |
|
||
| **memory/companion-log.md** | memory/ | ~50 | ❌ 从未读取 | 无 | ⭐ 无贡献 |
|
||
| **memory/pet-tuanzi.md** | memory/ | ~30 | ❌ 从未读取 | 无 | ⭐ 无贡献 |
|
||
| **memory/index.md** | memory/ | ~50 | ❌ 从未读取 | 无 | ⭐ 无贡献 |
|
||
| **memory/.dreams/** | memory/.dreams/ | ~350 | ⚠️ dream-cycle | 低频 | ⭐⭐ 短期召回 |
|
||
| **memory/2026-06-04.md** | memory/ | ~50 | ⚠️ 按需 | 低频 | ⭐⭐ 旧格式日志 |
|
||
|
||
### 问题诊断
|
||
|
||
#### 1. 记忆冗余
|
||
- `memory/USER.md` 与 `workspace/USER.md` 重复
|
||
- `memory/core/` 与 `memory/registers/` 功能重叠
|
||
- `memory/SESSION_START.md` 与 `AGENTS.md` 功能重叠
|
||
|
||
#### 2. 记忆污染
|
||
- `memory/pet-tuanzi.md` — 宠物信息,与核心工作无关
|
||
- `memory/companion-log.md` — 伴侣日志,从未使用
|
||
- `memory/CONTRADICTION.md` — 矛盾记录,从未使用
|
||
|
||
#### 3. 记忆孤岛
|
||
- `memory/core/` 目录有 6 个文件但几乎从不被读取
|
||
- `memory/entities/` 有 2 个实体文件但从未被检索
|
||
- `memory/index.md` 存在但无实际索引功能
|
||
|
||
#### 4. Dream Cycle 效率低
|
||
- `events.jsonl` 只有 8 条事件
|
||
- `short-term-recall.json` 有 350 条但从未被主动检索
|
||
- Dream Cycle 每天运行但产出极少
|
||
|
||
### 保留/删除/替代
|
||
|
||
| 文件 | 操作 | 原因 |
|
||
|------|------|------|
|
||
| `memory/core/` | **删除** | 与 registers 重复,从未被读取 |
|
||
| `memory/entities/` | **删除** | 从未被检索,价值低 |
|
||
| `memory/CONTRADICTION.md` | **删除** | 从未使用 |
|
||
| `memory/companion-log.md` | **删除** | 从未使用 |
|
||
| `memory/pet-tuanzi.md` | **归档** | 移到 `memory/archive/` |
|
||
| `memory/index.md` | **删除** | 无实际索引功能 |
|
||
| `memory/USER.md` | **删除** | 与 workspace USER.md 重复 |
|
||
| `memory/SESSION_START.md` | **合并** | 合并到 AGENTS.md |
|
||
| `memory/2026-06-04.md` | **归档** | 旧格式,移到 `memory/daily/` |
|
||
|
||
---
|
||
|
||
## 第五部分:工具系统审计
|
||
|
||
### 工具价值排行榜
|
||
|
||
#### 高价值(每次会话都用)
|
||
| 工具 | 价值 |
|
||
|------|------|
|
||
| `read` / `write` / `edit` | ⭐⭐⭐⭐⭐ 文件操作核心 |
|
||
| `exec` | ⭐⭐⭐⭐⭐ 命令执行核心 |
|
||
| `context-mode__ctx_search` | ⭐⭐⭐⭐⭐ 知识检索 |
|
||
| `context-mode__ctx_execute` | ⭐⭐⭐⭐⭐ 代码沙箱 |
|
||
| `context-mode__ctx_index` | ⭐⭐⭐⭐ 知识存储 |
|
||
| `context-mode__ctx_fetch_and_index` | ⭐⭐⭐⭐ Web 内容索引 |
|
||
| `web_search` / `web_fetch` | ⭐⭐⭐⭐ 信息获取 |
|
||
| `memory_search` / `memory_get` | ⭐⭐⭐⭐ 记忆检索 |
|
||
| `cron` | ⭐⭐⭐⭐ 定时任务 |
|
||
|
||
#### 中价值(偶尔使用)
|
||
| 工具 | 价值 |
|
||
|------|------|
|
||
| `sessions_spawn` / `sessions_yield` | ⭐⭐⭐ 子任务 |
|
||
| `update_plan` | ⭐⭐⭐ 任务跟踪 |
|
||
| `session_status` | ⭐⭐ 状态查看 |
|
||
| `image` | ⭐⭐ 图像分析 |
|
||
| `video_generate` | ⭐⭐ 视频生成 |
|
||
|
||
#### 低价值(极少使用)
|
||
| 工具 | 价值 |
|
||
|------|------|
|
||
| `context-mode__ctx_insight` | ⭐ Dashboard |
|
||
| `context-mode__ctx_doctor` | ⭐ 诊断 |
|
||
| `context-mode__ctx_upgrade` | ⭐ 升级 |
|
||
| `context-mode__ctx_purge` | ⭐ 清理 |
|
||
| `context-mode__ctx_stats` | ⭐ 统计 |
|
||
|
||
### 工具问题
|
||
|
||
1. **context-mode 工具过多** — 10 个 ctx_* 工具,功能重叠
|
||
2. **sessions 工具链复杂** — sessions_list/history/send/spawn/yield,使用率低
|
||
3. **image/video 工具未充分利用** — 生成式能力几乎未使用
|
||
|
||
---
|
||
|
||
## 第六部分:Prompt 系统审计
|
||
|
||
### 注入上下文分析
|
||
|
||
| 文件 | Token 估算 | 每会话注入 | 冗余度 |
|
||
|------|-----------|-----------|--------|
|
||
| AGENTS.md | ~1,500 | ✅ | 低 |
|
||
| SOUL.md | ~400 | ✅ | 低 |
|
||
| IDENTITY.md | ~250 | ✅ | 中(与 SOUL.md 重叠) |
|
||
| USER.md | ~200 | ✅ | 中(与 memory/USER.md 重叠) |
|
||
| TOOLS.md | ~300 | ✅ | 高(工具由 OpenClaw 管理) |
|
||
| MEMORY.md | ~2,500 | ✅ | 低 |
|
||
| HEARTBEAT.md | ~700 | ✅ | 低 |
|
||
|
||
**总注入: ~5,850 tokens/会话**
|
||
|
||
### 冲突检测
|
||
|
||
| 冲突 | 严重度 |
|
||
|------|--------|
|
||
| IDENTITY.md 中的性格定义 vs SOUL.md 中的 Vibe 定义 | 低(互补) |
|
||
| USER.md vs memory/USER.md 重复 | 中(浪费 token) |
|
||
| TOOLS.md 说"工具速查" vs 实际工具由 OpenClaw 管理 | 中(误导) |
|
||
| AGENTS.md 的"执行流程" vs MEMORY.md 的"工程范式" 重叠 | 低(强化) |
|
||
|
||
### 精简方案
|
||
|
||
| 操作 | 节省 Token |
|
||
|------|-----------|
|
||
| 删除 TOOLS.md(工具由 OpenClaw 管理) | ~300 |
|
||
| 合并 IDENTITY.md 到 SOUL.md | ~200 |
|
||
| 删除 workspace USER.md,保留 memory/USER.md | ~200 |
|
||
| 精简 MEMORY.md 中的重复内容 | ~300 |
|
||
| **总节省** | **~1,000 tokens** |
|
||
|
||
---
|
||
|
||
## 第七部分:AI Agent 反模式检查
|
||
|
||
| 反模式 | 存在? | 严重度 | 证据 |
|
||
|--------|--------|--------|------|
|
||
| **Feature Creep** (功能膨胀) | ✅ | 🔴 High | Active Memory 系统:31 个测试文件但实现已删除 |
|
||
| **Over Engineering** (过度设计) | ✅ | 🟡 Medium | 6 个 Guard 脚本做类似的事 |
|
||
| **Memory Overload** (记忆过载) | ✅ | 🟡 Medium | 20+ 个记忆文件,多个从未使用 |
|
||
| **Tool Explosion** (工具爆炸) | ⚠️ | 🟡 Medium | 10 个 ctx_* 工具,功能重叠 |
|
||
| **Prompt Bloat** (Prompt 肥大) | ⚠️ | 🟢 Low | ~5,850 tokens,可控 |
|
||
| **Agent Drift** (Agent 漂移) | ⚠️ | 🟡 Medium | Domain Matcher 偏离用户意图 |
|
||
| **Context Pollution** (上下文污染) | ✅ | 🟡 Medium | workspace root 堆积 10+ 个报告文件 |
|
||
| **Architecture Debt** (架构债务) | ✅ | 🔴 High | Active Memory 脚本删除但测试残留 |
|
||
| **Reasoning Collapse** (推理退化) | ❌ | - | 未观察到 |
|
||
| **Planning Collapse** (规划退化) | ❌ | - | 原生就弱,非退化 |
|
||
|
||
---
|
||
|
||
## 第八部分:未来升级空间
|
||
|
||
### 当前等级评估
|
||
|
||
```
|
||
Level 1: Script ✅ 已超越
|
||
Level 2: Workflow ✅ 已超越
|
||
Level 3: Agent ✅ 当前位置 — 隐式规划,工具调用,记忆系统
|
||
Level 4: Multi-Agent ⚠️ 部分具备 — sessions_spawn 但无协调协议
|
||
Level 5: Autonomous ❌ 未达到
|
||
Level 6: Self-Improving ❌ 未达到
|
||
Level 7: Self-Evolving ❌ 未达到
|
||
```
|
||
|
||
**当前: Level 3 — Agent**
|
||
|
||
### 距离 Level 4 (Multi-Agent) 还缺什么
|
||
|
||
1. **Agent 间通信协议** — 当前 sessions_send 是消息传递,非结构化协议
|
||
2. **任务分配器** — 无中央调度器决定哪个 agent 处理什么任务
|
||
3. **共享状态** — agents 间无共享 memory/workspace(除了文件系统)
|
||
4. **角色定义** — 无专门化的 agent 角色(planner/executor/validator)
|
||
5. **冲突解决** — 多 agent 并发修改同一资源无锁机制
|
||
|
||
### 距离 Level 5 (Autonomous) 还缺什么
|
||
|
||
1. **目标驱动** — 当前是任务驱动,非目标驱动
|
||
2. **自主决策** — 无自主决定下一步做什么的能力
|
||
3. **环境感知** — 无持续监控外部环境变化
|
||
4. **资源管理** — 无自主管理 token/时间/存储预算
|
||
|
||
---
|
||
|
||
## 最终输出
|
||
|
||
### 1. 架构评分卡
|
||
|
||
| 维度 | 评分 | 说明 |
|
||
|------|------|------|
|
||
| **Planning** | 35/100 | 无显式 planner,靠 LLM 推理 |
|
||
| **Memory** | 55/100 | 多层架构但冗余严重,实际使用率低 |
|
||
| **Tool Use** | 75/100 | 核心工具优秀,但 ctx_* 过多 |
|
||
| **Reasoning** | 80/100 | LLM 推理能力作为隐式推理层 |
|
||
| **Reliability** | 70/100 | 生成器可靠性高,但 domain matcher 不稳定 |
|
||
| **Maintainability** | 50/100 | 架构债务明显,残留代码多 |
|
||
| **Scalability** | 45/100 | 无 multi-agent 协调,无自治能力 |
|
||
|
||
**综合评分: 59/100**
|
||
|
||
### 2. 风险排行榜 Top 10
|
||
|
||
| # | 风险 | 严重度 | 影响 |
|
||
|---|------|--------|------|
|
||
| 1 | Domain Matcher 系统性误匹配 | 🔴 Critical | 2/3 真实项目生成错误 |
|
||
| 2 | FK 生成不验证目标表存在 | 🔴 Critical | 每次生成都会破坏 schema |
|
||
| 3 | Active Memory 系统残留 | 🔴 High | 31 个无效测试,6 个无效 npm script |
|
||
| 4 | `.tmp-benchmark` 3.9GB 未清理 | 🔴 High | 磁盘浪费 |
|
||
| 5 | Singularize 规则 bug | 🟡 High | `equipment`→`equipments` 破坏 FK |
|
||
| 6 | Domain Bleed 组件污染 | 🟡 High | 跨域组件导致构建失败 |
|
||
| 7 | Duplicate Export 生成 | 🟡 Medium | service 文件重复导出 |
|
||
| 8 | 记忆系统冗余严重 | 🟡 Medium | 20+ 文件多个无用 |
|
||
| 9 | 无显式 Planning 层 | 🟡 Medium | 复杂任务不稳定 |
|
||
| 10 | Workspace 根目录混乱 | 🟢 Low | 10+ 个报告文件堆积 |
|
||
|
||
### 3. 优化路线图
|
||
|
||
#### 立即修复(今天)
|
||
1. `rm -rf .tmp-benchmark/ .tmp-pr12-test/ .tmp-pr13-test/ .memory-core-test/ .active-memory-precompute-cache/` — 释放 3.9GB
|
||
2. 修复 `model-contract.mjs` FK 生成逻辑 — 验证目标表存在
|
||
3. 修复 `matchDomain()` — 增加关键词权重和否定词
|
||
4. 删除 `test/active-memory/` (31 个无效测试)
|
||
5. 清理 `package.json` 中的 6 个无效 npm script
|
||
|
||
#### 1 周内修复
|
||
1. 修复 singularize 规则 — `equipment` 不可数名词处理
|
||
2. 修复 domain bleed — component 生成检查当前 domain
|
||
3. 修复 duplicate export — service 文件生成去重
|
||
4. 清理记忆系统 — 删除 `memory/core/`, `memory/entities/`, `memory/CONTRADICTION.md`, `memory/companion-log.md`
|
||
5. 合并 IDENTITY.md 到 SOUL.md,删除 TOOLS.md
|
||
6. 归档 workspace root 的 10+ 个报告文件到 `docs/reports/`
|
||
|
||
#### 1 个月内修复
|
||
1. 重构 Guard 脚本 — 提取共享基类,6→2 个文件
|
||
2. 增加显式 Planning 协议 — 复杂任务先输出 plan
|
||
3. 合并 contract-consistency-test + contract-e2e 到 e2e-regression
|
||
4. 优化 Dream Cycle — 增加事件捕获频率
|
||
5. 减少注入上下文 — 目标从 ~5,850 降到 ~4,000 tokens
|
||
|
||
#### 长期规划
|
||
1. 设计 Multi-Agent 协调协议
|
||
2. 实现显式 Planner Agent
|
||
3. 实现 Complexity Classifier
|
||
4. 实现 Task Dependency Graph
|
||
5. 实现 Failure Replanning
|
||
|
||
### 4. 删除清单
|
||
|
||
> **删掉后系统会更强的东西**
|
||
|
||
| 删除项 | 大小/行数 | 理由 |
|
||
|--------|----------|------|
|
||
| `.tmp-benchmark/` | 3.9 GB | 纯浪费 |
|
||
| `test/active-memory/` (31 files) | ~15,000 行 | 实现已删除,测试无效 |
|
||
| `memory/core/` (6 files) | ~300 行 | 与 registers 重复,从未读取 |
|
||
| `memory/entities/` (2 files) | ~100 行 | 从未被检索 |
|
||
| `memory/CONTRADICTION.md` | ~50 行 | 从未使用 |
|
||
| `memory/companion-log.md` | ~50 行 | 从未使用 |
|
||
| `memory/index.md` | ~50 行 | 无实际索引功能 |
|
||
| `scripts/contract-consistency-test.mjs` | 776 行 | 可合并到 e2e-regression |
|
||
| `scripts/contract-e2e.mjs` | 206 行 | 可合并到 e2e-regression |
|
||
| `TOOLS.md` | 21 行 | 工具由 OpenClaw 管理,注入浪费 |
|
||
| workspace root 10+ report files | ~50,000 行 | 归档到 docs/reports/ |
|
||
|
||
**预计释放: 3.9GB 磁盘 + ~16,500 行代码 + ~500 tokens/会话**
|
||
|
||
### 5. 最终结论
|
||
|
||
> **如果我是这个项目的 CTO:**
|
||
|
||
#### 会保留
|
||
- **Generator 核心** (7 个 agent scripts + model-contract) — 这是真正的价值
|
||
- **记忆系统核心** (MEMORY.md + daily/ + vault.md + registers/) — 经过验证有效
|
||
- **E2E 测试** (e2e-regression + smoke-test + guard-all) — 质量保障
|
||
- **OpenClaw 基础设施** — 工具系统、会话管理、cron
|
||
|
||
#### 会删除
|
||
- **Active Memory 全系统** — 脚本已删,测试残留,package.json 引用无效
|
||
- **3.9GB 临时文件** — 无理由保留
|
||
- **6 个 Guard 脚本中的 4 个** — 合并到 guard-all.sh 一个脚本
|
||
- **记忆系统中的孤岛文件** — core/, entities/, CONTRADICTION.md, companion-log.md, index.md
|
||
- **workspace root 的报告堆积** — 归档到 docs/
|
||
|
||
#### 会重构
|
||
1. **Domain Matcher** — 从纯关键词计数改为加权匹配 + 否定词 + 实体优先级
|
||
2. **FK 生成逻辑** — 增加目标表存在性验证
|
||
3. **Guard 脚本** — 从 6 个独立脚本重构为 1 个可配置的 guard 框架
|
||
4. **记忆系统** — 从"写入优先"重构为"读取优先",删除从未被读取的文件
|
||
|
||
#### 为什么
|
||
> 这个项目的核心问题不是功能不够,而是**功能膨胀后的维护成本**。
|
||
>
|
||
> Generator 本身是优秀的(Real World Qualification 证明了这一点),但围绕它生长了大量从未使用的基础设施(Active Memory 测试、Guard 脚本、记忆孤岛)。
|
||
>
|
||
> **下一步应该做的不是加功能,而是减功能。** 删掉 3.9GB 的临时文件、16,500 行无效测试、6 个重复的 Guard 脚本、10 个从未读取的记忆文件。
|
||
>
|
||
> 系统会因此变得更强。
|
||
|
||
---
|
||
|
||
*审计完成 — 小龙 🐉 Agent Architecture Audit*
|