我关心一个具体的问题:当 Agent 开始自己写代码,谁来保证它没在偷懒?
现在的编码 Agent 拿到需求就直奔实现——跳过需求分析、跳过设计、跳过测试用例,写完就宣称“完成”。短期看快,长期看是债务:理解偏差没人发现,回归保障为零,交付的东西没法维护。这个问题的本质不是模型不够聪明,而是流程约束缺失。
所以我把这件事拆成两层来做:一层是门禁(谁来拦、凭什么拦),一层是Agent 本体(拦住之后怎么按规矩重做)。两层都在下面,都是能装、能跑、能复算的代码,不是 PPT 上的架构图。
八个公开仓库(不含本仓库):六个主力项目,加一组插件生态。按“先能用、再有据可查”排序,折叠块里是实现细节、边界与原始数据路径——能验的才敢写。
phase-barrier — 编码 Agent 的阶段门禁框架
版本:PyPI 最新
v0.51.0|v1.0.0起公开 API 冻结(1.x 内向后兼容,破坏性变更只在 2.0)——见 docs/release.md
pip install phase-barrier # 库 + CLI
docker run --rm -it ghcr.io/xuqing0415/phase-barrier-demo # 无需安装:跳步被拦 -> 补齐证据 -> 交付SWE-bench Lite Scale-20 实测(官方评测容器内,同模型同预算,20 实例配对,2026-09):
| 组别 | resolved | 门禁拦截 | 交付全绿 | 空补丁 | 平均耗时 |
|---|---|---|---|---|---|
| baseline(无门禁) | 18/20 (90%) | 0 | — | 0 | 262s |
| gated(阶段门禁) | 20/20 (100%) | 78 | 14 | 0 | 462s |
门禁把 baseline 失败的 2 个实例救了回来,0 例拖累,代价是约 1.8 倍耗时(n=20,仅同条件对比)。
完整报告与复算命令 | 原始数据在 benchmarks/swebench/results/。
展开:78 次拦截是怎么发生的、13 种语言怎么接、这道闸门还挡住了什么
我把分布式系统里的 phase-barrier(阶段栅栏) 概念借过来,做成 Agent 工具调用层的一道闸门: 需求 → spec → 测试 → 实现 → 测试 → 修复 → 交付,每个阶段要交出可验证的证据(spec 章节、测试 AST、语法检查、覆盖率), 先有证据,才放行下一步,跳步和伪造产出会被直接拦下。校验逻辑独立于 Agent 决策循环,状态文件由 Skill 独占原子写入,不可绕过。
13 种语言适配器:Python / JavaScript(含 TypeScript)/ Java / Kotlin / Scala / Go / Rust / Swift / Ruby / PHP / C#(.NET)/ C++ / Dart, 每种都接到真实测试框架(pytest、Jest/Vitest、JUnit、cargo test、swift test …)。
四种接入方式:进程内包装、CLI 透明代理(anti-shortcut exec/write/advance)、GitHub Action、K8s sidecar(Helm)。
防篡改靠 HMAC 状态签名 + SHA-256 证据清单 + verify-evidence Git 基线校验。
除了拦,还在做三件更硬的事:
- 红队 Agent:18 类逃逸技术 + 沙箱回归,自己打自己,CI 常态化(docs/red-team.md)。
- 形式化不变量:TLA+ 模型检查 + Python 实现一致性测试,进 CI(docs/formal-invariants.md)。
- 学习型防线:从真实逃逸案例中学习 → 模式提取 → 规则/提示词更新建议,走 PR + 人工审批合并(docs/learning-defense.md)。
alpha-swe — 最小可扩展的 SWE Agent
异步状态机 + DAG 任务调度(任务级重试、三级降级、断点续跑、并行工具调用),长期记忆闭环(经验/代码/错误,Hybrid/SQLite/Chroma/Qdrant 可插拔),技能注入、上下文压缩、安全沙箱、多 Agent 协作与用户中断。 默认出厂离线可跑(MockLLM + 本地 TF-IDF 记忆,零外部依赖),TUI 与 Web 观测面板开箱即用。
python -m agent run "任务" # 新核心 CLI
python -m tui --web "任务" # TUI + http://127.0.0.1:8765 观测面板展开:两边职责怎么切——校验归 phase-barrier,Agent 只做轻量调用
phase-barrier 已通过编排器钩子 SDK 双向接入:任务启动时注入门禁约束提示,file_ops / terminal_execute / run_tests 在未达前置阶段时被拦截并把原因回传 Agent,另提供 phase_barrier_gate 工具声明与推进阶段。
校验逻辑留在 phase-barrier 内部,Agent 侧只做轻量调用,职责不越界。
仓库里还留着一条诚实的分界线:旧版七层原型整体迁到 legacy/ 仅作对照,新核心在主干,两者入口与配置严格分层(docs/architecture.md)。
OxideDB — 分布式事务 KV 数据库
Python 实现的 Raft 复制 + Percolator 式两阶段提交(跨节点 ACID)+ MVCC 快照读 + 范围分片键空间;强一致读走 leader + quorum 确认,快照隔离会在提交时校验读集,写偏斜直接拒绝而不是放过。
pip install oxidedb
oxidedb --data-dir ./demo set user:1 alice && oxidedb --data-dir ./demo get user:1展开:414 项测试通过,已知缺口也写得直白
v0.1.0 时 414 项测试通过(覆盖持久化、路由一致性、split/move 恢复、锁清理、真实多进程客户端,整套约两分钟)。 定位是能跑的原型而非生产数据库——哪些缺口在等工、哪些是设计上就不做,都在 docs/known-gaps.md 里写清楚了。
llm_compliance_audit — LLM 合规审计网关
挡在 OpenAI 兼容 API 前面的反向代理(Go 1.25+):身份证 / 手机号 / 银行卡 / 邮箱等 PII 出境默认拦截,提示词注入、命令注入、SQL 注入独立规则。
展开:敏感内容零泄露是怎么做到的,以及哪些能力还只是占位
响应侧先拦后放——非流式整体扫描后下发,SSE 流式走滑动窗口,命中即终止帧,敏感内容零泄露。审计日志正文脱敏 + SHA-256 链式哈希防篡改,缓冲满不丢记录、优雅关停排空落盘。
purpose(chat / export / codegen)由服务端按路径推导,客户端无法用 X-Request-Purpose 自封 export 来降级拦截。
边界也写明了:tier2 PII 识别与 tier3 语义检测目前是占位实现且默认关闭,生产接入前请逐项对照 SECURITY.md 部署清单。
hermes-cosmos — 全球统一调度与容错计算系统
跨 Region 万卡级 GPU 调度:基于 MCTS 的放置策略、分布式 Checkpoint(Delta 差分 + 异步多级存储)、故障预测与自动迁移、eBPF 算子级观测、碳排放计量;配套 K8s Operator 与 Grafana 面板。
展开:一个会给自己写论文的系统
autotestgen.py 里的 Self-Researcher 会读系统自身的演化历史(快照、事件日志、策略、知识图谱、Git 提交记录),做统计检验、提炼可验证发现,然后自动生成一篇论文(Markdown,或 LaTeX 并在有 pdflatex/tectonic 时编译成 PDF)。
这个仓库除 Python / Go 主体外,还带 TLA 规格。
DistributedMQ — 高性能分布式消息队列
Raft 共识 + 分段提交日志(稀疏索引)+ 时间轮延迟消息 + 死信队列 + 全链路消息追踪;多语言客户端(Go / Java / C,含 Spring Boot Starter)。
phase-barrier 的扩展面不只是“留了个 hook”,而是四类入口点都有模板、有验证、有索引:
| 入口点组 | 作用 |
|---|---|
phase_barrier.languages |
自定义语言适配器 |
phase_barrier.validators |
自定义阶段校验器(覆盖 / 追加) |
phase_barrier.interceptors |
自定义拦截规则 |
anti_shortcut.integrations |
Agent 集成插件 |
- phase-barrier-plugin-template — 一键生成自己的插件仓库(GitHub 右上角 Use this template),四类入口点各给一个可跑示例,CI 直接接官方
plugin-testaction 跑plugin-verify。 - phase-barrier-plugin-foo-adapter — 示例语言适配器:为虚构的
.foo语言提供文件识别、语法检查、测试统计,演示“写插件 → 打 topic → 被索引自动收录”的完整链路。 - 打上
phase-barrier-plugintopic 后,每周一 03:00 UTC 由主仓库自动 clone / 安装 /plugin-verify,通过即写入plugins.json并同步插件状态页。
五分钟写出你的第一个插件:docs/plugins.md | 插件索引:docs.xshayncka.dev/plugins
语言
基础设施与工具
关注的领域
AI Agent 工程化 · 阶段门禁与流程约束 · 形式化方法(TLA+ 模型检查) · Raft / 分布式事务 · LLM 安全与合规 · 供应链安全(Sigstore 签名 / Trusted Publishing)
写代码这件事上,我在意的东西比较固定:
- 证据优先:说“能跑”要有测试结果,说“安全”要有红队用例,说“快”要有可复算的基准数据。
- 数据要能复算:README 里的每个数字都附了复现命令和原始数据路径,不写没法验证的结论。
- 诚实标注边界:是原型就说原型,是占位实现就写“占位、默认关闭”,不用“生产级”包装自己。
- 关键性质做形式化:并发与共识这类说不清的地方,用 TLA+ 写不变量并进 CI,而不是靠“我觉得没问题”。
- 供应链认真:PyPI 走 Trusted Publishing(OIDC)免密钥发布,产物做 Sigstore 签名并可
cosign verify-blob校验。 - CI 当真用:全矩阵真实工具链、覆盖率门禁 ≥90%、模糊测试、性能基准、依赖漏洞扫描。
技术讨论、Bug 反馈、插件提交 —— 欢迎直接开 Issue。

