引言
"给每个开发者一台一致、隔离、随时可丢弃的开发机——现在,也给每个 AI Agent 一间同样的工作室。"
这是"一天一个开源项目"系列的第 221 篇。今天的项目是 Coder。
"在我的机器上能跑"是每个团队都遇到过的经典难题——新人入职花三天配环境,换个系统版本某个依赖装不上,本地开发机资源不够跑大项目。云开发环境(Cloud Development Environment,CDE)是这个问题的答案:把开发环境搬到云端,用 Terraform 声明式定义,一致、可复现、按需创建和销毁。
但 Coder 最近几年多了一层新意义。当 AI 编码 Agent(Claude Code、Codex、Cursor 等)开始自主执行任务时,一个新问题出现了:这些 Agent 需要在哪里跑?它们的 API Key 存在哪?谁能看到它们做了什么?
Coder 的答案是:让 Agent 也跑在同一套隔离、可审计的基础设施里。Agent 的推理循环运行在控制平面,工作区里不存放任何 LLM 凭证——这是给 AI Agent 设计的安全边界,不是事后补丁。
14.9k Stars,AGPL-3.0,Go 语言构建。
你将学到什么
- Coder 用 Terraform 定义云开发环境的设计思路
- 工作区通过 WireGuard 隧道连接的网络架构
- 四种运行 AI Agent 的方式:Coder Agents、Agent Relay、IDE 内 Agent、模板内置 Agent
- AI Gateway 如何实现集中化的模型治理、成本追踪与审计
- 与传统 CDE(GitHub Codespaces、Gitpod)的定位差异
前置知识
- 了解 Terraform 的基本概念(Infrastructure as Code)
- 熟悉 Docker/Kubernetes 的基本操作
- 可选:了解 AI Agent 工具调用和 MCP 的概念
项目背景
项目简介
Coder 官方定位是"Self-Hosted Cloud Development Environments and AI Agents"——自托管的云开发环境与 AI 智能体平台。GitHub 简介更直接:"Secure environments for developers and their agents"(为开发者和他们的 Agent 提供安全环境)。
这句话点出了 Coder 现在的双重身份:既是传统意义上的云开发环境平台,也是 AI Agent 的安全运行时基座。
团队与项目信息
- 仓库:coder/coder
- 官网:coder.com
- 协议:AGPL-3.0(另有企业版功能采用独立授权条款,见仓库
LICENSE.enterprise) - 主要语言:Go(后端)+ TypeScript(前端,位于
site目录)
项目数据
- ⭐ GitHub Stars:14,900+
- 🍴 Forks:1,500+
- 👀 Watchers:82
- 📄 协议:AGPL-3.0
- 🌐 官网:coder.com
主要功能
解决什么问题
传统开发环境搭建:
新人入职 → 装系统依赖 → 配 IDE → 装数据库 → 跑起来
↑ 花费数天,且"我的机器上能跑"问题频发
↑ 本地资源不够跑大型项目
云开发环境(Coder 的做法):
Terraform 模板定义好环境 → 开发者点一下 → 秒级拿到一致环境
↑ 上手时间从数天缩短到数秒
↑ 闲置资源自动关闭,节省成本
↑ 环境完全一致,不再有"我的机器"问题
AI Agent 时代的新问题:
想让 Claude Code / Codex 自主跑任务
→ 它得在哪里跑?本地?工作区里?
→ API Key 存哪?暴露给工作区安全吗?
→ 谁在追踪 Agent 花了多少 Token、做了什么操作?
Coder 的答案:
Agent 的推理循环跑在控制平面(在你自己的基础设施上)
→ 工作区内不存放任何 LLM 凭证
→ 每次操作都关联具体用户身份,可审计
→ AI Gateway 集中管理认证、成本、策略使用场景
-
企业/团队统一开发环境
- 替代"每人本地配环境",新人入职秒级拿到标准化工作区
-
大型项目云端开发
- 本地机器资源不够时,把计算负载放到云端,本地只做轻量客户端连接
-
AI Agent 后台任务托管
- 把 Claude Code、Codex 等编码 Agent 委托到隔离工作区里跑长时间任务,不占用开发者本地资源
-
企业级 AI 模型治理
- 需要追踪团队使用了多少 Token、哪些 Agent 调用了哪些工具、统一管控 API Key 的场景
-
合规与审计要求高的环境
- 金融、医疗等行业需要完整操作审计日志的开发环境
快速开始
# 单机快速体验
curl -L https://coder.com/install.sh | sh
coder server
# 生产环境部署(需要 PostgreSQL 13+)
coder server --postgres-url <postgres-connection-string> --access-url <public-url>也提供 Helm Chart 用于 Kubernetes 部署,适合团队级生产环境。
核心特性
1. Terraform 定义工作区
每个工作区的底层基础设施由 Terraform 模板声明,支持的后端包括:
| 后端类型 | 说明 |
|---|---|
| AWS | EC2 虚拟机等云资源 |
| Kubernetes | Pod 级别的工作区 |
| Docker | 容器化工作区,适合本地/小规模部署 |
| 其他云平台 | 通过 Terraform Provider 生态扩展 |
模板构建器(Template Builder)提供引导式界面,无需手写 Terraform 即可完成常见配置。
2. WireGuard 安全隧道
工作区通过 WireGuard 隧道连接,保证网络传输的安全性,同时支持灵活的网络拓扑(用户可以直接 SSH、用 IDE 远程连接,或走 Web 终端)。
3. 闲置资源自动关闭
工作区在无人使用时自动关闭底层计算资源,只在需要时才启动——这对云资源成本控制很关键,避免"忘记关的云主机"持续计费。
4. 四种运行 AI Agent 的方式
| 方式 | 适用场景 |
|---|---|
| Coder Agents | 内置原生 AI 编码 Agent,推理循环运行在控制平面,工作区可完全网络隔离,适合后台长任务 |
| Agent Relay | 连接云端托管 Agent 服务(如 Cursor Cloud Agents)到自托管工作区,云端推理,工作区执行工具调用(早期预览阶段) |
| IDE 内 Agent | 与 Cursor、Devin Desktop、Zed 等 IDE 内置 Agent 集成,跟开发者现有工作流并行 |
| 模板内置 Agent | 模板管理员通过 Registry 模块把 Claude Code、Codex 等终端类 Agent 直接装进工作区模板 |
模板内置 Agent 的配置示例:
module "claude-code" {
source = "registry.coder.com/coder/claude-code/coder"
version = "~> 5.2"
agent_id = coder_agent.main.id
}5. AI Gateway(企业版)
集中化管理所有 AI 模型访问:
- 统一认证:不需要在每个工作区单独配置 API Key
- 审计追踪:记录所有 Prompt 和工具调用
- 策略执行:对上游 LLM 提供商的访问做策略管控
- Agent Firewall:进程级的网络和命令策略,限制 Agent 在工作区内能访问和执行的范围
6. 编辑器与生态集成
- VS Code 插件、JetBrains Toolbox 插件
- Dev Containers 支持(
@devcontainers/cli+ Docker) - Envbuilder(无 Docker 访问权限环境下的替代方案)
- Kubernetes 日志流、GitHub Actions 集成
深入剖析
"Agent 循环跑在控制平面"的架构意义
这是 Coder AI Agent 设计里最值得琢磨的一点。大多数 AI 编码工具的架构是这样的:
常见架构(Agent 跑在工作区/本地):
开发者机器/工作区
├── AI Agent 进程
├── LLM API Key(存在环境变量/配置文件里)
└── 工具调用直接在本地执行
风险:工作区一旦被攻破,API Key 直接泄露
风险:Agent 的所有操作没有统一的审计入口Coder Agents 的做法不同:
Coder 的架构(Agent 推理跑在控制平面):
控制平面(你的基础设施,不是工作区)
├── Agent 推理循环
├── LLM API Key(只存在这里)
└── 决策结果 → 下发给工作区执行
工作区
├── 只接收具体的执行指令
├── 不存放任何凭证
└── 执行结果 → 回传给控制平面
好处:
- 工作区被攻破,API Key 不会泄露(它根本不在那里)
- 每次工具调用都关联用户身份,天然可审计
- 工作区可以完全网络隔离,Agent 依然能工作这个设计本质上是把"大脑"和"手脚"分离——推理在受控的中心环境完成,执行分散到隔离的工作区。对于需要合规审计的企业场景,这种架构提供了单点可控的审计入口。
四种 Agent 模式的取舍
Coder 没有强推单一的 Agent 集成方式,而是给了四种选择,对应不同的信任模型和使用场景:
信任程度从高到低排列:
1. Coder Agents(最受控)
推理在你的基础设施内完成,凭证不出控制平面
适合:企业合规要求高、需要完整审计的场景
2. 模板内置 Agent(受控 + 灵活)
Agent 本身跑在工作区内,但工作区本身是标准化、可审计的
适合:需要用 Claude Code/Codex 等具体工具的团队
3. IDE 内 Agent(开发者自主)
跟随开发者本地 IDE 配置,Coder 只提供底层工作区
适合:让开发者用熟悉的工具,Coder 只管基础设施
4. Agent Relay(信任第三方云服务)
编排推理在第三方云端完成,工作区仅执行
适合:想用 Cursor Cloud 等云端 Agent 能力,但执行环境要自托管这种分层设计的现实意义:不同团队对"AI Agent 能看到什么、能做什么"的信任边界不同,Coder 用同一套基础设施覆盖了从"完全内部闭环"到"引入外部云端智能"的整个谱系。
与同类云开发环境的对比
| 维度 | GitHub Codespaces | Gitpod | Coder |
|---|---|---|---|
| 部署方式 | 仅 GitHub 托管 | 云托管为主 | 完全自托管 |
| 基础设施定义 | 有限自定义 | .gitpod.yml | Terraform(完整 IaC) |
| 数据主权 | ❌ 在 GitHub 云上 | 部分 | ✅ 完全自控 |
| AI Agent 原生支持 | 有限 | 有限 | ✅ 四种模式 |
| 模型治理(AI Gateway) | ❌ | ❌ | ✅ 企业版 |
| 后端灵活性 | 固定 | 固定 | AWS/K8s/Docker 任选 |
| 开源 | ❌ | 部分开源 | ✅ AGPL-3.0 |
Coder 的核心差异化:完全自托管带来的数据主权 + Terraform 级别的基础设施灵活性 + 专门为 AI Agent 设计的安全边界。代价是需要自己运维这套系统,而不是像 Codespaces 一样"开箱即用"。
项目地址与资源
官方资源
- 🌟 GitHub:https://github.com/coder/coder
- 🌐 官网:https://coder.com
- 📚 文档:https://coder.com/docs
- 💬 Discord:Coder 社区 Discord
- 🐛 Issues:GitHub Issues
相关资源
- Terraform — Coder 模板系统的基础,声明式基础设施定义
- Devcontainers — Coder 支持的容器化开发环境标准
- Model Context Protocol — 与 Coder Agent 生态相关的工具调用标准
总结与展望
核心要点回顾
- Terraform 定义一切:工作区基础设施用 IaC 方式声明,AWS/Kubernetes/Docker 后端任选,环境完全可复现
- WireGuard 安全隧道 + 闲置自动关闭:网络安全和成本控制并重
- 四种 AI Agent 集成模式:从完全受控的 Coder Agents 到灵活的 IDE 内 Agent,覆盖不同信任边界的需求
- Agent 推理跑在控制平面:凭证永不进入工作区,天然支持审计——这是给 AI Agent 时代设计的安全架构,不是传统 CDE 的附加功能
- AI Gateway 提供集中治理:统一认证、成本追踪、策略执行,企业级 AI 使用的必要基础设施
适合谁
- 需要自托管云开发环境的团队:不想把代码和数据放在第三方云上,同时想要 Codespaces 级别的体验
- 大规模使用 AI 编码 Agent 的组织:需要统一管控 API Key、追踪成本、审计 Agent 操作
- 对合规审计有严格要求的企业:金融、医疗等需要完整操作日志的行业
- DevOps/平台团队:想用 Terraform 统一管理开发环境基础设施,而不是让每个人各自配置
一句话评价
Coder 原本解决的是"云开发环境"的老问题,但它给 AI Agent 设计的安全边界——推理在控制平面、凭证不进工作区——可能才是它在这个时代真正的价值所在。
欢迎访问 PrimeSkills —— 一个精心策划的 AI Agent 与技能市场,所有内容均经过真实企业级工作流验证。没有噱头,只有真正有效的东西。
更多实用知识和有趣产品,欢迎访问我的个人主页