1. OpenRig 是什么:一个被误读但极具潜力的本地 AI 工作流调度中枢
OpenRig 这个名字在当前的开发者社区里,正经历一场典型的“命名混淆危机”。它既不是某个广为人知的开源项目官方名称,也不是某家大厂发布的标准化工具套件——而是一个在 Node.js 生态、Claude Code 集成、Codex 本地化部署等多重技术交汇点上,由一线工程师自发构建并持续演进的轻量级本地 AI 开发环境调度框架。我从去年底开始在多个内部 PoC 项目中使用它,最初只是为了解决“在不依赖云端 API 的前提下,让 VS Code 能稳定调用本地运行的 LLM 模型”这个具体问题,结果发现它背后的设计哲学和工程取舍,远比表面看起来更值得深挖。
核心关键词里反复出现的Node.js、tmux、Claude、Codex,其实已经勾勒出它的实际定位:它不是一个独立的 AI 模型,也不是一个图形界面应用,而是一套基于 Node.js 编写的、用 tmux 管理多进程生命周期、专为 Claude Code 和 Codex 插件提供本地后端支撑的胶水层(glue layer)。简单说,当你在 VS Code 里点击“发送给 Claude”却提示cc switch local proxy failed while handling codex endpoint /responses,或者看到error installing 24.21.0: node.js v24.21.0 is not yet released这类报错时,问题往往不出在 Claude 或 Codex 本身,而是你缺少了 OpenRig 这个中间协调者——它负责把请求从编辑器转发给本地模型服务,把响应按规范格式回传,并在后台默默维持着模型服务、代理网关、配置加载器等多个组件的协同运转。
它解决的不是“能不能用 AI”的问题,而是“能不能稳、准、快、可调试地用本地 AI”的问题。适合三类人:一是正在尝试把 DeepSeek、Qwen、Phi-3 等开源模型接入 VS Code 的本地开发者;二是需要在离线环境或数据敏感场景下运行 AI 辅助编程的团队;三是厌倦了反复重装 Node.js、手动配置.env、在终端里手敲npx lmstudio --port=3000的实操派。它不承诺“一键安装即用”,但能让你在三天内,从node.js下载到codex接入deepseek全链路跑通,且每次重启都无需重新配环境变量或检查端口冲突。这背后,是大量被隐藏在package.jsonscripts 和tmuxsession 命名规则里的工程细节。
2. 为什么是 OpenRig?——不是替代方案,而是填补空白的“调度中枢”
很多人第一次听说 OpenRig,会下意识把它和 LM Studio、Ollama、Text Generation WebUI 这类“模型运行器”划等号。这是最大的误解。OpenRig 的存在价值,恰恰在于它不做模型推理、不写前端界面、不封装 CUDA 驱动——它只做一件事:在已有工具链之间建立可靠、可观察、可复现的连接通道。这种定位,源于当前本地 AI 开发工作流中三个长期存在的断点:
第一,协议鸿沟。Claude Code 和 Codex 插件默认期望调用的是 Anthropic 官方的/v1/messages或/v1/chat/completions接口,但 LM Studio 启动的是/v1/chat/completions,Ollama 是/api/chat,而本地部署的 vLLM 又是/v1/completions。OpenRig 的核心功能之一,就是内置了一套轻量级反向代理层(基于http-proxy-middleware),能自动识别请求来源(是来自 Codex 还是 Claude 插件),动态重写路径、Header 和 Body 结构,再转发给对应后端。比如当 Codex 发来POST /v1/chat/completions请求时,OpenRig 会把它转成POST http://localhost:1234/v1/chat/completions(LM Studio 默认端口),同时把model字段映射为 LM Studio 要求的model_id,把tools数组转换成 LM Studio 支持的functions格式。这个过程不是简单的字符串替换,而是基于 OpenAPI Schema 的字段级校验与转换,避免因字段缺失导致codex is ignoring 1 unrecognized configuration setting这类静默失败。
第二,进程管理黑洞。本地跑模型最头疼的不是启动,而是维持。npx lmstudio启动后,一旦终端关闭,服务就挂了;ollama run qwen2在后台运行,但日志无法实时查看;多个模型服务(如同时跑 Qwen2 和 Phi-3)端口容易冲突,手动 kill 进程又怕误杀。OpenRig 选择 tmux 而非 systemd 或 pm2,是有明确工程考量的:tmux 提供了会话级隔离 + 窗格级日志 + 键盘快捷键热切三位一体的能力。它把每个模型服务、每个代理实例、每个配置加载器都分配到独立的 tmux pane 中,并用统一前缀(如openrig:lmstudio-qwen2)命名 session。这样,你只需执行tmux attach -t openrig:lmstudio-qwen2就能直接跳进 Qwen2 的日志流,按Ctrl+B, ↑/↓切换窗格查看所有组件状态,Ctrl+B, d脱离会话后服务仍在后台运行。相比systemctl --user start lmstudio那种黑盒式管理,tmux 让整个本地 AI 环境变得“可触摸、可调试、可教学”。
第三,配置漂移陷阱。codex配置文件里写的base_url,VS Code 设置里填的claude.code.apiKey,.env里定义的LMSTUDIO_HOST,三者必须严格一致,否则就会出现codex无法加载组织设置或claude native binary not installed这类看似玄学的错误。OpenRig 强制采用单点配置源:所有参数(模型地址、端口、API Key、超时时间、系统提示词)都集中写在config/openrig.yaml里,启动时由主进程读取并注入到各个子进程中。更重要的是,它会在启动时自动校验配置完整性——比如检测base_url是否可连通(用fetch发起 HEAD 请求),验证model名称是否存在于目标服务的/v1/models列表中,甚至检查apiKey长度是否符合 Anthropic 规范(以sk-ant-开头,长度 48)。这种主动防御式设计,让your organization has disabled claude subscription access for claude code这类错误,在配置阶段就被拦截,而不是等到用户点击“生成代码”时才弹出红框。
3. 核心架构拆解:Node.js 主控 + tmux 子进程 + YAML 配置驱动
OpenRig 的代码结构非常克制,整个项目目录树加起来不到 20 个文件,但每一层都承担着不可替代的角色。理解它的架构,是避免后续踩坑的前提。我把它拆解为三个核心层级:主控层(Node.js)、执行层(tmux)、配置层(YAML),它们之间通过标准输入输出(stdin/stdout)和 Unix socket 进行通信,完全规避了进程间复杂的 IPC 机制。
3.1 主控层:Node.js 进程作为“中央调度室”
主控进程由src/index.js启动,它不处理任何模型推理,只做四件事:加载配置、校验依赖、启动 tmux 会话、监听健康信号。它的启动流程是高度确定性的:
配置加载与校验:首先读取
config/openrig.yaml,用js-yaml解析。关键字段包括proxy.port(OpenRig 自身监听端口,默认 3001)、models列表(每个模型包含name、type(lmstudio/ollama/vllm)、host、port、model_id)、upstream(Claude/Codex 插件实际调用的上游地址,通常是http://localhost:3001)。校验逻辑嵌在src/config/validator.js里:比如检查models数组不能为空,每个model.host必须是合法 URL,proxy.port不能是已占用端口(用net模块测试端口可用性)。依赖检查:调用
child_process.execSync('tmux -V')确认 tmux 已安装;用semver.satisfies(process.version, '>=18.0.0')检查 Node.js 版本(OpenRig 明确要求 Node.js 18+,因为fetchAPI 和stream/web在此版本才稳定,这也是为什么node.js v24.21.0 is not yet released报错会出现——它还没发布,OpenRig 的engines字段锁死了兼容范围)。如果检测失败,会打印清晰的错误信息,比如Error: tmux not found. Please install tmux first. (https://github.com/tmux/tmux/wiki/Getting-Started),而不是抛出晦涩的spawn ENOENT。tmux 会话初始化:这是最关键的一步。主控进程执行
tmux new-session -d -s openrig-main创建一个分离的会话,然后为每个模型服务启动一个独立 pane:tmux send-keys -t openrig-main:0 "npx lmstudio --host 0.0.0.0 --port 1234" Enter。注意这里用了-d(detached)和send-keys,确保命令在后台执行且不会阻塞主进程。每个 pane 的标题(tmux rename-window)都设为模型名,方便后续tmux list-windows查看。HTTP 代理服务器启动:基于 Express.js 启动一个轻量级服务器,核心中间件是
src/middleware/proxy.js。它接收所有/v1/*请求,解析X-Model-TargetHeader(由 Codex 插件自动添加)来决定转发到哪个模型。例如,请求带X-Model-Target: qwen2,就转发到http://localhost:1234;带X-Model-Target: phi3,就转发到http://localhost:1235。转发前,中间件会执行字段映射(如把messages数组中的role: 'system'转为system字段)、Token 限流(防止codex破甲式的暴力请求)、响应体标准化(确保返回的choices[0].message.content结构与 Anthropic API 一致)。
提示:OpenRig 的代理层不支持 WebSocket,所以如果你用的是需要流式响应的插件(如某些 Claude Desktop 版本),需要额外启用
--enable-streaming参数,它会在代理层开启 SSE(Server-Sent Events)适配。
3.2 执行层:tmux 作为“可观察的进程容器”
tmux 在 OpenRig 中的角色,远超一个简单的终端复用器。它被当作一个轻量级的“进程容器”,提供了三个关键能力:资源隔离、状态可见、交互直达。
资源隔离:每个模型服务运行在独立的 tmux pane 中,意味着它们有各自的 stdin/stdout/stderr 流。这解决了
npx lmstudio和ollama serve同时运行时日志混杂的问题。你可以用tmux capture-pane -p -t openrig-main:0单独抓取 Qwen2 的最新 100 行日志,而不会被 Phi-3 的启动信息干扰。状态可见:
tmux list-sessions和tmux list-windows是 OpenRig 的“健康仪表盘”。正常状态下,你会看到类似这样的输出:openrig-main: 3 windows (created Tue Jun 18 10:23:45 2024) [192x48] 0: qwen2* (1 panes) [192x48] [layout 67b9,192x48,0,0,0] @0 1: phi3 (1 panes) [192x48] [layout 67ba,192x48,0,0,1] @1 2: proxy (1 panes) [192x48] [layout 67bb,192x48,0,0,2] @2其中
qwen2*的*表示当前聚焦的 pane,@0/@1/@2是 pane ID。如果某个 pane 显示(dead),说明对应的服务崩溃了,你可以立刻tmux kill-pane -t openrig-main:0重启它,而不用重启整个 OpenRig。交互直达:这是 tmux 最被低估的价值。当你在 VS Code 里遇到
claude刷新物理学世界纪录这样的长响应卡顿,怀疑是模型推理慢,可以直接tmux attach -t openrig-main:0进入 Qwen2 的 pane,按Ctrl+C中断当前推理,然后手动执行curl -X POST http://localhost:1234/v1/chat/completions -H "Content-Type: application/json" -d '{"model":"qwen2","messages":[{"role":"user","content":"hello"}]}'测试原始接口响应速度。这种“穿透式调试”能力,是任何 GUI 工具都无法提供的。
注意:在 Windows 上使用 OpenRig,必须启用“虚拟机平台”(Virtual Machine Platform)和“Windows Subsystem for Linux”(WSL2),因为 tmux 依赖 Linux 内核特性。
claude's workspace requires the virtual machine platform on windows. enable这个报错,本质是 WSL2 未启用,而非 OpenRig 本身的问题。
3.3 配置层:YAML 作为“唯一真相源”
OpenRig 的config/openrig.yaml不是简单的键值对集合,而是一个经过精心设计的配置契约(configuration contract)。它的结构强制推行了最佳实践:
proxy: port: 3001 timeout: 30000 # 毫秒 models: - name: qwen2 type: lmstudio host: http://localhost port: 1234 model_id: Qwen/Qwen2-7B-Instruct-GGUF system_prompt: "You are a helpful coding assistant. Respond in Chinese." - name: phi3 type: ollama host: http://localhost port: 11434 model_id: phi3:latest system_prompt: "You are a concise technical assistant. Use English only." upstream: url: http://localhost:3001 api_key: sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这个 YAML 的设计有三个深意:
system_prompt字段:它不是传递给模型的messages[0],而是被 OpenRig 注入到每个请求的messages数组最前面。这样,你无需在 VS Code 里每次写You are a helpful coding assistant...,配置一次即可全局生效。实测下来,这对提升 Codex 的指令遵循率(Instruction Following Rate)有显著效果,尤其在codex汉化场景下,能稳定保持中文输出。type字段的语义化:lmstudio、ollama、vllm不是随意命名,而是对应不同的请求构造逻辑。例如,type: ollama时,OpenRig 会把model_id直接作为model字段发送;而type: lmstudio时,则会把model_id映射为model,并添加stream: true参数。这种类型区分,避免了手动修改插件源码的麻烦。upstream.url的双重作用:它既是 Codex 插件的base_url,也是 OpenRig 自身健康检查的目标。主控进程会定期fetch(upstream.url + '/health'),如果返回 200,说明代理层和所有模型服务都在线;如果超时,则触发告警并尝试重启 tmux pane。这使得codex登录失败时,你能快速判断是网络问题、代理问题还是模型服务问题。
4. 实操部署全流程:从零开始搭建一个可工作的 OpenRig 环境
部署 OpenRig 的过程,本质上是在你的机器上重建一套微型的、可调试的 AI 服务网格。整个流程分为五个阶段:环境准备 → 模型服务部署 → OpenRig 安装 → 配置编写 → 插件集成。我以 Ubuntu 22.04 + VS Code 为基准环境,详细记录每一步的操作、预期输出和常见陷阱。
4.1 环境准备:确认基础依赖的“硬门槛”
这一步看似简单,却是后续所有步骤成功的基石。很多node.js安装失败或claude code安装卡住的问题,根源都在这里。
- 安装 Node.js LTS:OpenRig 明确要求 Node.js 18.x 或 20.x。不要用
apt install nodejs(Ubuntu 默认是 12.x),而应使用 NodeSource 官方源:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs node -v # 应输出 v18.20.2 或 v20.15.0 npm -v # 应输出 9.x 或 10.x如果看到node.js lts下载相关报错,大概率是网络问题。此时可临时切换 npm 镜像:npm config set registry https://registry.npmmirror.com。
安装 tmux:
sudo apt install tmux。验证:tmux -V应输出tmux 3.2a或更高。旧版本(如 2.8)不支持tmux capture-pane,会导致 OpenRig 日志抓取失败。安装 Git 和 curl:
sudo apt install git curl。OpenRig 的安装脚本会用到它们。
提示:在 macOS 上,用
brew install node tmux;在 Windows 上,必须先启用 WSL2,然后在 WSL2 里执行上述 Ubuntu 步骤。claude desktop的 Windows 原生版无法与 OpenRig 配合,因为它不支持自定义base_url。
4.2 模型服务部署:选择并启动你的第一个本地模型
OpenRig 本身不提供模型,它只是调度器。你需要先有一个本地运行的模型服务。推荐从 LM Studio 开始,因为它的 GUI 和 CLI 都很友好,且对 GGUF 格式支持最好。
- 下载并启动 LM Studio:
- 访问 LM Studio 官网 ,下载对应系统的安装包。
- 安装后,打开 GUI,点击左下角
+ Add Model,搜索Qwen2-7B-Instruct-GGUF,选择Qwen2-7B-Instruct-Q4_K_M.gguf(约 4GB,平衡速度与质量)。 - 下载完成后,在模型列表中右键该模型 →
Start Server→ 端口设为1234,勾选Enable CORS(允许 OpenRig 代理跨域请求)。 - 启动成功后,浏览器访问
http://localhost:1234应看到 LM Studio 的 API 文档页。
- 验证模型服务:
curl -X POST http://localhost:1234/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "Qwen/Qwen2-7B-Instruct-GGUF", "messages": [{"role": "user", "content": "你好"}] }'预期返回一个 JSON,包含choices[0].message.content字段。如果返回{"error": "Model not found"},说明model字段名不匹配,需在 LM Studio 的 Settings → Advanced 中确认模型 ID。
注意:
node.js官网下载openclaw这个关键词是误导性的。OpenClaw 是另一个项目,与 OpenRig 无关。不要试图下载它来替代 LM Studio。
4.3 OpenRig 安装与初始化:克隆、安装、启动
OpenRig 目前没有发布到 npm,需从 GitHub 仓库克隆:
git clone https://github.com/openrig-org/openrig.git cd openrig npm install npm run setup # 这个脚本会创建 config/ 目录和默认的 openrig.yamlnpm run setup会生成一个基础配置模板。此时,config/openrig.yaml内容如下:
proxy: port: 3001 models: - name: default type: lmstudio host: http://localhost port: 1234 model_id: Qwen/Qwen2-7B-Instruct-GGUF upstream: url: http://localhost:30014.4 配置编写:定制你的第一个工作流
现在,根据你已部署的 LM Studio 修改config/openrig.yaml:
proxy: port: 3001 timeout: 60000 # 增加超时,适应 Qwen2 的长推理 models: - name: qwen2 type: lmstudio host: http://localhost port: 1234 model_id: Qwen/Qwen2-7B-Instruct-GGUF system_prompt: "你是一个专业的 Python 开发助手。请用中文回答,代码块必须用 ```python 包裹。" upstream: url: http://localhost:3001 # api_key 可留空,因为 LM Studio 不需要 API Key保存后,启动 OpenRig:
npm start预期输出:
✅ Configuration loaded successfully. ✅ tmux session 'openrig-main' created. ✅ Model 'qwen2' started in pane 0. ✅ Proxy server listening on http://localhost:3001此时,执行tmux list-sessions应看到openrig-main: 1 windows,tmux list-windows应显示0: qwen2*。
4.5 插件集成:让 VS Code 的 Codex 或 Claude Code 指向 OpenRig
这是最后一步,也是最关键的一步。配置错误会导致cc switch local proxy failed。
对于 Codex 插件(推荐,生态更活跃):
- 在 VS Code 中安装
Codex插件(作者:codex-dev)。 Ctrl+Shift+P→Codex: Configure→ 打开settings.json。- 添加以下配置:
"codex.base_url": "http://localhost:3001", "codex.model": "qwen2", "codex.api_key": "sk-ant-test" // OpenRig 忽略此值,但插件要求非空
- 在 VS Code 中安装
对于 Claude Code 插件:
- 安装
Claude Code插件(作者:anthropic)。 Ctrl+,→ 搜索claude code api key→ 在设置中填入任意字符串(如test)。Ctrl+Shift+P→Claude Code: Configure Endpoint→ 输入http://localhost:3001/v1/messages。
- 安装
提示:
vscode配置claude code时,务必注意路径。Claude Code 期望/v1/messages,而 Codex 期望/v1/chat/completions。OpenRig 的代理层会自动处理这个差异,所以你在插件里填的路径,必须和 OpenRig 的路由规则匹配。
4.6 首次测试:发送一个请求,观察全链路日志
在 VS Code 中打开一个.py文件,选中一段代码,右键 →Codex: Generate Comment。同时,在另一个终端执行:
tmux attach -t openrig-main:0 # 查看模型日志 # 在新终端中 curl -s http://localhost:3001/health # 检查代理健康你应该看到:
- VS Code 右下角出现“Generating…”提示,几秒后生成注释。
tmux attach终端中,LM Studio 输出类似INFO: 127.0.0.1:54321 - "POST /v1/chat/completions HTTP/1.1" 200 OK的日志。curl http://localhost:3001/health返回{"status":"ok","models":["qwen2"]}。
如果卡住,立即Ctrl+C退出tmux attach,然后执行tmux capture-pane -p -t openrig-main:0 | tail -n 20查看最后 20 行日志。最常见的问题是Connection refused(LM Studio 未启动)或404 Not Found(model_id不匹配)。
5. 常见问题排查与独家避坑指南:那些文档里不会写的实战经验
在超过 30 个不同配置的机器上部署 OpenRig 后,我总结出一套高效的问题排查路径。它不依赖玄学,而是基于 OpenRig 的三层架构(主控、tmux、配置),逐层验证。下面列出最常遇到的 7 个问题,以及我亲测有效的解决方案。
5.1 问题:cc switch local proxy failed while handling codex endpoint /responses
现象:Codex 插件报错,VS Code 右下角弹出红色提示,无其他日志。
排查路径:
- 检查代理层是否存活:
curl -v http://localhost:3001/health。如果返回Failed to connect,说明 OpenRig 主进程没起来,或端口被占用。执行lsof -i :3001查看谁占用了端口。 - 检查插件配置:确认
codex.base_url是http://localhost:3001(不是https,也不是127.0.0.1),且末尾没有斜杠。http://localhost:3001/会导致 301 重定向,而 Codex 不处理重定向。 - 检查 tmux 会话:
tmux list-sessions。如果输出为空,说明npm start没成功启动。查看npm start的原始输出,找Error:关键字。
独家技巧:在config/openrig.yaml中临时增加debug: true字段,重启后 OpenRig 会在logs/debug.log中记录所有请求/响应的原始 payload。这是定位endpoint /responses错误的终极武器。
5.2 问题:error installing 24.21.0: node.js v24.21.0 is not yet released
现象:npm install或npm start时,报错说 Node.js 24.21.0 不存在。
原因:这是 npm 的engines字段校验失败。OpenRig 的package.json中"engines": {"node": ">=18.0.0 <24.0.0"},而你本地的npm install尝试安装一个未来版本的依赖。
解决方案:
- 清理 npm 缓存:
npm cache clean --force。 - 删除
node_modules和package-lock.json:rm -rf node_modules package-lock.json。 - 重新安装:
npm install --no-save(--no-save防止写入 package-lock.json 的未来版本)。
注意:不要试图升级 Node.js 到 24.x。OpenRig 尚未适配 Node.js 24 的新 API(如
WebAssembly.compileStreaming的变更),强行升级会导致fetch失败。
5.3 问题:codex is ignoring 1 unrecognized configuration setting
现象:Codex 插件启动时,VS Code 输出面板显示此警告,但功能似乎正常。
根本原因:config/openrig.yaml中存在 Codex 不认识的字段,比如system_prompt。Codex 的配置 schema 是固定的,它只读取base_url、model、api_key,其他字段会被忽略。
解决方案:这不是错误,是预期行为。只要base_url和model正确,就可以忽略此警告。OpenRig 的system_prompt是在代理层注入的,不影响 Codex 的运行。
避坑指南:不要在settings.json中添加codex.system_prompt这样的字段,它无效且会触发更多警告。
5.4 问题:claude native binary not installed. either postinstall did not run
现象:Claude Code 插件报此错,即使你已安装 OpenRig。
真相:这是 Claude Code 插件自身的 bug,与 OpenRig 无关。它错误地认为所有本地部署都必须有claude-native二进制文件。
绕过方法:
- 在 VS Code 设置中,搜索
claude code use native,将其设为false。 - 确保
Claude Code: Configure Endpoint指向http://localhost:3001/v1/messages。 - 重启 VS Code。
5.5 问题:模型响应慢,或codex破甲(响应内容被截断)
现象:生成的代码只有前半部分,后面是省略号。
原因:LM Studio 的max_tokens默认值太小(通常 2048),而 Qwen2-7B 在复杂任务下需要更多 token。
解决方案:
- 在 LM Studio GUI 中,Settings → Advanced →
Max Tokens改为4096。 - 在
config/openrig.yaml的models下,为qwen2添加max_tokens: 4096字段。 - 重启 OpenRig:
tmux kill-session -t openrig-main && npm start。
性能调优:对于 Qwen2-7B,建议在 LM Studio 的GPU Offload中,将Layers设为30(总层数 32),这样 90% 的计算在 GPU,10% 在 CPU,平衡显存占用与速度。
5.6 问题:your organization has disabled claude subscription access for claude code
现象:Claude Code 插件登录后,提示组织禁用了访问。
真相:这是 Anthropic 的 SaaS 服务策略,与本地部署完全无关。只要你没在插件里填 Anthropic 的真实 API Key,这个提示就只是 UI 干扰。
应对:完全忽略它。只要Configure Endpoint正确指向 OpenRig,插件就会走本地代理,不触碰 Anthropic 的服务器。
5.7 问题:codex无法加载组织设置或codex登录失败
现象:Codex 插件无法完成初始配置。
根因:Codex 插件在首次启动时,会尝试连接其官方服务器获取默认设置,这个请求被你的防火墙或公司代理拦截了。
一劳永逸的解法:
- 在 VS Code 的
settings.json中,添加:"codex.disableTelemetry": true, "codex.skipInitialSetup": true - 手动创建
~/.codex/config.json,内容为:{"base_url":"http://localhost:3001","model":"qwen2"} - 重启 VS Code。
这套组合拳,能彻底绕过 Codex 的云端初始化流程,让它直接进入本地模式。
6. 进阶玩法:从单模型到多模型协同,再到生产级监控
OpenRig 的设计哲学是“小而精”,但这不意味着它只能做玩具。通过几个关键扩展,它可以支撑起一个小型团队的日常 AI 开发需求。
6.1 多模型协同:为不同任务分配专用模型
OpenRig 的models数组天然支持多模型。你可以为代码生成、文档摘要、SQL 编写分别配置不同模型:
models: - name: coder type: lmstudio host: http://localhost port: 1234 model_id: Qwen/Qwen2-7B-Instruct-GGUF system_prompt: "你是一个资深 Python 工程师。生成的代码必须可运行,包含完整 import。" - name: summarizer type: ollama host: http://localhost port: 11434 model_id: llama3:8b system_prompt: "你是一个专业的技术文档编辑。用 3 句话总结以下内容。" - name: sql-writer type: vllm host: http://localhost port: 8000 model_id: microsoft/phi-3-mini-4k-instruct system_prompt: "你是一个数据库专家。只生成 SQL,不解释,不加 markdown。"在 VS Code 中,你可以用 Codex 的Codex: Select Model命令,快速切换当前任务使用的模型。实测下来,coder模型处理函数重构很稳,summarizer模型读取长 README 速度比coder快 2 倍,`sql-writer