使用 Claude API 无限畅跑 Aider

使用 Claude API 无限畅跑 Aider

Aider 是一个运行在 terminal 里的 AI 结对编程工具,可以直接作用于你现有的 git repository。它的架构很有特点:不同角色可以使用不同模型,例如负责主编码的 main coding model、负责应用修改的 editor model,以及负责规划方案的 architect model。每一轮重构通常都会触发多次 API 调用:Aider 先生成修改方案,再用 editor model 应用到文件,随后提交到 git,并更新 repo map。正因为这种多模型、多调用的工作方式,Aider 和 AI Prime Tech Unlimited 这种固定费用的 Claude API 中转服务非常契合,尤其适合想要 Claude 无限使用、稳定跑大量代码修改任务的开发者。

Aider 的多次调用架构与 Token 使用模式

Aider 并不是简单地把你的请求发给模型,然后返回一段回复。每一次交互都会触发一条完整 pipeline:main model 先生成编辑指令,editor model 再解析这些指令并应用到你的本地文件;如果启用了 architect mode,那么在所有修改之前,还会先执行一次独立的规划步骤。除此之外,Aider 还会维护一个 repository map,也就是 repo map。它是对整个 codebase 结构的压缩表示,会被放进每一次请求里,让模型即使没有显式看到某个文件,也能理解项目里有哪些模块、函数、类和调用关系。这种设计让 Aider 在大型项目里更像一个真正理解上下文的 coding agent,而不只是一个单轮 ChatGPT 式的代码补全工具。

单独一个 repo map 就可能消耗 10,000 到 30,000 tokens,具体取决于项目规模。关键是它会随每一次请求一起发送。再加上你在 chat 中显式加入的文件内容、对话历史、模型输出本身,一次普通的 Aider 交互很容易用掉 50,000 到 100,000 tokens。如果一次重构会话包含五六轮来回,总 token 消耗达到几十万非常正常。对于按量计费的 Claude API 来说,这会让开发者在每次请求前都开始犹豫:要不要加入更多文件?要不要保留上下文?要不要继续让模型多试几次?而使用固定费用的 claude api中转后,这类顾虑会明显减少。

architect mode 会让每轮交互的调用数量翻倍:先由 architect model 从高层规划修改,再由 main model 把计划落实为具体 diff 或编辑动作。对于复杂改造、跨文件重构、架构迁移和 bug 定位,这通常会带来更好的结果,但也确实会让 API 消耗翻倍。在按 token 计费时,很多用户为了省钱会关闭 architect mode,甚至减少 repo map 或压缩上下文,最后牺牲了代码质量。使用 AI Prime Tech Unlimited 这种固定费用方案时,更推荐在所有非平凡任务中保持 architect mode 开启,让模型先思考再动手,充分发挥 Claude 在复杂推理和代码理解上的优势。

通过原生 Anthropic 路径连接

Aider 原生支持 Anthropic 模型,使用方式是通过 anthropic/ 模型前缀。要使用自定义 base URL,需要把 ANTHROPIC_API_BASE 环境变量设置为 https://claudeapikey.dev,也就是 root host,不要带 /v1,因为 Anthropic SDK 会在内部自行处理路径拼接。然后把 ANTHROPIC_API_KEY 设置为你的 AI Prime Tech Unlimited 密钥。对于正在搜索 claude api密钥 或想要购买claude api 的开发者来说,这里可以理解为:你拿到的是网关提供的 key,Aider 通过 Anthropic SDK 兼容路径把请求发到 AI Prime Tech Unlimited。

启动 Aider 时使用 model flag,例如:aider --model anthropic/claude-sonnet-4-5。anthropic/ 前缀会告诉 Aider 使用 Anthropic SDK 路径,而该路径会读取 ANTHROPIC_API_BASE 和 ANTHROPIC_API_KEY。需要注意,Aider 没有 --anthropic-api-base 这个命令行参数;你必须通过环境变量设置,或者使用 --set-env 做 inline 配置,例如 aider --set-env ANTHROPIC_API_BASE={SITE} --model anthropic/claude-sonnet-4-5。这个细节很重要,因为很多连接错误并不是模型不可用,而是 base URL 设置到了错误的位置。

原生 Anthropic 路径可以获得完整的 Anthropic Messages API 支持,包括 streaming、tool use 和 thinking blocks。对于 Claude 模型,这是更推荐的接入方式,因为 Aider 对 Anthropic 响应结构下的 edit format 解析更成熟,也更符合 Claude 输出结构的特点。editor model 和 weak model 同样可以在这条路径上设置为不同的 Claude 变体。对于希望通过 Claude API 中转稳定使用 Aider 的团队来说,原生 Anthropic 路径通常是最少踩坑、兼容性最好的选择。

通过 OpenAI 兼容路径连接

另一种方式是使用 OpenAI-compatible path。此时需要把 OPENAI_API_BASE 设置为 https://claudeapikey.dev/v1,注意这里必须带 /v1 后缀;同时把 OPENAI_API_KEY 设置为你的 unlimited key。启动命令可以写成:aider --model openai/claude-sonnet-4-5。openai/ 前缀会让请求走 LiteLLM 的 OpenAI handler,由它负责把 OpenAI 风格的请求转换到网关支持的 Claude 模型。

OpenAI 兼容路径适合基础交互,也方便那些已经围绕 OpenAI API 生态搭好工具链的开发者快速迁移。不过,对于某些 Anthropic 专有能力,它可能存在细微限制。Aider 底层使用 LiteLLM 在不同 provider 格式之间做转换,大多数场景都能正确处理。但如果你非常依赖 tool calling、结构化编辑、复杂 diff 或长上下文代码重构,原生 Anthropic 路径通常更稳。尤其在 Aider 这种会自动解析模型回复并写入文件的工具里,输出格式的稳定性比普通聊天场景更重要。

你也可以混合使用不同路径:比如 main model 使用 Anthropic 路径,而 weak model 使用另一个 provider。这种灵活性在按量计费时有意义,因为你可以用 Claude 处理复杂推理,把生成 commit message、摘要这类简单任务交给更便宜的模型。但在 Claude 无限额度方案下,成本上的动机并不强。既然固定费用已经覆盖大量调用,你完全可以让 coding、planning、commit summary 都使用 Claude,把注意力放在质量、稳定性和响应速度上,而不是每次都计算 claude api价格。

Architect Mode 与模型拆分

Aider 的 /architect 命令会启用两阶段工作流:architect model 先规划代码修改方案,然后 editor model 再负责实现。为了获得最高质量的规划,可以用 --architect anthropic/claude-opus-4-6 设置 architect model。Opus 更适合处理复杂推理、系统设计、跨模块影响分析和重构方案评估。editor model 则更偏向机械执行,负责生成格式正确的 diff、修改文件内容,并保持输出符合 Aider 可解析的编辑格式,因此可以选择速度更快的模型。

weak-model 设置用于控制哪些模型处理轻量任务,例如生成 commit message、总结本轮修改、处理一些非关键辅助工作。可以用 --weak-model anthropic/claude-haiku-4-5 来指定。按 token 计费时,weak model 的价值主要是省钱:把简单任务从昂贵模型上卸载下来。但在无限方案下,它的价值更多体现在 latency,也就是响应速度。Haiku 对简单任务反应更快,用它处理 commit message 和 summaries,可以让整个 Aider 会话更流畅。

一个配置完整的 unlimited Aider session 可以这样拆分:--model anthropic/claude-sonnet-4-5 负责主要编码,--architect anthropic/claude-opus-4-6 负责规划,--weak-model anthropic/claude-haiku-4-5 负责 commits 和 summaries。这样每一个决策点都能使用最适合的 Claude 模型,而不必担心成本突然飙升。唯一需要权衡的是响应延迟:Opus 驱动的 architect 步骤会更慢一些,但通常能减少后续返工。对于追求 Claude 无限使用、想让 Aider 长时间运行在大型代码库上的开发者,这种模型拆分非常实用。

Repository Map 与 CONVENTIONS.md

Aider 会自动生成 repo map,也就是对 repository 文件结构、class hierarchy、function signature 等信息的压缩视图,并把它加入每次 API request。它的作用是让模型理解那些没有被你手动加入聊天窗口的代码。例如模型可以根据 repo map 建议正确 import、调用现有函数、遵守项目已有分层方式,并保持和整体 codebase 的一致性。对大型项目而言,这个能力非常关键,因为你不可能每次都手动把所有相关文件贴给模型。

repo map 的大小会随着项目规模增长。一个小项目,例如 50 个文件,可能只增加 5,000 tokens;而一个大型 monorepo,例如 500 个以上文件,可能达到 30,000 tokens。由于 repo map 会出现在每一次请求中,它构成了每轮交互的基础 token 成本。在按量计费场景下,开发者可能会为了省钱调低 repo map 或减少上下文,导致模型对项目理解不完整。使用 unlimited 方案时,这个成本就不再是问题。让 Aider 按它认为合适的详细程度构建 repo map,通常能换来更好的代码建议和更少的错误修改。

CONVENTIONS.md 可以理解为 Aider 的项目级 instructions。你可以把它放在 repo root,Aider 会把其中内容加入 system prompt。建议在里面写清楚 coding standards、命名规范、目录约定、错误处理风格、测试偏好、框架特定规则,以及团队不希望 AI 改动的边界。和 repo map 一样,CONVENTIONS.md 也会增加每次请求的 token 数量;但在 Claude 无限额度下,你可以把规则写得更完整,而不必担心每多写一段说明都会增加成本。对于团队协作来说,这比每个开发者在 prompt 里重复说明规则更稳定。

Git 集成与自动提交

Aider 会把每次修改自动提交到 git,并使用 weak model 生成描述性的 commit message。这样你会得到一条清晰的 AI-assisted changes 历史,可以逐个 review、cherry-pick 或 revert。auto-commit 功能要求当前 working directory 是一个 git repository,并且没有未提交修改;如果你确实要在 dirty working tree 上运行,也可以使用 --dirty 覆盖。这个设计能降低 AI 修改代码的风险,因为每一步都有独立提交可以回滚。

每次生成 commit message 都是一次单独的 API call,通常发给 weak model。一次会话里如果包含很多小步修改,这些调用也会累积起来。在 unlimited 模式下,auto-commit 可以放心高频使用:每一个小改动都提交一次,获得最细粒度的历史记录。后面你永远可以 squash commits,把多个小提交合并成一个整洁提交;但如果一开始就是一个巨大的单次提交,就很难再拆回每一个 AI 修改步骤。

可以使用 /undo 回滚上一次修改及其 commit,然后重新描述你的需求。在无限 API 访问下,这种 undo-retry loop 几乎没有额外成本,因此很适合迭代式开发。你可以先让 Aider 尝试一个改动,检查结果,如果方向不对就 undo,调整指令后再试一次。每一轮尝试都被固定费用覆盖,不需要像按量计费那样因为担心 token 消耗而勉强接受不理想的修改。对于重构、迁移测试框架、拆分模块、修复复杂 bug,这种自由试错非常有价值。

Aider 配置排查

最常见的错误是把两条路径的 base URL 格式混在一起。对于 Anthropic path,也就是 anthropic/ 前缀,ANTHROPIC_API_BASE 必须是 root host,不带 /v1。对于 OpenAI path,也就是 openai/ 前缀,OPENAI_API_BASE 必须包含 /v1。如果你遇到 connection errors、404 或请求无法到达网关,第一步就应该检查这里。很多看似是 claude api密钥 错误的问题,实际上只是 base URL 后缀写错了。

如果 Aider 报告 model not found,先确认 model string 是否包含正确前缀。Anthropic 路径应使用 anthropic/claude-sonnet-4-5,OpenAI 路径应使用 openai/claude-sonnet-4-5。前缀会告诉 LiteLLM 应该使用哪个 SDK 或 handler,而斜杠后面的 model ID 必须与 gateway 实际提供的模型名称一致。如果你刚购买 Claude API 或切换了 Claude API 中转服务,建议直接复制服务文档里的 model ID,避免因为版本号、短横线或前缀错误导致模型不可用。

Streaming errors,例如响应只返回一部分、输出被截断,可能表示 proxy 或 firewall 干扰了 Server-Sent Events。Aider 默认会以 streaming 方式接收模型回复,这通常能带来更好的交互体验。如果你处在公司代理、受限网络或某些 VPN 环境下,可以尝试使用 --no-stream 关闭 streaming,改用同步请求。这样感知延迟会增加一些,但能规避很多和 streaming 连接相关的问题。对于正在寻找 免费claude api 测试或评估 claude api价格 的用户来说,也建议先用一个小型 repository 验证连接路径、模型前缀和 streaming 行为,再迁移到大型项目长期使用。

# 原生 Anthropic 路径(推荐)
export ANTHROPIC_API_BASE="https://claudeapikey.dev"
export ANTHROPIC_API_KEY="<your AI Prime Tech Unlimited key>"
aider --model anthropic/claude-sonnet-4-5 \
      --architect anthropic/claude-opus-4-6 \
      --weak-model anthropic/claude-haiku-4-5

# OpenAI 兼容路径(备选)
# export OPENAI_API_BASE="https://claudeapikey.dev/v1"
# export OPENAI_API_KEY="<your key>"
# aider --model openai/claude-sonnet-4-5

# 或者使用 --set-env inline 配置:
# aider --set-env ANTHROPIC_API_BASE=https://claudeapikey.dev \
#       --model anthropic/claude-sonnet-4-5

FAQ

Aider 有 --anthropic-api-base 这个命令行参数吗?
没有。Aider 会从 ANTHROPIC_API_BASE 环境变量读取 Anthropic base URL。你可以用 --set-env ANTHROPIC_API_BASE=https://claudeapikey.dev 做 inline 设置,也可以把它 export 到 shell profile 里作为持久配置。

在 Aider 里使用 Claude 模型时,应该选 anthropic/ 还是 openai/ 前缀?
推荐使用 anthropic/ 前缀,也就是原生 Anthropic SDK 路径。它对 Claude 的 tool calling、edit format 和 streaming 兼容性更好。openai/ 前缀也能工作,但中间多了一层格式转换,在复杂编辑时偶尔可能带来格式问题。

repo map 是什么?它会怎样影响 token 使用?
repo map 是对代码库结构的压缩表示,会被加入每一次请求。它会根据项目大小为每次调用增加约 5,000 到 30,000 tokens。在 unlimited 方案下,这部分开销由固定费用覆盖;为了获得更好的代码理解效果,建议让它保持足够详细。

使用 unlimited 时,可以无额外成本开启 architect mode 吗?
可以。architect mode 会让每轮交互的 API 调用翻倍,也就是先规划再实现,因此 token 消耗也会增加。但在 unlimited plan 中,这部分已经被覆盖。对于任何非平凡重构,建议保持 architect mode 开启,以获得更好的规划质量。

为什么 Aider 要为每个 commit message 单独发起 API 调用?
Aider 会使用 weak model 为每次 auto-commit 生成描述性的 commit message。这是一个轻量调用,在 unlimited 模式下不会产生额外成本。好处是你可以获得一条清晰、可追踪、文档化良好的 AI 辅助修改历史。

Start using Claude in minutes

Get an API key — no Anthropic account or waitlist required.

Get your API key