Mozilla Cq:Agent 的 Stack Overflow — 深度解析

> 项目: cq (colloquy)

> 作者: Mozilla AI,Staff Engineer peteski22

> GitHub: https://github.com/mozilla-ai/cq

> 协议: Apache 2.0

> 阶段: PoC / 探索性(2026 年 3 月初启动)

> HN 讨论: https://news.ycombinator.com/item?id=47491466 (178 分,74 条评论)

一句话总结

Mozilla AI 推出的开源项目,让 AI 编程 Agent 能够共享踩过的坑——一个 Agent 发现的 gotcha,所有 Agent 都能查到。本质上是把 Stack Overflow 的"问答→投票→信任"模式搬到了 Agent 世界。

背景:一个讽刺的循环

Stack Overflow 的兴衰数据讲述了一个完整的故事:

时间SO 月提问量事件
2008~4,000Stack Overflow 上线
2014**200,000+**巅峰期
2022.11~150,000ChatGPT 发布
2025.12**3,862**回到 2008 年水平

循环:

1. LLM 吃了 Stack Overflow 的语料训练出来

2. LLM/Agent 把 Stack Overflow 杀了(提问量暴跌 98%)

3. Agent 各自独立踩同样的坑,反复浪费 token

4. Agent 需要自己的 Stack Overflow → 历史重演

Mozilla 博客中用了一个精准的生物学词汇:matriphagy(弑母行为)——蜘蛛幼虫吃掉母体以获取营养。网络爬虫(最早的"agent")抓取了 SO 的知识,喂出 LLM,LLM 又掏空了哺育它的社区。母体的营养确实哺育了下一代,但下一代是否能建立可持续的生态,还是继续寄生?

核心概念:Knowledge Unit (KU)

KU 是 cq 的基本知识单元——一条经验性的 gotcha,比如:

> "Stripe 对限速请求返回 HTTP 200(而非标准 429 错误码),body 里才有错误信息"

> "GitHub Actions 中 actions/checkout 训练数据是 v3,但当前最新是 v5"

KU 不是文档,不是教程,是踩坑记录

工作流程


Agent 开始任务
  ↓
查询 cq 知识公共池:"有人踩过这个坑吗?"
  ↓
有 → 直接获取 gotcha,跳过试错
无 → 正常执行,可能踩坑
  ↓
踩坑后 → 提交 KU 到公共池
  ↓
其他 Agent 使用并确认 → KU 可信度评分上升
其他 Agent 发现过时 → KU 被标记衰减

实际案例

作者分享的真实案例:Claude Code 写 GitHub Actions 时经常使用过时好几个大版本的 actions(训练数据滞后)。一个 Agent 发现后提交了 KU。后来在完全不同的 repo 中用 OpenCode + OpenAI 模型时,cq 主动查到了这条 KU,Agent 提前检查了 GitHub 最新版本号,避免了同样的错误。确认后 KU 的 confidence score 上升。

技术架构

cq 运行在三个层次:


┌─────────────────────────────────────┐
│   Claude Code / OpenCode(Agent)     │
│   • SKILL.md — 行为指令              │
│   • hooks.json — 错误后自动查询       │
│   • /cq:status — 知识库统计           │
│   • /cq:reflect — 会话挖掘           │
└──────────────┬──────────────────────┘
               │ stdio / MCP 协议
┌──────────────▼──────────────────────┐
│   本地 MCP Server(Python/FastMCP)   │
│   • SQLite: ~/.cq/local.db          │
│   • 知识逻辑 + 本地存储              │
└──────────────┬──────────────────────┘
               │ HTTP / REST(可选)
┌──────────────▼──────────────────────┐
│   Docker 容器(Team API)             │
│   • FastAPI + SQLite                │
│   • localhost:8742                  │
│   • Human-in-the-Loop 审核 UI       │
└─────────────────────────────────────┘

设计决策

决策选择原因
本地优先默认 `~/.cq/local.db`,零配置隐私保护,降低使用门槛
团队同步可选设置 `CQ_TEAM_ADDR` 开启渐进式,组织内可控
MCP 协议stdio 通信与 Claude Code/OpenCode 原生集成
SQLite本地 + 团队都用简单可靠,无需数据库服务
HITL 审核团队 API 包含浏览器 UI人类把关 KU 质量,防止垃圾知识

安装


# Claude Code
claude plugin marketplace add mozilla-ai/cq
claude plugin install cq

# OpenCode(通过 MCP 配置)
git clone https://github.com/mozilla-ai/cq.git
cd cq && make install-opencode

关键配置

环境变量默认用途
`CQ_LOCAL_DB_PATH``~/.cq/local.db`本地知识库路径
`CQ_TEAM_ADDR`禁用团队 API URL
`CQ_TEAM_API_KEY`团队 API 认证

与现有方案的对比

方案知识来源动态性跨 Agent信任机制
**CLAUDE.md / .cursorrules**人类手写❌ 静态❌ 单 repo写的人说了算
**Agent 自己摸索**每次重新发现❌ 隔离
**模型权重更新**训练数据❌ 滞后✅ 全局模型自身
**RAG / 文档检索**现有文档部分❌ 单系统文档权威性
**cq****Agent 实战经验**✅ 动态✅ 跨模型跨 Agent**使用确认 + 可信度评分**

cq 的核心差异:知识通过使用和确认获得信任,而不是靠"谁写的"或"哪个模型说的"。

HN 社区评论精华

HN 上 74 条评论,讨论非常深入。以下按主题整理:

1. 🔒 安全问题(最热门讨论线)

核心担忧:如果 cq 变成公共平台,恶意 Agent 怎么办?

raphman 提出了最尖锐的问题:

> "人类 SO 上,老账号 + 几千条高质量回答 = 可信。但 Agent 的 SO,僵尸网络可以快速刷信任——提交大量无害的 trivial KU 攒分,然后投一条恶意的 rm -rf /。怎么防?"

社区提出的方案:

方案提出者评价
**Personalized PageRank + EigenTrust**perfmode学术上可行——主观信任图防 Sybil 攻击:一群互相背书的假 Agent 对你的信任分没影响,除非拿到你已信任节点的背书
**信任链模型**(类似 HTTPS 证书)allan_s启动时选择信任锚点(如 Mozilla),其他 KU 需经信任链验证。第三方审计公司可以作为"信任锚"
**容器化验证**PAndreew拉起容器 + 假数据实测 KU 的真实性
**反驳:资源不对等**weego"验证比注入贵 1000 倍,这变成了拒绝服务攻击"

社区共识组织内部可以用(信任边界清晰),公共平台的信任问题目前无解。

2. 🤔 "知识不是瓶颈"派

muratsu(高赞评论):

> "我的问题不是 Agent 缺知识库,而是 Agent 不可靠地遵循知识库。"

bartwaardenburg 的回复特别精辟:

> "瓶颈不是 Agent 知道什么,而是 Agent 能验证什么。知识库告诉它'别做 X',但它还是得记得去查。不如给它一个返回 ground truth 的工具——调用工具、拿到结果、执行。不需要记忆,不会随时间漂移。"

这触及了一个根本问题:知识共享 vs 工具调用,哪个是更好的解决路径?

3. 💡 "被动式知识提取"视角

LudwigNagasena 提出了完全不同的路线:

不让 Agent 主动提交 KU,而是被动分析公司所有 Agent 对话

本质是把 Agent 会话当"客服/销售对话数据"做数据挖掘。这种方式不需要 Agent 主动提交任何东西,完全被动。

4. 🔐 隐私泄露风险

ray_v(被引用多次):

> "怎么让 Agent 公开贡献知识而不泄露 key、凭证、PII?这主意太危险了——但我还是会狂按 Like 然后用它 😂"

5. 💬 经典 HN 吐槽

6. 社区态度分布

态度占比
方向对但安全问题严重~40%
企业内网可以,公网不行~25%
知识不是瓶颈,遵循才是~15%
被动分析比主动提交好~10%
纯看好/纯看衰~10%

对 OpenClaw 生态的启发

cq 目前只支持 Claude Code 和 OpenCode,不支持 OpenClaw。但:

1. MCP 协议是通用的 — 理论上可以将 cq MCP Server 接入 OpenClaw

2. OpenClaw 的 AGENTS.md + MEMORY.md 模式本质上是 cq 的单 Agent 版本——经验写入文件,下次 session 读取

3. cq 的价值在于"跨 Agent" — 多个 OpenClaw Agent 之间共享踩坑经验是有价值的

4. OpenClaw Skills 已经部分解决了这个问题 — Skill 本质上就是"前人踩坑经验的封装",但是人类手写的、静态的

可能的集成路径


OpenClaw Agent
  ↓ 调用 MCP 工具
cq MCP Server(本地)
  ↓ 可选同步
Team API / Public Commons

需要的工作:

评分

维度评分(/10)
问题定义9.0 — "Agent 重复踩坑"是真实痛点,数据支撑充分
技术方案7.5 — 架构清晰、本地优先,但信任机制还很初级
安全性5.0 — 企业内可控,公共平台的 Sybil 攻击和知识污染是硬伤
生态覆盖5.5 — 只支持 Claude Code 和 OpenCode,缺 OpenClaw/Cursor/Copilot
成熟度4.0 — PoC 阶段,很多关键机制还在"计划中"
长期潜力8.5 — 如果 Andrew Ng + Mozilla 的背书能推动标准化,价值巨大
**综合****7.0**

相关链接

报告基于 Mozilla AI 博客、GitHub README、HN 评论原文综合分析 | 2026-03-24