[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94751":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":11,"subscribersCount":11,"size":11,"stars1d":11,"stars7d":11,"stars30d":14,"stars90d":11,"forks30d":11,"starsTrendScore":11,"compositeScore":15,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":16,"fork":16,"defaultBranch":17,"hasWiki":18,"hasPages":16,"topics":19,"createdAt":8,"pushedAt":8,"updatedAt":20,"readmeContent":21,"aiSummary":22,"trendingCount":11,"starSnapshotCount":11,"syncStatus":23,"lastSyncTime":24,"discoverSource":25},94751,"CodeMason","mufengyuan666\u002FCodeMason","mufengyuan666",null,"Python",129,0,1,3,14,35.4,false,"main",true,[],"2026-08-24 04:01:22","# 编舟 · CodeMason\n\n> CodeMason 不保存任何状态——记忆是投影，回滚是重放，审计是回看。因为一切皆事件，所以敢让 AI 写更少：写错了回滚，写对了复用，每一步都有据可查。\n\nCodeMason 是 Claude Code \u002F Cline 同级的自主编码 Agent：理解需求 → 规划 → 改码 → 验证 → 交付，全链路自主完成。与市面上\"把状态当真相\"的工具相反，它以**事件流为唯一真相**（状态永不保存、只从事件推导），因此敢让 Agent **写得更少**（YAGNI 独立确定性验证 Hook）——写错了可回滚，写对了可复用，每一步都完全透明可审计。\n\n## 核心特性\n\n- **自主 Agent Loop**：手写事件流状态机（非框架），四类终止条件 + 每步 Checkpoint 打点，可回滚到任意节点；Plan\u002FAct 双模式隔离，Plan 阶段只读三保险（prompt 层 + 工具预设 + shell 黑名单）\n- **YAGNI 约束引擎（独立验证 Hook）**：生成完成后对 staging diff 做确定性静态分析——七级决策阶梯（真需要吗 → 库里有吗 → 标准库能吗 → 平台原生吗 → 现有依赖覆盖吗 → 能一行吗 → 写最少代码），硬规则机械化（L2-L6）+ 软规则语义判断（L1），输出四维量化报告：行数减少 \u002F 依赖未新增 \u002F 重复实现数 \u002F 可读性守门\n- **Staging 审查沙盒**：所有 AI 变更先进入 staging diff，经 YAGNI \u002F 安全 \u002F 权限 Hook 验证通过后才落盘——Hook 拦截的改动从未落盘，零回滚成本，全流程可审计\n- **Op\u002FEvent 协议驱动多界面**：双向契约（Op=意图 \u002F Event=事实），schema 版本化 + Op 幂等；JSONL append-only 事件存储 + flock 写锁，断线从事件 ID 游标增量补发；加界面不改内核\n- **视图时间旅行**：`view(event_id, policy)` 在任意历史时刻重建当时的窗口视图——压缩 A\u002FB 对照不用重跑任务、故障精确复现、断点精确续接；\"当前视图\"只是时间函数的一个采样点，状态永不保存只推导\n- **自动安全分类器（人在环位置重构）**：Tier1\u002F2\u002F3 分级（只读 allowlist 不过分类器 \u002F 目录内写自动放行 \u002F shell·外网·子代理过分类器，90% 常规动作零延迟）；hard-deny 20+ 规则（destroy-exfiltrate \u002F degrade-security \u002F supply-chain 三组硬拦）；input 层注入探测 + 执行后二次探测；两阶段判决（stage1 单 token 激进过滤 + stage2 CoT 精判，误报 8.5%→0.4%）；**reasoning-blind**——分类器只见用户消息与原始工具调用，结构性抗注入；三级处置（block \u002F safer-alternative \u002F escalate 人工）；连续 3 次拦截自动回退人工审批（fail-closed，无法证明安全就弹窗）\n- **执行沙箱四档矩阵**：SandboxProvider 抽象四后端全实现——L3 Firecracker microVM 默认（独立内核+KVM，数据不出域）+ L1 加固容器（`--network=none --cap-drop=ALL --read-only`，开发降级）+ L2 gVisor runsc（中档）+ L4 E2B 云托管；网络出口白名单 + 凭据绝不进沙箱；换层只换 Provider 实现，轨迹协议恒定\n- **纵深防御安全层**：shell 黑名单硬锁 + ensemble 多分析器投票（静态 AST + LLM 判断）+ Prompt 注入防御 + 密钥脱敏；Web 默认只绑 127.0.0.1 + session token + 审批二次确认；安全四层分工——黑名单挡已知 → 分类器判未知 → 人工审拦截 → 审计追全部\n- **审批收件箱**：无人值守 loop 中分类器放行的照跑、被拦截\u002F存疑的进收件箱等人工——人类只审拦截件，不审每个动作；审批即事件（`ClassifierVerdict` 100% 落盘，白盒可溯源）\n- **控制平面（策略即代码）**：PolicyEngine 工具执行前 deny \u002F require_approval 判定（企业管理面先于运行时防御）+ RuntimeController 运行时干预 + LoopLibrary 预置模板；LoopScheduler 调度触发 → UserTurnStart 入队 + LoopBudget 每 Op 记账、超限熔断\n- **双模型按 Op 分派 + 熔断降级**：architect（规划强推理）\u002F editor（执行快吞吐）分工，OpRouter 按工具名分派 cheap\u002Fstandard\u002Fexpensive 三档（成本归因 + 合规审计，防软配置绕过）；Provider 抽象层不绑定单一厂商，同角色 fallback 链 + 指数退避重试\n- **代码图谱 AST 索引**：Tree-sitter 符号索引（Python\u002FJS\u002FGo），一次查询替代 N 次 grep + token 估算，供上下文召回与知识图谱\n- **三层记忆 + T1-T5 渐进压缩**：会话 JSONL \u002F 项目规则 \u002F 跨会话经验，同类任务第二次执行步骤数下降；上下文超窗自动压缩，Token 消耗降 40%\n- **Lazy Skills 渐进加载**：技能元数据分阶段加载（name → SKILL.md → references），未命中 Skill 零 token 开销\n- **Subagents + MCP**：独立上下文窗口 + 结论回流协议（findings schema ≤2K）；MCP 客户端 + 3 个示例 Server（GitHub \u002F 数据库 \u002F 云服务）\n- **Team Kernel 多人协作**：单写者协调（并行读者 context firewall）+ 事件触发（GitHub Issue\u002FPR @agent + Slack\u002F飞书 mention → 自动开任务）+ 三级权限矩阵（team\u002Fdepartment\u002Forg × public\u002Fteam\u002Fsecret 敏感度，secret 白名单）+ AGENTS.md 渐进式披露（目录角色 + 32KiB 校验）\n- **AI 贡献报告（合规透明）**：`ContributionReport = f(EventLog, policy)` 纯投影零 LLM——files+line_range+changed_by+provenance \u002F ai_involvement \u002F verification \u002F cost 四维明细；git_attribution_metadata 生成 `Co-Authored-By: CodeMason AI Agent` trailer（EU AI Act Article 50 透明披露）\n- **OTel 遥测导出**：事件流订阅 → OTLP 记录（prompt\u002F审批决策\u002F工具结果\u002F沙箱轨迹），无端点优雅降级 + 快照 JSONL 导出，企业合规可对接\n\n## 架构\n\n```\nheadless 内核（Python 进程，--mode rpc \u002F run）\n    │  Event Queue（core→界面）：TurnStarted \u002F MessageDelta \u002F ExecApprovalRequest \u002F ItemCompleted\n    │  Op Queue（界面→core）：UserTurnStart \u002F ApprovalResponse \u002F UserTurnCancel \u002F Compact\n    ▼\n协议层（Op\u002FEvent 双向契约，schema 版本化 + Op 幂等）\n    ├── JSONL 持久化（append-only 事实源 + flock 写锁）\n    ├── OTel 导出（prompt \u002F 审批 \u002F 工具 \u002F 沙箱轨迹）\n    └── WebSocket 广播（Web 驾驶舱，多标签页共享会话）\nWeb 驾驶舱（React 18 + Vite）← 唯一界面\n```\n\n```\nAgent Loop（手写状态机 + 事件流）\n  ├── Plan 模式：architect 强模型 → 规划 \u002F 反思归因 \u002F 只读\n  ├── Act 模式：editor 快模型 → 10 内置工具（Read\u002FWrite\u002FEdit\u002FBash\u002FGlob\u002FGrep\u002FWebSearch\u002FWebFetch\u002FMonitor\u002FAskUser）\n  ├── 控制平面：PolicyEngine 策略判定 → LoopScheduler 调度 → LoopBudget 记账 → OpRouter 按 Op 分派\n  ├── 变更控制：工具执行 → staging diff → Hook 验证（YAGNI\u002F安全\u002F权限）→ 落盘 → Git Checkpoint\n  ├── 执行沙箱：SandboxProvider（默认 Firecracker microVM，L1-L4 可换）——沙箱内无凭据、网络白名单\n  ├── 安全分类器：Tier3 动作 → 两阶段判决（allow\u002Fblock\u002Falternative\u002Fescalate）→ 拦截件进审批收件箱\n  ├── 记忆：session \u002F project \u002F global 三层 + T1-T5 压缩\n  └── 审计：全部事件落盘 + OTel 导出 + AI 贡献报告（Co-Authored-By trailer）\n```\n\n驾驶舱是**任务工作台**而非仪表盘集合——三区信息架构：\n\n```\n┌─────────────┬─────────────────────────────┬──────────────┐\n│  左·会话栏   │   中·事件流主流程             │  右·监控抽屉  │\n│ 列表\u002F新建\u002F恢复│ 审批内联可操作 · 交付横幅      │ 文件\u002F成本\u002F    │\n│             │ 首次引导卡 · 任务输入          │ YAGNI\u002F上下文\u002F │\n│             │                             │ 健康信号\u002F贡献  │\n└─────────────┴─────────────────────────────┴──────────────┘\n```\n\n切换会话 = 换 JSONL 重放（事件溯源兑现），审批阻塞点始终在事件流内即时可见，监控一律抽屉化不稀释主流程。收件箱语义：人类只审被拦截\u002F存疑的动作（分类器放行的照跑）。\n\n## 技术栈\n\n- **后端**：Python \u002F FastAPI + WebSocket \u002F pydantic\n- **前端**：React 18 + Vite（三区工作台：事件流时间线 \u002F 审批中心+收件箱 \u002F YAGNI 看板 \u002F 成本 \u002F 上下文 \u002F 健康信号 \u002F 贡献审计 \u002F 只读代码查看器 \u002F 主题）\n- **解析**：Tree-sitter（Python \u002F JS \u002F Go）+ 引用图 + AST 符号索引\n- **存储**：JSONL 事件存储 + Git Checkpoint（三-parent stash + 私用 refs）\n- **沙箱**：Firecracker microVM（默认）\u002F Docker 加固 \u002F gVisor \u002F E2B（SandboxProvider 可插拔）\n- **遥测**：OTel（OTLP gRPC，无端点降级为快照 JSONL）\n- **模型**：讯飞（默认 Provider）+ Provider 抽象层（OpenAI \u002F Ollama 可插拔）\n\n## 快速开始\n\n```bash\n# 1. 克隆\ngit clone https:\u002F\u002Fgithub.com\u002Fmufengyuan666\u002FCodeMason.git\ncd CodeMason\n\n# 2. 环境\npython -m venv venv\nsource venv\u002Fbin\u002Factivate  # Windows: venv\\Scripts\\activate\npip install -r requirements.txt\n\n# 3. 启动驾驶舱（默认 127.0.0.1:8765）\npython -m src.web.server\n\n# 4. headless 模式（自动化 \u002F CI）\npython -m src.cli.main run --task \"修复 xxx\"\npython -m src.cli.main rpc --task \"读取 README 并总结\"   # 结构化事件输出\n```\n\nDocker 部署：\n\n```bash\ndocker compose up --build\ndocker run -p 8765:8765 codemason\n```\n\n## 测试与评测\n\n```bash\npytest tests\u002F -v        # 单元测试（Agent Loop \u002F 协议 \u002F 安全 \u002F 工具 \u002F 记忆 \u002F 压缩 \u002F 沙箱 \u002F 分类器 \u002F Team \u002F 投影）\ncd frontend && npx playwright test   # E2E（WebSocket 事件推送 \u002F 审批交互 \u002F 收件箱）\n```\n\n评测体系（自建任务集 + 同模型对照）：\n\n- **自建 30 任务集**：bug 修复 10 \u002F 功能开发 8 \u002F 重构 6 \u002F 测试 6，全部标注来源（改编自 SWE-bench 与真实 issue）\n- **同模型对照**：Cline 配置为同一模型跑同任务集，变量唯一——对比 Agent 实现而非模型\n- **fail-to-pass**：失败自动归因 → 修复重试 → 记录成功率（SWE-bench 官方指标口径）\n- **安全专项**：危险命令拦截率 ≥89%（100 条测试集）\u002F prompt injection 成功率 0%（720 场景）\u002F 误报率 ≤1% \u002F 连续 3 次拦截自动回退人工 \u002F `ClassifierVerdict` 事件 100% 落盘\n- **固定环境**：Docker 固定镜像，评测可复现\n\n## 目录结构\n\n```\nsrc\u002F\n├── agent\u002F          # Agent Loop：事件流状态机 \u002F Plan-Act \u002F 反思归因 \u002F Subagents\n├── protocol\u002F       # Op\u002FEvent 双向契约（schema 版本化 + 幂等）\n├── storage\u002F        # JSONL 事件存储 + flock 写锁\n├── cli\u002F            # headless 入口（run \u002F --mode rpc）\n├── tools\u002F          # 10 内置工具 + 注册表 + 流水线\n├── security\u002F       # 纵深防御：黑名单 \u002F ensemble \u002F 脱敏 \u002F 三级审批 \u002F 自动分类器 \u002F 执行沙箱\n├── checkpoint\u002F     # Git Checkpoint（三-parent stash + 私用 refs）\n├── staging\u002F        # Staging 审查沙盒（变更先验证后落盘）\n├── harness\u002F        # Hook 框架（before\u002Fafter\u002Fon_failure + block\u002Fcancel）+ 规则引擎\n├── constraints\u002F    # YAGNI 七级决策阶梯 + 四维量化\n├── skills\u002F         # Lazy Skills 渐进加载\n├── memory\u002F         # 三层记忆（session \u002F project \u002F global）+ 事件投影\n├── context\u002F        # 视图时间旅行 \u002F 健康信号 \u002F condenser 插件 \u002F 召回回读 \u002F schema 裁剪\n├── compression\u002F    # T1-T5 渐进压缩 + auto-compact（CONDENSER_REGISTRY 插件化）\n├── cost\u002F           # 成本台账（每次 Op 计费 + 总量预算）\n├── loop\u002F           # 控制平面：PolicyEngine \u002F RuntimeController \u002F LoopLibrary \u002F 调度 \u002F 预算 \u002F 收件箱 \u002F 判定\n├── routing\u002F        # 双模型路由 + OpRouter 按 Op 分派 + Provider 抽象 + 熔断降级\n├── mcp\u002F            # MCP 客户端 + 3 示例 Server\n├── parser\u002F         # Tree-sitter 多语言解析\n├── knowledge_graph\u002F# 引用图 \u002F 调用关系 \u002F AST 符号索引\n├── team\u002F           # Team Kernel：单写者协调 \u002F 事件触发 \u002F 权限矩阵 \u002F AGENTS.md 披露\n├── projection\u002F     # 投影层：状态 \u002F 轨迹 \u002F 指标 \u002F AI 贡献报告（纯投影零 LLM）\n├── observability\u002F  # OTel 遥测导出（prompt \u002F 审批 \u002F 工具 \u002F 沙箱轨迹）\n├── verify\u002F         # 防幻觉验证：fact-preservation \u002F phantom-edit \u002F fix-packet \u002F anti-spurious\n├── evaluation\u002F     # 评测闭环（fail-to-pass + 机读验证门禁）\n└── web\u002F            # FastAPI + WebSocket 驾驶舱后端\nfrontend\u002F\n└── src\u002F            # React 驾驶舱（Timeline \u002F ApprovalCenter \u002F ApprovalInbox \u002F YagniBoard \u002F CostCockpit \u002F ContextPanel \u002F HealthSignals \u002F Contribution \u002F ThemePanel）\n```\n\n## 许可\n\nMIT\n","CodeMason 是一个以事件流为唯一真相源的自主编码智能体（AI Agent），专为安全、可审计、低干预的工程化代码协作设计。它通过纯事件驱动架构（JSONL append-only 存储、Op\u002FEvent 协议、时间旅行视图）实现状态零持久化；内置 YAGNI 约束引擎对 AI 生成代码做七级确定性验证，结合 staging 审查沙盒与四档执行沙箱（Firecracker\u002FgVisor\u002F容器\u002FE2B），确保变更零落盘风险；支持多模型分派、Subagents、MCP 集成及 Team Kernel 多人协同。适用于企业级合规开发、AI 辅助重构、自动化 PR 生成及需强审计追溯的金融\u002F政企软件工程场景。",2,"2026-08-15 02:30:08","CREATED_QUERY"]