Agent Hub:为自主 AI 代理设定架构护栏
软件的编写方式正在发生根本性的变化。
六个月前,一位工程师需要花两天时间来构建一个新服务。他会查阅 ADR,问同事该用哪个数据库,遵循自己在数月工作中内化的命名规范,然后提交符合架构的代码——因为他理解这套架构。
而如今,一个 AI 代理二十分钟就能完成。代码能编译,测试也能通过。但代理用了 MongoDB,而团队统一使用的是 PostgreSQL。它到处写 fmt.Println,而不是使用结构化日志。它在 HTTP handler 里直接查询数据库,完全绕过了团队花了三个迭代才建立起来的 service 层。
代理更快了。但它不知道自己不知道什么。
速度没有治理的真实代价
我们正在进入一个代码产出速度几乎没有上限的时代。Claude Code、Cursor、Copilot Workspace、Devin —— 这些工具能在几分钟内生成完整的服务。曾经按周发布的团队现在按天发布。瓶颈已经从"我们能多快写代码"转变为"架构熵多快能摧毁我们的系统"。
想象一下五个 AI 代理同时在同一个代码库上工作会发生什么:
- 代理 A 用 Express 模式新增了一个 REST 端点。代理 B 用 Fiber 模式新增了另一个。现在同一个服务里出现了两套 API 框架。
- 代理 C 创建了一个直接查询数据库的支付模块。代理 D 创建了一个通过 repository 层的订单模块。现在你有了两种数据访问模式。
- 代理 E 引入了一个六个月前已被技术雷达废弃的库。它运行得很好,但它也是一颗定时炸弹。
这些都不是 bug。它们全部通过了 CI。它们各自独立运行都没问题。但放在一起,它们正在悄悄地把你的代码库变成一堆相互冲突的模式拼凑物,而理清这些将花费你数月时间。
这就是我们构建 Agent Hub 要解决的问题。
架构护栏:给你的架构配一个 Linter
合规规则是确定性的检查——不涉及 AI——它们根据你的架构决策来验证代码变更。可以把它们看作架构版的 ESLint:它们不关心语法,它们关心结构。
七种规则类型覆盖了我们在数百个团队中观察到的治理需求:
Required Pattern(必需模式) —— 最简单也最强大的规则。定义代码中必须存在或不得存在的模式。禁止 Go 中的 fmt.Println,TypeScript 中的 console.log,任何地方的 eval()。要求每个 shell 脚本都包含 set -euo pipefail。禁止 SQL 查询中的 SELECT *。
Naming Convention(命名规范) —— 在文件、类型和函数层面强制执行命名规则。Go 文件必须使用 snake_case。React 组件必须使用 PascalCase。Python 模块必须遵循 PEP 8。当代理生成代码时,它遵循的是你团队的规范,而不是它自己的默认习惯。
Technology Constraint(技术约束) —— 按容器锁定技术栈。后端只能使用 Go。前端必须使用 TypeScript,而不是 JavaScript。禁止 lodash(使用原生 JS)。禁止 moment.js(使用 date-fns)。代理不会意外引入你团队已经明确否决的依赖。
Layer Boundary(层级边界) —— 这是最强大的部分。定义你的架构层级以及各层之间的导入关系。Domain 不能导入 adapter。Service 只能导入 domain。Handler 必须通过 service,不能直接访问 repository。Clean Architecture、Hexagonal Architecture、DDD —— 在每次变更中自动执行,无论代码是谁(或者什么)写的。
Contract Compliance(契约合规) —— 验证代码端点是否符合你的 API 契约。如果你在 Archyl 中有 OpenAPI 规范,合规引擎会检查你的 handler 是否真正实现了它。没有幽灵端点,没有遗漏路由。
Dependency Rule(依赖规则) —— 代码中的每一个 import 都必须在 C4 model 中有对应的关系。如果 Service A 突然开始调用 Service B,但架构中没有"uses"关系,规则就会捕获它。架构漂移立刻变得可见。
Event Channel Compliance(事件通道合规) —— 如果你的系统使用 Kafka、NATS 或任何消息中间件,这条规则会验证代码中的生产者和消费者是否与架构中声明的事件通道匹配。没有私自创建的 topic,没有未声明的消费者。
96 条规则,零配置
编写正则表达式很枯燥。因此我们构建了一个包含 96 条预设规则的目录,覆盖 21 种技术,一键即可使用。
目录按类别组织:
Security(安全)(11 条规则)—— 禁止硬编码密码、API 密钥或密钥。禁止 eval()。禁止 SQL 字符串拼接。禁止禁用 TLS 验证。禁止 CORS 通配符源。禁止使用 MD5 或 SHA1 进行哈希。这些不是建议——在代理化的世界中,它们是不可协商的。如果没有人告诉 AI 代理不要这样做,它会毫不犹豫地把数据库密码硬编码在配置文件里。
Infrastructure(基础设施)(22 条规则)—— Dockerfile 中禁止 :latest 标签。Kubernetes 清单中要求资源限制。禁止特权容器。禁止 hostNetwork。要求健康检查。GitHub Actions 版本必须锁定到 commit SHA。Terraform 中禁止硬编码凭据。禁止通配符 IAM 策略。当代理生成基础设施即代码时,这些规则确保输出是生产级的,而不是演示级的。
Code Quality(代码质量)(18 条规则,覆盖 10 种语言)—— Go:禁止 panic(),禁止 init(),禁止全局可变状态。TypeScript:禁止 any 类型,禁止 var 声明。Python:禁止裸 except:,禁止可变默认参数,禁止 import *。Java:禁止 System.out.println,禁止空 catch 块。Rust:禁止 unwrap(),禁止 unsafe。每条规则的存在都是因为 AI 代理在缺乏上下文时会持续犯这些错误。
Architecture(架构)(5 条规则)—— Clean Architecture、Hexagonal Architecture、DDD 分层、MVC 分离、handler-service-repository 执行。这些是防止最昂贵的架构漂移的结构性护栏——那种你的架构慢慢变异成没有人设计过的样子的漂移。
Testing(测试)(3 条规则)—— 禁止提交跳过的测试。禁止在测试套件中遗留 .only()。禁止在生产代码中出现 TODO/FIXME。这些小规则能防止 AI 代理在优化"能运行"而非"已就绪"时生成的那种草率提交。
代理上下文:一次调用,全面掌握
规则告诉代理什么不能做。上下文告诉代理什么应该做。
get_agent_context MCP 工具通过单次调用为任何已连接的代理提供完整的架构简报:
- C4 Model —— 项目中的每个系统、容器、组件及其关系
- Architecture Decision Records —— 有效的 ADR,包含其理由和决策
- Technology Stack —— 整个组织中正在使用的技术
- Active Guardrails —— 每条合规规则,让代理在编写代码之前就知道边界
- API Contracts —— 定义 API 表面的 OpenAPI、gRPC、GraphQL 规范
- Event Channels —— Kafka topic、NATS subject、消息 schema
该工具还会生成 markdown 版本——一个你可以提交到仓库的 CLAUDE.md 文件。任何读取它的代理都能以完善的架构知识开始工作,无需连接 Archyl 的 MCP 服务器。
这就是"猜测型代理"和"知识型代理"的区别。也是"能运行的代码"和"归属正确的代码"之间的区别。
为什么这件事现在很重要
AI 编程领域的发展非常迅速。六个月内,大多数专业开发都将涉及某种形式的 AI 代理。一年之内,多代理工作流将成为常态——不同的代理同时在同一系统的不同部分上工作。
没有治理,这将导致混乱。不是那种戏剧性的混乱——而是那种缓慢的、潜移默化的混乱:每一次提交单独看都合理,但累积效应就是架构腐化。那种你六个月后看着自己的代码库,无法解释为什么会有三个不同的日志库、两种 ORM 模式、以及一个莫名其妙依赖了所有东西的服务。
架构护栏从根本上改变了这一动态:
对于正在采用 AI 代理的团队:你的架构决策不再是 AI 代理写代码时丢失的部落知识。它们被编码为自动执行的规则。代理获得的治理等同于高级工程师在代码评审中提供的——但是是即时的、在每次变更中执行的,不存在评审疲劳。
对于平台团队:你可以在数十个服务和数百个 AI 生成的变更中标准化模式,而无需逐一手动评审。定义一次规则,全面应用。当某个团队用 AI 代理启动一个新服务时,它会自动遵循你平台的规范。
对于受监管行业:合规要求可以编码为合规规则。"所有服务必须有健康检查。""日志中不得包含 PII。""必须启用静态加密。"这些变得可验证,而不仅仅是文档化。审计跟踪表明,每一个 AI 生成的变更在合并之前都经过了规则验证。
对于开源维护者:提交 PR 的贡献者(无论是人类还是 AI)会立即获得架构合规性反馈。不再需要评审那些违反了贡献者不了解的规范的 PR。规则将你的架构期望记录为可执行的约束。
在代理化的世界中蓬勃发展的团队,并不是拥有最好 AI 代理的团队。而是拥有最清晰架构边界的团队。代理是可替换的。架构不是。
开始使用
Agent Hub 现已对所有 Archyl 用户开放。点击侧边栏中的 Agent 图标。浏览目录,添加一些护栏,让你的 AI 代理在你定义的边界内工作。
你的架构决策不应该对 AI 是可选的。现在它们不再是了。