career-ops 低成本运行完全指南:模型无关设计、spend_tier 分层路由与零成本路径
本文基于 career-ops 官方文档 docs/RUNNING_ON_A_BUDGET.md 整理并扩充,讲解如何在 Token 成本与速率限制成为瓶颈时,不改动任何一行 career-ops 代码,仅通过模型路由、spend_tier 配置、独立评测脚本与批处理参数,把一条完整的"扫描 → 评估 → 简历定制 → PDF 生成"求职流水线跑到低成本甚至零成本。读完本文,你可以掌握:如何确认自己是否在为已付费订阅重复付费、如何把 OpenCode/Qwen CLI 指向 DeepSeek、OpenRouter、Moonshot 或 Ollama 等廉价端点、如何用独立脚本完成单次评估,以及如何用 --limit/--dry-run/--resume-paused 等标志控制批量运行的烧钱速度。
1. 核心设计:模型无关(Model Agnosticism)
大规模求职流水线的最常见瓶颈是 Token 用量成本与速率限制:career-ops 需要处理完整职位描述(JD)、对照 CV 在五个加权维度上评分、并定制简历与求职信,上下文增长很快。
幸运的是,career-ops 是完全 AI 无关的(AI-agnostic)。流水线由本地模板、Markdown 提示词和 Node/Playwright 脚本组成,AI 逻辑完全由你运行它的那个 AI 编码 CLI(Claude Code、OpenCode、Qwen CLI、Codex、Antigravity CLI、Grok Build CLI 等)驱动。提示词全部集中在 modes/ 目录下的 Markdown 文件中,评分规则、模型路由表等系统逻辑放在 modes/_shared.md,评估模式定义在 modes/oferta.md。
这意味着:选择一个支持自定义模型配置的 CLI,把它路由到更便宜的 API 供应商或本地 LLM,即可在不损失任何功能的前提下大幅降低运行成本——零代码改动。
从源码结构看,这一设计落在三处:
- 独立的无 CLI 依赖评测脚本,如 openai-eval.mjs(任意 OpenAI 兼容端点)、ollama-eval.mjs(本地 Ollama)、gemini-eval.mjs(Google AI Studio),它们直接从
modes/oferta.md+modes/_shared.md读取评估逻辑,从cv.md读取简历,生成报告并更新 tracker; - 上下文预算管理模块 lib/context-budget.mjs:用约 4 字符/Token 的启发式估算(
estimateTokens),并按 P0/P1/P2 优先级压缩_shared.md的章节——评分系统、原型检测、岗位真实性、全局规则等 P0 章节永不压缩,面向文本生成的 P2 章节(Voice DNA、写作风格、ATS 规则)在预算吃紧时优先裁剪; - 批处理运行器 batch/batch-runner.sh 与 batch/batch-prompt.md,复用单个 worker 而不是每个岗位重发一遍指令。
2. 内置成本旋钮:spend_tier
在配置 CLI 之前,先了解 career-ops 自带的评估成本控制旋钮:config/profile.example.yml 中的 spend_tier 设置(示例文件第 112–117 行有完整注释)。它决定你的 CLI 用哪一档模型来评估岗位——无需任何供应商配置。
| 档位 | 行为 |
|---|---|
| economy | 最便宜/最快的模型,不启用扩展思考。适合大批量扫描。 |
| standard | 均衡模型,不启用扩展思考。键缺失时的默认值。 |
| premium | 能力最强的模型,自适应扩展思考。适合高 stakes 的 offer。 |
在 profile 中设置一次即可:
# config/profile.yml
spend_tier: standard
各档位背后的具体模型取决于你用的 CLI。modes/_shared.md 的 "Spend Tier (Model Routing)" 小节是唯一允许出现模型/供应商名称的位置,其映射表为:
| CLI | economy | standard | premium | 扩展思考 |
|---|---|---|---|---|
| Claude Code | Haiku 4.5 | Sonnet 5 | Opus 5 | off / off / adaptive |
| OpenCode / Gemini CLI / Copilot CLI / Codex / Qwen / Antigravity CLI | 该 CLI 最便宜/最快的可用模型 | 均衡模型 | 最强模型 | off / off / adaptive |
从 modes/_shared.md 的源码注释看,Claude Code 一行给出具体模型名是因为其模型阵容稳定可查;其余 CLI 刻意不点名,"错误的猜测会把用户路由到不存在的模型"。这一约束还有一条纪律性规则:modes/ 下其他所有位置只能引用 "the economy/standard/premium tier",不得重复硬编码模型名——这样路由逻辑保持模型无关,任何 CLI 的映射变化只需改表中一行。同时 Output parity(输出一致性) 有明确保证:无论哪一档模型,A-H 报告结构、标题与分节完全相同,评分语义不变。
此外,文档还提到一个与成本直接相关的配套机制:在 standard 与 premium 档位下,流水线会先跑一个预筛选门(pre-screen gate)——用经济档等价的便宜模型快速判断 JD 是否明显不匹配(领域错位、级别错位、地点/签证硬性冲突),命中则直接标记 skipped 跳过完整评估。这一逻辑写在 modes/batch.md("standard or premium tier: Before a worker runs the full A-F evaluation..." 一段);economy 档则无此门,因为它本身就是最便宜档,再加预筛选只增加延迟不省钱。config/profile.example.yml 中还提供了更细的两段式 triage 门配置(pipeline.triage_threshold 默认 3.5、triage_min_urls 默认 5,混合批次下可把总 Token 削减约一半)以及 auto_pdf_score_threshold(默认 3.0,低分岗位不自动渲染 PDF)——这些都是同一"先筛后算"思路的延伸。
3. 已在付费订阅上?确认你确实在用它
如果你已经在为某个套餐付费(Claude Pro/Max,或其他 CLI 的等价套餐),却又在按 Token 被计费,常见原因是:环境里放着一个 API key——大多数 CLI 会优先使用显式 key 而不是你已登录的订阅。工具无法知道你更想花已经买过的套餐。
本节以 Claude Code 为主(这是问题出现最多的 CLI),其他 CLI 有各自的优先级规则,形态相同。
3.1 检查当前用的是什么
echo $ANTHROPIC_API_KEY # 这里打印出任何内容 = 正在按 token 计费
在 Claude Code 内,/status 报告当前登录身份,key 生效时会显示 API-key 行;/usage 显示订阅的计划用量,或 key 计费下的会话美元成本。
3.2 切换到订阅计费
- 从所有导出该变量的地方移除(
~/.zshrc、~/.bashrc、~/.profile、项目.env,或任何替你设置它的工具)。unset ANTHROPIC_API_KEY只影响当前 shell,必须同时改文件,否则下个终端又回来。 - 重启终端。
- 在 Claude Code 中执行
/login并登录。
注意 ANTHROPIC_AUTH_TOKEN 以及云供应商开关(CLAUDE_CODE_USE_BEDROCK、CLAUDE_CODE_USE_VERTEX)同样具有优先级——如果找不到多余的 key,也要检查这些。
3.3 settings.json 里的 helper 可能把 key 带回来
即使环境干净,~/.claude/settings.json 也可以配置 apiKeyHelper——一个 Claude Code 在每次请求时执行的、用于产生 API key 的脚本。一旦设置,该 key 会压过订阅登录,仅执行上面的步骤无法修复计费问题。检查方法:
grep -n "apiKeyHelper" ~/.claude/settings.json 2>/dev/null # 任何匹配 = 已配置 helper
移除后重启 Claude Code:
{
"apiKeyHelper": "/path/to/script.sh" // 删除这一行
}
项目级 .claude/settings.json 与 ~/.claude/settings.local.json 也能设置同一 key——如果问题反复出现,这两个文件也要查。
3.4 批量模式是已知例外
batch/batch-runner.sh 驱动的是 claude -p headless worker,headless 路径不使用交互式登录。若想让批量运行走订阅而不是按 credits 计费,生成一次长期 token:
claude setup-token # 需要活跃的 Claude 订阅
然后把它打印出的值导出为批量运行环境中的 CLAUDE_CODE_OAUTH_TOKEN。这是一个凭据:按凭据对待,切勿提交到版本库。
3.5 两件事要提前预期
- 计划限制是窗口,不是余额。 订阅制给的是滚动用量窗口而非信用余额,重扫描可能让你在窗口重置前暂停。
spend_tier: economy与上文预筛选门正是为"高量日"设计的降本手段。 - 细节会变化。 认证优先级与命令名来自 CLI 本身而非 career-ops;若本文描述与你所见不符,以供应商官方文档为准。
4. 配置替代 CLI:OpenCode 与 Qwen CLI
不同 CLI 对模型路由的灵活度不同,预算场景下最常见的两个选择是 OpenCode 和 Qwen CLI。
4.1 OpenCode CLI
OpenCode 是开源编码代理,可便捷地路由到自定义 API 供应商(DeepSeek、OpenRouter、Together AI 等)或本地端点(Ollama):
-
在项目目录中初始化/打开 OpenCode:
opencode -
打开其配置(通常位于
.opencode/config.json,或通过 CLI 提示/设置界面配置)。 -
将
provider设为所选端点(如 OpenRouter 或任意 OpenAI 兼容端点)。 -
按需配置自定义端点的环境变量:
# Git Bash / Linux / macOS: export OPENAI_API_BASE="https://openrouter.ai/api/v1" export OPENAI_API_KEY="your_openrouter_api_key_here" # Windows CMD: set OPENAI_API_BASE=https://openrouter.ai/api/v1 set OPENAI_API_KEY=your_openrouter_api_key_here # Windows PowerShell: $env:OPENAI_API_BASE="https://openrouter.ai/api/v1" $env:OPENAI_API_KEY="your_openrouter_api_key_here"
4.2 通过 OpenCode 使用 Kimi K2.5(已验证配方)
注意区分"Kimi 模型"与"Kimi CLI"。 本配方是在 OpenCode CLI 内运行 Moonshot 的 Kimi K2.5 模型,与把独立的 Kimi CLI 当作宿主是两回事(支持的 CLI 清单见 docs/SUPPORTED_CLIS.md)。名称撞车,配置不撞车。以下步骤全部在 OpenCode 内完成。
以下配置已经 career-ops 配合 Moonshot AI 的 OpenAI 兼容 API 验证通过。
opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"moonshot": {
"npm": "@ai-sdk/openai-compatible",
"name": "Moonshot Kimi",
"options": {
"baseURL": "https://api.moonshot.ai/v1",
"apiKey": "{env:MOONSHOT_API_KEY}"
},
"models": {
"kimi-k2.5": {
"name": "Kimi K2.5"
}
}
}
},
"model": "moonshot/kimi-k2.5"
}
环境变量(按平台三选一):
# Linux/macOS
export MOONSHOT_API_KEY="your_api_key"
# Windows PowerShell
$env:MOONSHOT_API_KEY="your_api_key"
# Windows CMD
set MOONSHOT_API_KEY=your_api_key
验证结果: 该配置在本地通过完整的 career-ops 评估流程验证:评估成功完成、Markdown 评估报告成功生成、应用 tracker 成功更新、验证运行中未观察到格式错误的结构化输出;PDF 生成因本地未配置 Playwright MCP 而被跳过。
说明: 实测运行时间反映的是完整 career-ops 流水线(岗位抓取、提示词加载、报告生成、tracker 更新),而非裸模型推理延迟;Kimi K2.5 在 Moonshot OpenAI 兼容端点上工作正常。
备选方案对比:
| 方案 | 成本 | 备注 |
|---|---|---|
OpenRouter :free |
免费层 | 配置简单,受模型可用性与速率限制约束。 |
| Kimi K2.5 | Moonshot API | 已验证可配合 OpenCode 与 Moonshot OpenAI 兼容端点工作。 |
| Ollama | 本地 | 无 API 成本,但需要合适的本地硬件,且推荐更大的模型才能保证可靠评估。 |
4.3 Qwen CLI
Qwen CLI 原生支持 Qwen 系列模型,也可以配置指向任意 OpenAI 兼容 API base URL:
# Git Bash / Linux / macOS:
export QWEN_API_BASE="https://api.deepseek.com/v1"
export QWEN_API_KEY="your_deepseek_api_key_here"
# Windows CMD:
set QWEN_API_BASE=https://api.deepseek.com/v1
set QWEN_API_KEY=your_deepseek_api_key_here
# Windows PowerShell:
$env:QWEN_API_BASE="https://api.deepseek.com/v1"
$env:QWEN_API_KEY="your_deepseek_api_key_here"
5. 推荐的低成本模型与独立评测器
选择预算友好模型时,需要较强的推理能力来处理多维评分与简历定制。以下是文档推荐的、在评估任务下表现稳定的模型:
| 模型 | 供应商 / 端点 | 每 1M 输入/输出 Token 价格 | 使用理由 |
|---|---|---|---|
| DeepSeek V3 | DeepSeek API / OpenRouter | ~$0.14 / ~$0.28 | 首选推荐。 推理能力对价格的比值无可匹敌,以零头成本逼近前沿模型表现。 |
| DeepSeek-Coder-V2 | DeepSeek API / OpenRouter | ~$0.14 / ~$0.28 | 结构化 Markdown 与简历定制方面指令遵循出色。 |
| Qwen-2.5-Coder (32B / 72B) | OpenRouter / DeepInfra | ~$0.07 - ~$0.30 | 编码与结构化推理强,性价比极高。 |
| GLM-4-Air / GLM-4 | Zhipu AI / OpenRouter | 非常便宜 | 多轮推理与 JSON/Markdown 生成可靠。 |
| Gemini 2.5 Flash | Google AI Studio | 免费层 (15 RPM) | 通过独立脚本 node gemini-eval.mjs 使用。适合零成本低量运行,但受速率限制约束。 |
| Kimi K2.5 | Moonshot AI | 按 API 定价 | 已通过 OpenCode + Moonshot OpenAI 兼容端点验证,产出适合 career-ops 评估的结构化 Markdown(见 4.2 配方)。 |
独立评测器(无需任何 CLI 配置): 上表所有 OpenAI 兼容供应商(DeepSeek、Qwen、GLM、Together、Groq、OpenRouter 等)都可以通过 openai-eval.mjs 直接工作——设置 base URL、模型与 key 即可:
OPENAI_BASE_URL=https://openrouter.ai/api/v1 \
OPENAI_MODEL=deepseek/deepseek-chat \
OPENAI_API_KEY=your_key \
node openai-eval.mjs --file ./jds/job.txt
执行 node openai-eval.mjs --help 可看到按供应商列出的示例(OpenRouter、Together、Groq、DeepSeek、Zhipu GLM、LM Studio 各自的 --url 与 --model 组合)。要 100% 本地/私有运行,把 --url 指向本地服务器(LM Studio / llama.cpp / vLLM),或改用 node ollama-eval.mjs。
NVIDIA NIM 同样可用(托管端点 https://integrate.api.nvidia.com/v1 或自建容器的 /v1),例如 --model meta/llama-3.3-70b-instruct。托管免费层可能排队数分钟,因此要把 OPENAI_TIMEOUT_MS 提到默认值 300 秒以上——这一点在 openai-eval.mjs 源码中可确认:OPENAI_TIMEOUT_MS 默认 300000 毫秒(第 299 行),非法值会直接报错退出。
从源码看,openai-eval.mjs 还内置了安全护栏:非回环端点必须走 HTTPS(明文传输会暴露 CV、JD 与 key,脚本会拒绝启动);托管端点必须提供 API key,仅 localhost 本地服务器可豁免。脚本默认模型为 gpt-4o-mini,支持 --file/--model/--url/--key/--no-save/--no-compress 标志,并调用 lib/context-budget.mjs 的 buildBudgetedPrompt 做按优先级的上下文压缩(--no-compress 可关闭、注入全量上下文)。
6. 本地 LLM 的权衡(Ollama / llama.cpp)
通过 Ollama 完全本地运行模型一分钱不花,但权衡显著:
6.1 尺寸 vs. 质量
- 避开小模型(如 8B 参数):Llama 3 8B、Qwen-2.5-Coder 7B 这类模型对 career-ops 普遍太弱——它们经常无法遵循复杂的评估 schema(A-H 分块结构)、输出合法 Markdown/JSON,或生成低质量、模板化的简历定制。
- 最低推荐尺寸:至少使用 32B+ 或 70B+ 模型(如 Qwen 2.5 Coder 32B/72B 或 Llama 3.1 70B)才能保证可靠的评分与高质量简历定制。
6.2 硬件与 VRAM 要求
- 32B 模型:需要至少 16GB–24GB VRAM 的 GPU(如 RTX 3090/4090、Mac Studio 或 32GB+ 统一内存的 Apple Silicon Mac)。
- 70B 模型:至少 48GB VRAM 才能获得尚可的速度。
预算提示:对大多数用户,通过廉价托管 API(DeepSeek 官方或 OpenRouter)运行 DeepSeek V3 或 Qwen 2.5 Coder 72B,远比投资本地硬件高效划算——几十个评估的成本只有几美分。
7. Token 节约最佳实践
为防止不必要的 API 开销或撞上速率限制,落地以下做法:
-
用
--limit标志控制批量上限:不要手工拆分batch/batch-input.tsv,用--limit <N>每次只处理少量(如 5–10 条)offer,先检视输出质量再投入大批量运行:./batch/batch-runner.sh --limit 5 -
用
--dry-run先做干跑:批量运行前永远先验证哪些 offer 会被处理:./batch/batch-runner.sh --dry-run -
用
--resume-paused恢复中断的运行:批量运行若被速率限制或网络错误中断,不要从头再来。用--resume-paused从断点续跑,跳过已完成岗位,避免浪费 Token:./batch/batch-runner.sh --resume-paused从 batch/batch-runner.sh 源码看,这三个标志都实际存在(
--dry-run仅展示不执行、--resume-paused恢复被 Claude 会话/速率限制暂停的 offer、--limit N限制本次运行条数且必须是非负整数);运行器在撞到会话/速率限制时会打印 "Batch paused: session/rate limit reached. Resume later with --resume-paused." 的提示。 -
扫描时用
--verify:运行职位板扫描时启用存活校验,在过期岗位进入流水线前过滤掉,避免浪费 LLM Token 去评估已关闭的岗位:npm run scan -- --verifyscan.mjs 的头部注释确认
--verify会用 Playwright 逐一检查新 URL 并丢弃过期发布,还可选--throttle(~5–10 秒抖动间隔,避免触发对方速率限制)、--throttle=8000(自定义基础间隔)、--headed-fallback(反爬拦截时切换有头浏览器重试)、--rediscover-404(复验 tracked URL 中的 404/410)。
8. 实战演练:用 DeepSeek V3 via OpenRouter 跑一条低成本流水线
下面是一次端到端的具体走查:扫描职位、评估单个岗位,全程使用 DeepSeek V3(OpenRouter 端点) 与独立 openai-eval.mjs 评测器,绕开了昂贵 CLI agent 的"重评估块"。
第 1 步:扫描职位(0 Token)
门户扫描器直接用 Playwright 与标准 HTTPS 请求查询 ATS API,不用 LLM 读职位板:
node scan.mjs
成本:0 Token,$0.00。(产出新职位 URL 列表并填充 data/pipeline.md。)
第 2 步:抓取 JD(0 Token)
打开扫描器找到的某个 URL,复制职位描述文本,本地保存(如 jds/my-target-role.txt)。
第 3 步:评估 offer(约 4,500 Token)
对 OpenRouter 的 DeepSeek V3 端点运行评估。脚本读取你的 cv.md 与 JD,生成完整评估报告与 tracker 条目:
OPENAI_API_KEY="sk-or-your_openrouter_key" \
node openai-eval.mjs \
--url https://openrouter.ai/api/v1 \
--model deepseek/deepseek-chat \
--file ./jds/my-target-role.txt
近似 Token 用量:
- 输入: 约 20,000 Token。仅静态前缀就达 17,728:脚本把
modes/_shared.md(4,127)+modes/oferta.md(13,601)作为系统提示发出,cv.md与 JD 叠加在其上。 - 输出: 约 1,000 Token(评估报告本身)。
- 成本: 按 DeepSeek V3 价格(~$0.14/1M 输入、~$0.28/1M 输出),每次评估约 $0.003。依然便宜,且下面这个数字比它更值得关心。
这些文件随每个版本增长,所以自己测量,别照抄这段文字:
node --input-type=module -e "
import { estimateTokens } from './lib/context-budget.mjs';
import { readFileSync } from 'fs';
for (const f of ['modes/_shared.md','modes/oferta.md','AGENTS.md'])
console.log(f, estimateTokens(readFileSync(f,'utf8')));"
默认交互路径的真实成本(多数人实际在付的钱)
上面是独立脚本的数字。如果你在 CLI 里粘贴一个职位 URL,agent 会加载 AGENTS.md(8,285)+ modes/_shared.md(4,127)+ modes/oferta.md(13,601)≈ 每次评估 26,000 Token 的指令——那还没算你的 CV、JD 和任何工具输出。这才是交互式评估的真实地板,也是"长时间粘贴 URL 的会话烧掉批量脚本调用不会烧掉的配额"的原因。
由此得出两个最便宜的改进:
- 批量优于粘贴:有多个岗位时,
batch/batch-runner.sh复用一个 worker,而不是每个岗位重发一遍指令; - 单次评估不是风险,无界研究才是:一次评估过去可以扇出几十个 subagent、烧掉数千万 Token。现在 modes 已把网页研究限制在五次查询以内并禁止为它生成 subagent(这一护栏同时写在 modes/_shared.md 的 "Subagent delegation (cost guardrail)" 小节:subagent 是单程 worker,不得嵌套、不得调用开放式研究技能),评估因此保持有界。如果你自己写 mode,请保留这个上限——它是 $0.003 一次评估与耗尽五小时配额之间的差别。
第 4 步:定制 CV HTML(约 3,000 Token)
用 headless tailor 注入 JD 关键词、重排经历,为该岗位构建定制 HTML:
OPENAI_API_KEY="sk-or-your_openrouter_key" \
node openai-tailor.mjs \
--url https://openrouter.ai/api/v1 \
--model deepseek/deepseek-chat \
--jd ./jds/my-target-role.txt \
--report reports/001-companyname-2026-07-07.md
成本:约 3,000 Token(不到 $0.001),产出定制 HTML 到 output/ 目录。
第 5 步:生成 ATS 优化 PDF(0 Token)
有了定制 HTML,PDF 生成器用 Playwright 把它编译成定制简历 PDF:
node generate-pdf.mjs output/cv-candidate-companyname.html output/cv-candidate-companyname-2026-07-07.pdf --format=letter --report=001
成本:0 Token,$0.00。
把最重的环节(评估)路由到廉价的 OpenAI 兼容端点后,一个完整的求职申请周期从前沿模型上的 ~$0.05–$0.15 降到不到一分,从而可以负担得起地跑批量处理。
9. 零成本路径(无需 Claude / 付费 CLI)
career-ops 内置一条完全跑在免费模型上的流水线——不需要 Claude Code、不需要 Anthropic API key、不需要付费 CLI 订阅。以下内容在一次性 .env 配置后开箱即用。
路径 A:OpenRouter 免费模型(or:* 脚本)
不需要 Claude Code CLI——使用 OpenRouter 免费模型并自动回退。
npm 快捷命令(覆盖整条流水线):
npm run or:scan # 扫描门户获取新发布(Greenhouse API,0 token)
npm run or:pipeline # 处理 data/pipeline.md 中所有待处理 URL
npm run or:eval # 评估单个 offer(粘贴 URL 或文本)
npm run or:apply # 为某份报告生成申请问题草稿答案
(以上四个脚本名在 package.json 的 scripts 中均可确认。)
用法:
node openrouter-runner.mjs scan # 扫描 Greenhouse API 公司的新发布
node openrouter-runner.mjs evaluate <url> # 按 URL 评估一个岗位
node openrouter-runner.mjs evaluate # 交互式粘贴岗位文本
node openrouter-runner.mjs pipeline # 处理 pipeline.md 中所有待处理 URL
node openrouter-runner.mjs apply <report_no> # 生成申请表单草稿答案
node openrouter-runner.mjs models # 列出可用免费模型
node openrouter-runner.mjs help # 显示帮助
配置步骤:
1. copy .env.example .env
2. 在 .env 中加入 OPENROUTER_API_KEY=sk-or-v1-...
3. 到 OpenRouter 官网注册获取免费 API key
openrouter-runner.mjs 是约 900 行的独立运行器,封装了扫描、评估、流水线处理与申请草稿生成的完整命令面。
路径 B:Ollama 全本地(ollama:eval)
想要零网络调用与完全隐私,就把评估打到本地 Ollama 实例:
npm run ollama:eval
这会调用 ollama-eval.mjs 请求本地 Ollama 服务器——无 API key、无互联网、零成本。模型尺寸建议见第 6 节(可靠评分至少 32B)。
路径 C:任意 OpenAI 兼容端点(openai:eval)
指向任何实现 OpenAI chat-completions API 的端点——NVIDIA NIM(免费层)、Zhipu GLM、Together、Groq、LM Studio、llama.cpp、vLLM,甚至 Ollama 的 /v1 路由:
npm run openai:eval
通过 .env 配置:
OPENAI_BASE_URL=https://integrate.api.nvidia.com/v1 # 或任意兼容 base URL
OPENAI_MODEL=meta/llama-3.1-70b-instruct # 该端点上的模型名
OPENAI_API_KEY=your_provider_key_here # 部分免费端点也需要 key
运行 node openai-eval.mjs --help 查看各供应商的精确 URL 与模型名示例。
选哪条路径: 从路径 A 起步(一个环境变量,全流程覆盖);断网/纯本地场景用 B;已有自建推理端点用 C。
小结
career-ops 的成本结构可以拆成三层,每层都有对应的官方手段:
- 指令层(每次评估固定付出的系统提示)——用
spend_tier选档、用预筛选/triage 门跳过明显不匹配、用batch/batch-runner.sh批量复用 worker; - 推理层(模型单价)——模型无关设计允许你自由路由到 DeepSeek V3、OpenRouter 免费模型、Gemini 免费层或本地 Ollama,独立脚本 openai-eval.mjs / gemini-eval.mjs / ollama-eval.mjs 与
npm run or:*覆盖了扫描到申请草稿的完整流水线; - 执行层(速率限制与中断)——
--limit、--dry-run、--resume-paused、npm run scan -- --verify四件套控制烧钱速度并避免重跑浪费。
三者叠加,把完整评估从前沿模型上的几分钱压到美分以下,甚至归零——而不修改 career-ops 仓库里的任何一行代码。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0622
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00