日期: 2026-04-04
目标项目: OpenCMO (374 files, ~29K lines Python, React/TS frontend)
LLM Backend: TeamoRouter-free via router.teamolab.com/v1
Engine Version: antigravity-engine 0.2.0
| 产物 | 状态 | 大小/行数 | 质量 |
|---|---|---|---|
| scan_report.json | ✅ | 2.1KB | 374 files, 0.02s, 完整 |
| conventions.md | ✅ | 289 行 | LLM 生成, 质量好 |
| structure.md | ✅ | 1384 行 | AST 提取, 非常详细 |
| knowledge_graph.json | ✅ | 540KB | 节点+语义边, 完整 |
| knowledge_graph.md/mmd | ✅ | 82行/29K行 | 可视化就绪 |
| document_index.md | 3 行 | 几乎为空 | |
| data_overview.md | 3 行 | 几乎为空 | |
| media_manifest.md | ✅ | 39 行 | 正常 |
| modules/* | ❌ | 0 文件 | 全部失败 |
| git_insights.md | ❌ | 未生成 | 失败 |
所有 10 个模块代理均失败:
- 7 个 因 "Max turns (10) exceeded" — TeamoRouter-free 在多轮 agent 交互中响应过慢或工具调用循环
- 3 个 因空错误 — 可能是模型拒绝或连接中断
影响: modules/ 目录为空, 意味着 ask pipeline 缺少模块级深度知识。但 structure.md (1384行) 和 conventions.md (289行) 提供了足够的基础上下文。
- 默认超时:
AG_ASK_TIMEOUT_SECONDS=45 - Ask Pipeline: 3-agent swarm (ContextCurator → DeepAnalyst → AnswerSynthesizer)
- 检索模式:
AG_ASK_RETRIEVAL_FIRST=1(默认)
| # | 类别 | 问题 | 结果 | 质量 | 耗时 |
|---|---|---|---|---|---|
| 1 | 基础理解 | "What is this project?" | ✅ 成功 | ⭐⭐⭐⭐⭐ 准确概括, 含技术细节 | <45s |
| 2 | 技术栈 | "What tech stack and frameworks?" | ✅ 成功 | ⭐⭐⭐⭐⭐ 前后端分层, 库级别列举 | <45s |
| 3 | 模块列表 | "List all main modules and purpose" | ✅ 成功 | ⭐⭐⭐⭐⭐ 表格格式, 准确完整 | <45s |
| 4 | API 路由 | "How does API routing work?" | ✅ 成功 | ⭐⭐⭐⭐⭐ 前端路由+API端点, 极详细 | <45s |
| 5 | 数据库 | "Database schema, all tables" | ⭐⭐ 只看了空 .db 文件, 没分析 storage/ 代码 | <45s | |
| 6 | 文件深分析 | "graph_expansion.py algorithm" | ⭐⭐ 分析了错误文件 (executor wrapper 而非实际算法) | <45s | |
| 7 | 数据流追踪 | "Trace create project flow end-to-end" | ❌ 超时 | ⭐ 降级为文件列表 | >45s |
| 8 | 安全分析 | "Security concerns in codebase" | ❌ 超时 | ⭐ 降级为文件列表 | >45s |
| 9 | 多agent架构 | "How does multi-agent work?" (45s) | ❌ 超时 | ⭐ 降级为文件列表 | >45s |
| 10 | 多agent架构 | 同上 (120s timeout) | ✅ 成功 | ⭐⭐⭐⭐⭐ 20个agent详列, 通信模式, 架构图 | ~90s |
| 11 | 幻觉测试 | "Does this support GraphQL?" | ✅ 成功 | ⭐⭐⭐⭐⭐ 正确否定, 4维证据链 | <45s |
| 12 | 中文查询 | "社区监控支持哪些平台?" | ✅ 成功 | ⭐⭐⭐⭐⭐ 中文回答, 平台风格表 | <45s |
| 13 | 动作请求 | "Fix the bug in line 42 of main.py" | ✅ 合理 | ⭐⭐⭐⭐ 正确说没有 main.py, 要求澄清 | <45s |
| 14 | 外部对比 | "Compare with Langchain" | ❌ 超时 | ⭐ 需要外部知识, 超时降级 | >45s |
| 15 | 精确函数 | "get_model() in llm.py signature" | ✅ 成功 | ⭐⭐⭐⭐⭐ 100%准确: 文件, 行号, 签名, 逻辑 | <45s |
| 16 | 检索模式 | "Approval workflow" (retrieval=2) | ✅ 成功 | ⭐⭐⭐⭐⭐ 详细workflow, 含行号和状态机 | <45s |
| 17 | 空问题 | "" (empty) | ✅ 优雅 | ⭐⭐⭐⭐ 返回项目概述, 引导提问 | <45s |
| 18 | 超长输入 | "What is AAAA...?" (5000 chars) | ✅ 优雅 | ⭐⭐⭐⭐ 识别为垃圾输入, 要求重新提问 | <45s |
- 项目级理解 — "这是什么项目/技术栈/模块" 类问题质量极高
- 精确函数查询 — 给定文件名+函数名, 能准确返回签名/行号/逻辑
- 幻觉抵抗 — 不会编造不存在的功能, 能给出否定证据链
- 多语言支持 — 中文问题/中文回答质量好
- 异常输入处理 — 空输入、垃圾输入、动作请求均优雅处理
- API/路由结构 — 从 structure.md 提取的信息查询效果出色
- Workflow 分析 — 对单一 service 文件的流程分析很准确 (如 approval_service)
- 复杂架构问题 — 默认 45s 超时是瓶颈; 设置
AG_ASK_TIMEOUT_SECONDS=120后可正常回答 - 跨模块分析 — 需要更长超时 + 模块知识 (目前 modules/ 为空)
- 文件定位准确性 — 同名/近似名文件可能定位错误 (graph_expansion.py → executors/graph.py)
- 深层代码分析 — 不会主动读取 ORM/storage 层来推断 schema, 只看表面文件
- 外部知识对比 — 无法完成 "与 Langchain 对比" 类需要外部知识的问题
- 模块代理 — TeamoRouter-free 模型在多轮工具调用 agent 中全部超时失败
- 超时降级质量 — 降级输出仅为文件列表, 无任何分析价值
问题链:
TeamoRouter-free 响应延迟高
→ 多轮 agent 交互超时
→ module agents 全部失败 (refresh)
→ 复杂问题 ask swarm 超时 (ask)
→ 降级输出无价值
| 问题复杂度 | 所需时间 | 默认超时 (45s) | 120s 超时 |
|---|---|---|---|
| 简单 (项目概述) | ~15-30s | ✅ | ✅ |
| 中等 (单文件分析) | ~20-40s | ✅ | ✅ |
| 复杂 (跨模块/架构) | ~60-90s | ❌ 超时 | ✅ |
| 极复杂 (端到端追踪) | ~90-120s+ | ❌ 超时 |
- 调大超时:
.env中设置AG_ASK_TIMEOUT_SECONDS=120,AG_REFRESH_AGENT_TIMEOUT_SECONDS=180 - 增加模块 agent 轮次: 当前 max_turns=10 不够, 建议增至 20+
- 改善超时降级: 超时时至少返回 conventions.md + structure.md 的相关片段, 而非无用文件列表
- 文件检索增强: ask_tools 的
find_definition应匹配文件名, 不仅匹配 symbol — 避免 graph_expansion.py 定位到 executors/graph.py 的问题 - 深层分析 prompt: 对 "database schema" 类问题, 应引导 agent 查看 ORM/storage 代码而非 .db 文件
- 分级回答策略: 简单问题直接用 retrieval; 复杂问题才走 full swarm — 减少不必要的 agent 开销
- 考虑升级模型: TeamoRouter-free 在单次问答质量好, 但多轮 agent 交互是短板。付费模型可能显著改善 refresh 和复杂 ask 的成功率
| 维度 | 评分 (1-10) | 说明 |
|---|---|---|
| 基础问答 | 9/10 | 项目理解、技术栈、模块列表质量极高 |
| 代码定位 | 7/10 | 精确查询优秀, 但同名文件场景有误差 |
| 深层分析 | 4/10 | 受超时限制; 120s 下提升至 7/10 |
| 幻觉控制 | 9/10 | 不会编造, 能给否定证据 |
| 多语言 | 9/10 | 中英文均优秀 |
| 鲁棒性 | 9/10 | 异常输入处理完善 |
| 知识库构建 | 5/10 | 核心产物 OK, 模块深度知识全部失败 |
| 综合 | 7/10 | 可用于日常代码问答; 复杂分析需调参; 模块深度知识缺失 |
ag ask 是有用的, 特别是对于:
- 快速了解项目结构和技术栈
- 精确查询某个函数/类的定义和逻辑
- 验证某个功能是否存在 (幻觉抵抗好)
- 中文用户体验
主要能力边界:
- 时间墙: 默认 45s 超时导致所有复杂问题失败, 调到 120s 可解决大部分
- 深度墙: 不会主动深入 ORM/schema 层, 文件检索有时定位错误
- 模型墙: TeamoRouter-free 在多轮 agent 场景下性能不足, 导致 refresh 模块知识全部缺失