Agent 写得越快,云账单崩得越狠
让 Coding Agent 写 Terraform,它会在 30 秒内给你生成一个包含 12 个资源的环境:RDS 用 db.r5.xlarge、ELB 开 5 个节点、S3 桶配上版本控制、CloudWatch 全量日志……全都能跑,测试全过,代码也规范。然后月底账单来了:¥48,000,是预算的 4 倍。
这不是模型笨,是信息不对称:Agent 训练时见过「最佳实践」,但从没见过你的预算、你的 tagging 规范、你的成本基线。它写代码时对「这个实例类型一小时多少钱」毫无概念——就像让一个从没见过价签的人去超市采购,他只管把购物车装满。
过去一年我们写过的工具都在解决「Agent 看不懂代码库」(codegraph、gitnexus、serena),但「Agent 看不懂账单」这件事几乎没人管。Infracost 是这条赛道里最成熟的一个:2020 年建仓的老项目,12.4K Star,今年 2.0 大重构后明确把「AI coding agents」写进了定位第一行。
它是什么:一个引擎,五个入口,把「价格」变成 Agent 的第六感
一句话:Infracost 是一个云成本智能引擎——扫描你的 Terraform / Terragrunt / CloudFormation / AWS CDK 代码,输出资源级成本分解和 FinOps 策略违规,然后通过 CLI、IDE、AI Agent、CI 四个入口把结果送到你面前。所有入口共享同一个引擎、同一份定价数据、同一套 FinOps 策略——你在 CI 里设的规则,Agent 生成代码时同样会遵守。
2.0 重构后它拆成了几个仓库,主仓库变成「前门」:
infracost/cli—— 核心引擎。Go 写的单二进制,scan+inspect两个主命令infracost/agent-skills—— 给 Claude Code / Cursor / GitLab Duo 的 4 个 skills(今天的重点)infracost/lsp—— 标准 LSP server,任何说 LSP 的编辑器都能接(VS Code / JetBrains / Neovim / Zed 插件都基于它)infracost/cloud—— SaaS 仪表盘:团队在这里定义 tagging 策略、guardrails、预算,一处定义处处执行
支持 1,100+ 个资源(AWS / Azure / GCP),包括 S3、Lambda 这类按用量计费的资源(需要 usage 文件给出用量假设)。许可 Apache-2.0,比我们写过的 GitNexus(PolyForm Noncommercial)宽松得多——商用无压力。
对 Coding Agent 最狠的部分:四个 skills,双绑定架构
infracost/agent-skills 是 2026 年新增的重点,四个 skill 覆盖「生成前、生成后、查价格、修问题」全流程:
| Skill | 干什么 | 典型触发词 |
|---|---|---|
| iac-generation | 生成 IaC 时保证合规:tagging、region、预算策略全检查,不合规当场改 | 「写个 RDS,tag 要 team=payments、预算 $500/月」 |
| scan | 分析现有项目:成本估算 + 省钱机会 + FinOps 策略违规 | 「扫一下这个 Terraform,谁缺 tag?」 |
| price-lookup | 无代码查价:自动生成 sample Terraform 跑 Infracost 拿价格 | 「db.r5.xlarge 在 us-east-1 多少钱?」 |
| fix-findings | 处理 FinOps 发现:小问题本地修,大问题让 Agent 起草 PR / ticket | 「帮我把这个 repo 的 findings 修了,能开 PR 就开」 |
架构上最值得抄的是「双绑定」设计:每个 skill 用「capabilities」(scan / price / policies / budgets / guardrails)写成,然后每个 capability 有两个绑定——MCP 绑定(Claude Code、Cursor 用:infracost mcp 起一个 stdio server,agent 调 typed tools、拿结构化 JSON,不用解析文本)和 CLI 绑定(GitLab Duo、Gemini CLI 用:直接跑 infracost 命令,命令刻意保持无 metacharacter,方便 Duo 做 pattern-based approval)。
skill 正文里只有一条规则:有 MCP 就用 MCP 工具,没有就跑 CLI 命令。工作流、FinOps 概念、展示规范只写一份,绑定层各自薄薄一层——同一套逻辑,同时服务「会调工具的 agent」和「会跑 shell 的 agent」。这比给每个 agent 各写一套 skill 维护成本低一个量级。
另外 CLI 有个 --llm flag:把命令结果输出成「紧凑、省 token、为 LLM 提示优化」的格式——Agent 跑完 scan 拿到的不是一大坨终端文本,而是直接能塞进上下文的干净结果。
跟「手动查价」和「事后对账」比一比
| 维度 | Infracost(12.4K★) | terraform plan + 手工查价 | 云厂商成本中心/账单 | CloudHealth 类 SaaS |
|---|---|---|---|---|
| 时机 | 写代码时 / PR 时,部署前 | plan 后逐资源查价,部署前 | 月底出账后 | 事后分析为主 |
| Agent 集成 | 4 个 skills,MCP + CLI 双绑定 | 无(agent 不会查价) | 无 | 无 |
| 策略执行 | tagging / budget / guardrail 一处定义处处执行 | 全靠人记得 | 只看总量 | 有,但贵且重 |
| 定价数据 | 实时价格库(走 Infracost Cloud) | 官网手抄,易过期 | 账单即事实,但太晚 | 有 |
| 部署成本 | 一个 Go 二进制 + 免费账号 | 零 | 零 | 按云支出抽成,很贵 |
| 一句话 | 把成本检查左移到生成时 | 靠纪律,人总会忘 | 事后诸葛亮 | 大企业 FinOps 平台 |
跟 Terraform 原生能力的关系要说明白:terraform plan 告诉你「会创建 3 个资源、改变 1 个」——但永远不告诉你这些资源多少钱。Infracost 不是替代 plan,是给 plan 补上它天生缺的那一维。
上手:十分钟跑起来(实测)
# 0. 安装(Linux/macOS 一键脚本)
curl -fsSL https://raw.githubusercontent.com/infracost/cli/main/scripts/install.sh | sh
# 我这边实测装出 v2.16.1,单二进制在 ~/.local/bin/infracost
# 1. 登录(⚠️ 必做,没登录 scan 会卡死,见下面的坑)
infracost auth login # PKCE 浏览器流
# 无浏览器环境(CI/服务器):
infracost auth login --oauth-use-device-flow
# 或直接设环境变量(CI 专用):
# export INFRACOST_CLI_AUTHENTICATION_TOKEN=你的token
# 2. 扫描项目(自动识别 TF / Terragrunt / CloudFormation)
infracost scan ./terraform
infracost scan # 不传路径默认当前目录
# 3. 看上次扫描的汇总(不重跑分析)
infracost inspect --summary
# 4. 给 Coding Agent 装 skills(Claude Code / Cursor 等)
infracost agent setup # 安装 4 个 skills
infracost agent status # 看哪些 agent 装好了、是否过期
infracost agent remove # 卸载
# 5. 当 MCP server 用(agent 侧配置指向这个命令)
infracost mcp # stdio 模式,由 MCP 客户端拉起
# 6. Agent 跑 CLI 时用 --llm 拿省 token 的输出
infracost scan . --llm
# 7. 一站式接线:auth + IDE + agent + CI 全配好
infracost setup
实测记录:安装 5 秒完成,infracost --help 输出完整命令树(agent / auth / ci / ide / org / plugin / setup / inspect / scan / budgets / guardrails / policies / cache / doctor / mcp / update)。我拿一个 8 行的 aws_instance t3.medium 的最小 Terraform 试跑 scan——结果卡在登录提示(详见坑 #1)。没账号跑不到成本数字,这是它跟纯离线工具(gortex / codedb)最大的体验差异。
实际体验的几个坑
- scan 必须先登录,否则直接挂起(我实测踩到)——未登录时
infracost scan .不是报错退出,而是打印一个 PKCE 授权 URL 然后等你按回车开浏览器,在 CI / 无头服务器上这就是无限挂起。我这边等了 60 秒超时。解法:交互环境先infracost auth login,CI 里务必设INFRACOST_CLI_AUTHENTICATION_TOKEN,否则 pipeline 会卡死而不是失败——卡死比失败更难发现 - 免费账号是刚需,不是纯离线工具——价格数据、组织策略都来自 Infracost Cloud(dashboard.infracost.io 注册,免费、无信用卡,agent-skills README 里反复强调)。代码不出你机器,但定价数据要过他们的服务。隐私敏感的场景要先确认这点能不能接受——它跟「代码完全不出机」的 GitNexus 浏览器模式是两个路线
- 2.0 重构砍掉了所有旧命令——网上 90% 的 Infracost 教程还停留在 v1 的
infracost breakdown/infracost diff,这俩在 2.x 已经没了,现在是scan+inspect。搜教程时认准 2.x,看到 breakdown/diff 直接跳过,省十分钟 - 首次 scan 会自动下载插件,内网/代理会卡——CLI 按需拉 parser 插件(terraform / terragrunt / cloudformation / ciscostacks)和 provider 插件(aws / google / azure)。公司代理网络下容易失败,可用
INFRACOST_CLI_PLUGIN_BASE_URL换源、INFRACOST_CLI_PLUGIN_AUTO_UPDATE=false关自动更新、或者INFRACOST_CLI_PLUGIN_DIR指向本地插件目录(本地开发插件时用) - usage-based 资源默认按「假设用量」估,不准——S3、Lambda、EBS 这类按量计费的资源,不提供 usage 文件的话按保守假设估,数字会明显偏低。要认真看成本就提供 usage 假设,别拿默认数字当真理
- 文档分裂期的小混乱——主 README 说支持 4 种 IaC(含 AWS CDK),但 cli 仓库 README 只提 3 种(TF / Terragrunt / CFN)。2.0 拆分期的文档还没完全对齐,CDK 支持到什么程度建议以 cli 仓库和 issues 为准
- fix-findings 目前只有 MCP / Claude Code 绑定——agent-skills README 明确写了这条,CLI 绑定(GitLab Duo / Gemini CLI)覆盖不到它。用 Duo 的团队暂时只能用前三个 skill
跟我们写过的工具有什么关系
这个工坊之前写过 codeburn(8.3K Star,追踪 Claude / Codex / Cursor 这些 AI 工具的token 花费),Infracost 管的是另一本账:你 Agent 生成的云资源本身。两个一起用正好互补——codeburn 告诉你「这个月 AI 工具烧了多少」,Infracost 告诉你「Agent 写出来的基础设施每个月要烧多少」。前者是工具的账单,后者是工具造成的基础设施账单,后者通常比前者大一个数量级。
如果你已经在用 Claude Code 或 Cursor 写 Terraform:装完 infracost auth login + infracost agent setup,然后直接对 Agent 说「给这个服务写个 RDS,预算 $500/月,tag 按规范来」,看它生成的代码是不是真的把价格算进去了——这是唯一能直观验证「Agent 有成本意识」的测试。团队层面再在 CI 里接 PR 评论(GitHub Actions 官方集成),让每次 PR 都带成本 diff,比任何 FinOps 培训都管用。
要不要我帮你把 Infracost 装到一个真实 Terraform 仓库上,对比「有成本约束 vs 无成本约束」两组 Agent 生成的资源配置差异?
适合谁用
- 用 Claude Code / Cursor 写 Terraform 的团队——4 个 skills 直接给 Agent 装成本第六感,这是目前唯一做到这点的开源方案
- 被云账单吓到过的人——PR 里带成本 diff,月底不再开盲盒
- 有 tagging / 预算规范但没人执行的公司——策略在 Cloud 里定义一次,CLI / IDE / Agent / CI 全部强制
- GitLab Duo / Gemini CLI 用户——CLI 绑定 +
--llm输出就是给 shell-running agent 设计的 - 不想碰商用 FinOps 平台的小团队——一个 Go 二进制 + 免费账号,比 CloudHealth 那种按云支出抽成的方案轻太多
总结
Infracost 6 年 12.4K Star 不是靠概念,是靠把一件事做透了:让「价格」和「策略」成为 IaC 工作流里一等公民。2.0 的插件架构 + 双绑定 skills 是它给 coding agent 生态交出的答案——不是让 Agent「记得查价格」,而是让价格在生成时就被检查、被拦截。
它的代价也诚实:必须注册账号、定价数据走 Infracost Cloud、CI 里要处理 token、首次运行要下插件。但跟「月底收到 4 倍预算账单」比,这些代价都便宜。
项目地址:github.com/infracost/infracost(核心 CLI:github.com/infracost/cli · Agent Skills:github.com/infracost/agent-skills · 官网:infracost.io)