# 智能体质量评估与改进建议

日期：2026-06-17 · 版本基线：v1.4.2
视角：从"智能体质量"出发，对标当前主流智能体平台，评估 lambdagentpaas 的智能体实现并给出建议。
证据：本评估锚定 2026-06-14~17 期间真实运行复盘（run_id / commit 见正文），非空谈。

---

## 一、什么叫"智能体质量"（评估维度）

| 维度 | 含义 | 业界标杆 |
|---|---|---|
| 执行可靠性 | 让它干的事是否真发生：工具真执行、产物真落盘 | Claude Code / Codex 原生 harness |
| 上下文 / 收敛性 | 记得住、往前走 vs 忘了、乱跳重做 | LangGraph（state/checkpoint）、原生 harness |
| 可复现 / 隔离 | per-run 隔离、可追溯 | Dify / LangSmith |
| 可度量（eval） | 能给智能体**输出质量**打分、回归测**行为** | LangSmith / Braintrust / Ragas |
| 安全 / 约束 | 沙箱、权限、防幻觉/伪造 | 各家在补 |
| 形式化根基 | 类型 / 效果 / 成本语义、可证明保证 | **几乎无人有 —— lambdagentpaas 独有** |

---

## 二、现状打分（对标主流）

### 强项（真实差异化）
- **形式化内核**：λ 演算 + typed effects + cost 语义 + Guard/validator。Dify/Coze/LangChain/Claude Code 都没有。是 AgentOS / 论文线的资产。
- **可靠性加固的工程纪律**：6/14~6/17 针对真实故障逐个修 + 配回归——目录一致性、会话轮换/熔断、MCP 隔离、401 人话、网络重试、进度纪律、per-run 隔离。
- **两条执行车道的觉悟**（commit 6758ff8）：意识到 claude-code 应"当 agent 本身"而非套 react-over-text 封装。
- **单机 / 隐私 / 自带模型**：契合 beachhead（有经费研究室 PI）。

### 弱项（质量短板，按严重度）

**1. react-over-text 车道从根上脆（头号问题）**
让模型把工具调用当散文手写 `{"tool":...}`、平台正则抠并自己执行。并发症（均实锤）：
- run_541390a1ea49：claude-code 76 次工具调用 **0 执行 0 落盘**（`input` 裸串、`path` vs `file_path`、格式飘）。
- run_bf2405e28547：相对路径写入落错目录。
- 主流早用模型**原生 function-calling**（结构化 tool_use），qwen/openai/deepseek 都支持，可靠性高一个量级。本平台只有 claude-code 走了 native，其他模型仍困在最脆那条。

**2. 没有 eval / 质量度量**
全程模式是"跑一条 → 人肉看 trace → 发现没落盘 → 修"。有代码单测（lambdagent 594 + agentpaas 344），但**零条"智能体行为"测**：给定输入、产物是否达标。测不了 → 改不动 → 只能人肉当 eval，不可扩展、不可回归。

**3. 上下文管理原始**
手搓 `max_input_chars` / obs 截断 / history 裁剪 → 直接导致"忘了→乱跳→重做"（qwen-max 30720 溢出 commit 787126d；乱跳 commit fc93ae3）。PROGRESS.md 磁盘纪律很聪明，但本质是给弱上下文管理打补丁。主流用 summarization + 检索 + checkpoint。

**4. 可靠性是打地鼠**
dir / session / MCP / 401 / context / network 反应式逐个修。根因：react loop + 上下文是手卷的，provider 怪癖靠一个个 case 兜。LangGraph 的 loop/state/checkpoint 是被打磨过的原语。

### 横向定位
- vs Claude Code / Codex：raw agentic 可靠性**更弱**（未充分用原生能力），但多了编排 + 形式化 + 多模型 + 产品 UI。
- vs Dify / Coze / Flowise：多了形式化内核 + 单机隐私 + 科研 agent；但它们 eval/观测/生态更成熟。
- vs LangGraph / CrewAI：内核更有原则；但其操作层原语（state/checkpoint/streaming/human-in-loop）更经打磨。

---

## 三、最值得改的三件事（按投入产出排序）

### ① 全 provider 切原生 function-calling —— 最高杠杆
- **问题**：react-over-text 文本 JSON 解析是"0 执行 / 格式飘 / 相对路径落错"这一整类 bug 的总根源；6/14~17 约一半修复都在补这个模具的窟窿。
- **方案**：用各 provider 的结构化工具接口——OpenAI 兼容（qwen/deepseek/openai/moonshot/zhipu）走 `tools` + `tool_calls`；Anthropic 走 native tool_use；claude-code 保持 native 车道。react-over-text 仅留给真不支持 function-calling 的模型当兜底。
- **影响面**：`providers/openai_compat_provider`（加 tools 透传 + tool_calls 解析）、`conversation.py`（消息含 tool role）、`compiler._compile_react`（不再正则抠文本，改读结构化 tool_calls；`_extract_tool_call` 退化为兜底）。两车道架构不变，等于给 react 车道换"可靠引擎"。
- **验收**：同一批任务，工具执行成功率 / 落盘率显著上升；`input` 裸串、`path` 别名类 bug 归零。先在 qwen-plus 验证。
- **工作量**：中（provider + 解析层），但收益覆盖最大一类故障。

> **注（codex 修正）**：function-calling 只消灭"格式漂移 / JSON 抠错 / 裸串 input /
> 工具名解析"这一类。**"相对路径落错目录"不在其中**——那是 workspace contract + cwd 绑定 +
> sandbox + 参数 canonicalization 的**工具层硬约束**问题（`file_tools._resolve`/`_sandbox`，
> commit 5f38a1c/3bae21d/df648aa 已部分解决）。FC 与工具层约束是两件事，别把后者算进 FC 收益。

### ② 建第一方 agent 的行为回归集 —— 让质量可度量【已建框架, commit 见下】
- **修正认知**：不是"没有 eval"。`tests/test_pipeline.py` 已有 LLM-judge gate、阈值、halt、
  成本进 term graph——**eval 基础设施长出来了一截**。真正的缺口是：**有 pipeline/gate 单测，
  没有第一方 agent 的"行为回归集"**（真实智能体质量没被覆盖）。
- **方案**：复用已有 judge 基础设施，给每个第一方 agent 配 3–5 个 golden 任务（输入 +
  期望产物特征）→ LLM-judge 打分 → 进 CI 做**行为回归**（与代码单测分离，可 nightly）。
  指标：落盘率、产物达标率、步数/成本、纪律遵守率（PROGRESS 全勾率）、**FC vs 文本路径对比**。
- **验收**：每次改 provider/prompt/纪律/车道，看分数变化而非人肉看 trace。
- **工作量**：中；基础设施已有一截，主要是补"agent 维度"的覆盖。尽早建——是后续一切优化的尺子。

### ③ 把形式化内核兑现成"可感知质量"（否则只是论文资产）
- **修正认知**：形式化**不是自动加分项**。只有当它产出下列**具体可见的东西**时,才是产品质量：
  - 挂 Skill 前的 **effect / permission diff**（这条 Skill 会多读写哪、扩哪些权限）；
  - pipeline **编译期拒绝非法组合**（类型/基数/契约不符直接报错,不到运行时才炸）；
  - **并行写冲突静态检查**（两个 stage 写同一产物 → 编译期拦）；
  - **预测成本 vs 实际成本的误差报告**（`estimate_cost` 对账,准确率作卖点）；
  - 迁移前后**契约保持 / 降级证明**（换执行后端、换模型,行为契约可证不破）；
  - **Guard 失败原因 + 可复现 trace**（为什么没过、怎么重现）。
- **影响面**：把 `engine/pipeline` 的 cost/gate/effect 接到 UI + 运行时 + Skill 挂载校验。
- **工作量**：中–大；是护城河,非救火,排 ①② 之后。但**它才是 LambdAgent 真正不可替代的层**（见 §四）。

---

## 四、定位建议（codex 加狠版）

**问题不是"react-over-text 写得不够好",而是它本来就不该当主执行引擎。**
react-over-text 这个抽象边界**不适合承担 workspace agent 的主执行路径**——这两天的失败不是
几个 bug,是用错了执行车道。代码自证：`agentruntime/action_parser.py`（free-text 抠 JSON/XML/
keyword、裸串塞 `{"query":...}` = `path/file_path/input` 飘的来源）、`openai_compat_provider.py`
（请求体无 tools/tool_choice/tool_calls）、`claude_code_native.py` 注释（react=纯文本正则抠、
native=结构化执行）、`agents.py`（注释直接写 react-over-text 实测"0 执行、丢上下文、空转"）。

### 四层执行/能力划分（目标态）
```
react-over-text   → 降级为 legacy / fallback,不再作为主车道。
native harness    → Claude Code / Codex 负责 workspace agentic 执行。
structured tool-call → Qwen / OpenAI / DeepSeek 走原生 tools/tool_calls。
formal layer      → 只管 contract / policy / migration / eval / trace / cost / effect。
```

### 胜负手（一句话）
**LambdAgent 的胜负手不是"更会干活",而是让 Skill / Agent 在不同执行后端之间
可分析、可约束、可迁移、可回归。**
- 底层执行"借"成熟后端（native harness + structured tool-call），不自己卷 agentic 可靠性——卷不过基座。
- 全部差异化压到 **formal layer**：effect/permission diff、编译期拒非法组合、成本对账、迁移契约保持、Guard 可复现 trace、行为 eval。**这是别人抄不走、PI 会掏钱的层。**

落地顺序：① 原生 function-calling + react 降级为 fallback（根治执行）→ ② 第一方 agent 行为回归集（建尺子）→ ③ formal layer 兑现成可见保证（护城河）。

---

## 五、codex 评审修正（2026-06-17）

本评估方向对、80% 准、且准在痛处（把"模型不听话"改名成"执行车道选错了"）。codex 三处修正已并入上文：
1. **"没有 eval"太绝对** → 已有 pipeline/gate judge 基础设施（test_pipeline.py），缺的是第一方 agent 行为回归集。已改 §三②。
2. **FC 不消灭所有失败** → 它治格式/解析类;路径落错是工具层硬约束(workspace contract/cwd/sandbox/canonicalization),两件事。已加 §三① 注。
3. **形式化不是自动加分** → 必须产出 effect diff / 编译期拒绝 / 冲突检查 / 成本对账 / 迁移证明 / Guard trace 才算质量。已改 §三③。
并把战略加狠：react-over-text 从"主车道"降级为 fallback；formal layer 成为唯一差异化层。
