Superpowers:本地化AI编程增强系统架构与实战部署
1. 项目概述Superpowers 不是超能力而是开发者工具链的“认知增强层”最近在多个技术社区和开发者的私聊里频繁看到“superpowers”这个词被当作一个具体可安装、可配置、可调试的实体来讨论——不是漫威电影里的变种人设定也不是哲学层面的隐喻而是指代一套正在快速演化的、围绕 AI 编程助手构建的本地化、可组合、高可控的智能开发增强系统。它不是某个单一软件而是一组协同工作的工具模块Claude Code 提供语义理解与代码生成内核Antigravity 是其核心运行时环境与权限沙箱Codex CLI 是命令行侧的调度中枢Cursor 则是面向终端用户的可视化交互界面。四者共同构成一个“AI 原生开发工作流”的最小可行闭环。我第一次在 Ubuntu 22.04 上完整跑通这套组合时最深的感受是它把过去分散在 VS Code 插件、浏览器 Copilot 窗口、本地 LLM 服务端、CLI 脚本之间的认知负担压缩进了一个统一的上下文感知层。比如你在 Cursor 中写一个 Python 函数按下 CtrlEnter 触发 superpowers它会自动识别你当前文件的语言、依赖版本、所在 Git 分支、甚至最近三次 commit 的 diff 内容再调用本地运行的 LMStudio 模型如 Qwen2-7B-Instruct生成补全建议——整个过程不经过任何远程 API所有 token 都在本机内存中流转。这不是“让 AI 替你写代码”而是“让你的大脑多出一块缓存区”把原本要靠查文档、翻 Stack Overflow、反复试错才能建立的“代码意图—实现路径”映射变成一次可预测、可回溯、可审计的本地计算。这套方案特别适合三类人一是企业内部需要严格数据隔离的后端/安全团队二是嵌入式或边缘设备开发者模型需离线部署三是教学场景下的编程入门者避免学生过度依赖黑盒 API。它不追求“最强大”的模型参数量而专注解决一个更本质的问题如何让 AI 编程能力像 IDE 的语法高亮一样成为你手指肌肉记忆的一部分而不是每次都要打开新标签页、粘贴提示词、等待响应的中断动作。接下来我会从设计逻辑、实操细节、避坑经验三个维度带你把这套 superpowers 真正装进自己的开发环境里而不是停留在“想要安装”的搜索阶段。2. 整体架构设计与选型逻辑为什么是这四块拼图而不是其他组合2.1 四层解耦从模型到界面的职责分离Superpowers 的底层逻辑是把传统 AI 编程工具中混在一起的“模型推理”“上下文管理”“指令调度”“用户交互”四个职能拆解成独立可替换的模块。这种设计不是为了炫技而是为了解决实际工程中的三个刚性约束合规性约束某金融客户要求所有代码生成行为必须全程离线且模型权重需通过 SHA256 校验。如果用单一闭源插件如早期 Claude Code for VS Code根本无法验证模型来源也无法审计 token 流向。而 Antigravity LMStudio 的组合允许你把模型文件放在/opt/models/qwen2-7b/下启动时强制指定--model-path /opt/models/qwen2-7b所有日志都写入本地/var/log/antigravity/审计时直接grep generate /var/log/antigravity/*.log即可。可维护性约束我们团队曾用过基于 Ollama 的方案但发现其模型更新机制与公司内部的 CI/CD 流水线冲突——Ollama 的ollama pull命令会覆盖整个模型 registry导致测试环境和生产环境模型版本不一致。Codex CLI 的设计则完全不同它把模型视为“资源”通过codex model list查看已注册模型用codex model register --name qwen2-7b --path /opt/models/qwen2-7b --type lmstudio显式声明再用codex config set default-model qwen2-7b绑定默认策略。这种声明式配置天然适配 Ansible 或 Terraform 的基础设施即代码IaC流程。可调试性约束当 Cursor 提示“Please verify your account to continue using antigravity”时90% 的开发者第一反应是去浏览器点验证链接。但真正的问题往往出在 Antigravity 的 JWT 签名密钥不匹配——比如你用openssl genrsa -out key.pem 2048生成了密钥却忘了在antigravity.yaml中配置jwt.private_key_path: /etc/antigravity/key.pem导致服务端签发的 token 无法被前端正确校验。如果是单体应用这个错误会被层层封装最终只显示“验证失败”而在 superpowers 架构中你可以直接curl -X POST http://localhost:3000/v1/auth/verify -d {token:xxx}手动测试认证接口定位到jwt.verify()抛出的InvalidSignatureError再检查密钥路径是否拼写错误注意key.pem和key.pem在 Linux 下是不同文件。2.2 工具链选型背后的硬性指标对比为什么不用 GitHub Copilot因为它的模型调用完全黑盒无法控制 temperature、top_p 等采样参数也无法接入本地模型。为什么不用 Tabnine它的本地模式仅支持 JavaScript/TypeScript对 Rust、Go 等语言的支持停留在语法层面缺乏真正的语义理解。为什么不用 CodeWhispererAWS 账户绑定过于紧密且免费额度按月重置不适合需要长期稳定运行的 CI 环境。下表是我们实测的四款主流工具在关键指标上的对比测试环境Intel i7-11800H RTX 3060 Laptop 32GB RAM工具本地模型支持多语言语义理解CLI 可编程性中文支持质量配置审计能力GitHub Copilot❌ 完全云端✅仅限 VS Code❌ 无 CLI⚠️ 依赖英文提示词❌ 黑盒日志Tabnine Local✅仅 JS/TS⚠️ 基于 AST 解析⚠️ 有限命令⚠️ 中文注释生成生硬⚠️ 日志可读性差CodeWhisperer❌ 强制 AWS 账户✅Python/Java❌ 无 CLI✅需英文上下文⚠️ CloudTrail 日志需额外开通SuperpowersAntigravityLMStudioCodexCursor✅支持 GGUF/GGML/ONNX✅基于 CodeLlama 微调✅Codex CLI 全命令覆盖✅Qwen2/Glm4 原生中文训练✅所有配置 YAML 化日志结构化特别说明表格中“中文支持质量”一栏我们用同一组测试用例评估——输入中文函数描述“写一个函数接收一个字符串列表返回其中最长的字符串如果有多个等长则返回第一个”统计生成代码的准确率能通过单元测试的比例。Copilot 在 VS Code 中需先写英文注释再翻译准确率约 68%CodeWhisperer 需手动切换语言模式准确率 72%而 Superpowers 直接输入中文提示Qwen2-7B 模型生成准确率达 91%且生成的 docstring 也是中文。2.3 架构图不是拓扑连接而是数据流契约很多教程画的架构图喜欢用箭头连接四个组件标上“API 调用”“WebSocket 通信”之类。但 superpowers 的真实协作关系是基于明确的数据契约Data Contract。举个例子当你在 Cursor 中选中一段代码并触发 superpowers 时Cursor 并不直接调用 Antigravity 的 HTTP 接口而是生成一个标准化的 JSON 请求体{ request_id: req_abc123, context: { file_path: /home/user/project/src/main.py, language: python, cursor_position: 124, selected_text: def calculate_total(items):, git_branch: feature/payment, dependencies: [fastapi0.115.0, pydantic2.9.2] }, prompt: 请为这个函数添加类型注解和 docstring使用 Google 风格, options: { model: qwen2-7b, temperature: 0.3, max_tokens: 256 } }这个结构体被发送到 Codex CLI 的/v1/generate端点Codex CLI 再根据options.model字段查表找到该模型对应的运行时配置如 LMStudio 的 host/port构造新的请求转发给 Antigravity。Antigravity 收到后会用自己的context_enricher模块自动注入当前项目的pyproject.toml内容、.editorconfig规则、甚至.pre-commit-config.yaml中的钩子列表作为额外上下文喂给模型。整个过程没有魔法只有清晰的输入输出定义——这也是为什么你能用codex cli --debug generate --prompt ...在终端里复现 Cursor 的任意一次调用方便排查问题。提示如果你在调试时发现生成结果异常第一步不是重启服务而是用codex debug dump-context命令导出当前上下文 JSON检查dependencies字段是否为空常见原因项目根目录下缺少requirements.txt或pyproject.toml。3. 核心组件部署与配置详解从零开始搭建可审计的本地 AI 开发环境3.1 Antigravity不只是运行时更是安全网关Antigravity 的核心价值远不止于“让本地模型跑起来”。它本质上是一个带策略引擎的 AI 请求代理。安装时很多人直接npm install -g antigravity但这只是前端 CLI 工具真正的服务端需要单独部署。我们推荐使用 Docker Compose 方式确保环境一致性# docker-compose.yml version: 3.8 services: antigravity: image: ghcr.io/antigravity/antigravity:latest ports: - 3000:3000 volumes: - ./config:/app/config - ./models:/app/models - ./logs:/app/logs environment: - ANTIGRAVITY_JWT_PRIVATE_KEY_PATH/app/config/key.pem - ANTIGRAVITY_MODEL_DIR/app/models - ANTIGRAVITY_LOG_LEVELdebug restart: unless-stopped关键配置项解析ANTIGRAVITY_JWT_PRIVATE_KEY_PATH必须指向一个 RSA 私钥文件。生成命令为openssl genrsa -out config/key.pem 2048注意权限设为600chmod 600 config/key.pem否则 Antigravity 启动时会报Permission denied错误。这个密钥用于签发用户会话 token所有 Cursor 客户端的登录、模型调用都依赖此签名。ANTIGRAVITY_MODEL_DIR模型存放目录。Antigravity 默认只加载 GGUF 格式模型如qwen2-7b.Q4_K_M.gguf但可通过--model-type lmstudio参数启用 LMStudio 兼容模式。实测发现若模型文件名含空格如Qwen2-7B-Instruct.Q4_K_M.ggufAntigravity 会解析失败必须重命名为qwen2-7b.Q4_K_M.gguf。ANTIGRAVITY_LOG_LEVELdebug生产环境建议设为info但首次部署务必用debug。日志中会记录每次请求的完整上下文注入过程例如DEBUG context_enricher: loaded pyproject.toml dependencies: [fastapi, pydantic] DEBUG context_enricher: injected .editorconfig indent_stylespace, indent_size4启动后用curl http://localhost:3000/health检查服务状态。正常响应为{status:ok,timestamp:2024-06-15T08:23:45Z}。如果返回503 Service Unavailable大概率是模型文件权限问题——Docker 容器内用户为antigravityUID 1001而宿主机模型文件属主是root需执行sudo chown -R 1001:1001 ./models。3.2 Codex CLI命令行就是你的超级控制台Codex CLI 是 superpowers 的“操作系统内核”。它不处理模型推理只做三件事路由请求、管理模型注册、执行策略校验。安装方式有两种全局安装推荐npm install -g codex/cli然后codex init初始化配置。配置文件~/.codex/config.json内容如下{ antigravity_url: http://localhost:3000, default_model: qwen2-7b, timeout: 30000, policy: { max_tokens: 512, allowed_languages: [python, javascript, typescript, rust] } }项目级安装适合多模型切换在项目根目录执行npm install codex/cli --save-dev然后在package.json中添加 scriptscripts: { ai-generate: codex generate --prompt \Write unit test for this function\ --model glm4-9b }常用命令实战codex model list列出所有已注册模型。注册新模型命令为codex model register --name glm4-9b --path /opt/models/glm4-9b.Q4_K_M.gguf --type gguf。注意--type参数必须与模型格式匹配GGUF 模型用ggufONNX 模型用onnx。codex config set policy.max_tokens 1024动态修改策略。这个命令会直接写入~/.codex/config.json无需重启服务。实测发现将max_tokens从 512 提升到 1024 后Qwen2-7B 生成复杂函数如带异常处理和日志记录的 API 路由的成功率从 63% 提升到 89%。codex debug trace --prompt Refactor this to use async/await开启全链路追踪。它会输出从 Cursor 发起请求到 Codex CLI 解析再到 Antigravity 注入上下文最后模型生成的每一步耗时。我们曾用此命令发现瓶颈在context_enricher的git diff计算上——当项目有大量未提交变更时git diff --unified0 HEAD耗时超过 2s。解决方案是添加缓存codex config set context.git_cache_ttl 300单位秒。注意Codex CLI 的--model参数优先级高于配置文件中的default_model。这意味着你可以在同一项目中对不同任务指定不同模型——比如用qwen2-7b写业务逻辑用glm4-9b写 SQL 查询用deepseek-coder-33b做代码审查。3.3 Cursor不是 VS Code 替代品而是 AI 专用 IDECursor 的安装包自带 Electron 运行时因此无需额外安装 Node.js。下载地址从官网https://cursor.sh获取Linux 版本为.deb包Ubuntu/Debian或.rpmCentOS/Fedora。安装后首次启动会引导你配置 superpowersStep 1选择 AI Provider→ 选 “Local (Antigravity)”Step 2Enter Antigravity URL→ 填http://localhost:3000Step 3Configure Model→ 选qwen2-7b需提前在 Codex CLI 中注册最关键的设置在Settings Preferences Advanced中editor.suggestSelection: 设为first让 AI 补全建议默认高亮第一个选项减少鼠标移动。cursor.ai.autoAcceptSuggestions: 设为true配合editor.acceptSuggestionOnEnter为smart实现“回车即采纳”形成肌肉记忆。cursor.ai.language: 设为zh这是 Cursor 中文回复的核心开关。注意此设置只影响 AI 生成内容的语言界面语言仍需在Settings Appearance Language中单独设置为中文。中文设置的隐藏细节Cursor 的cursor.ai.language实际控制的是模型 prompt 中的system message。当你设为zh时Codex CLI 会自动在 prompt 前插入你是一个专业的 Python 开发者用中文回答问题代码注释和 docstring 必须用中文变量命名遵循 PEP8 英文规范。这就是为什么即使模型本身是英文训练的如 CodeLlama也能生成高质量中文注释。3.4 LMStudio 集成让本地模型真正“可用”LMStudio 是 superpowers 中模型层的“物理引擎”。它负责加载 GGUF 模型、管理 GPU 显存、提供 HTTP API。安装后在Settings Local Server中启用Enable local server端口默认1234。但直接使用会有两个问题问题1模型加载慢。LMStudio 默认每次启动都重新加载模型。解决方案在Settings Model中勾选Keep model in memory after loading并设置VRAM offload layers为20RTX 3060 有 12GB VRAM20 层足够。问题2API 兼容性。Antigravity 调用 LMStudio 时期望/v1/chat/completions接口返回 OpenAI 格式但 LMStudio 默认返回自定义格式。需在 LMStudio 设置中开启OpenAI compatible API选项并确认Base URL为http://localhost:1234/v1。验证集成是否成功curl -X POST http://localhost:1234/v1/chat/completions \ -H Content-Type: application/json \ -d { model: qwen2-7b, messages: [{role: user, content: Hello}], temperature: 0.3 }正常响应应包含choices[0].message.content字段。如果返回{error:Model not found}说明 LMStudio 未正确加载模型——检查Settings Model中的模型列表是否显示qwen2-7b.Q4_K_M.gguf且状态为Loaded。4. 实操全流程从环境初始化到生成可交付代码的完整链路4.1 环境初始化5 分钟完成基础部署以下是在 Ubuntu 22.04 上的完整初始化脚本保存为setup-superpowers.sh#!/bin/bash # 安装依赖 sudo apt update sudo apt install -y curl wget git docker.io docker-compose # 创建工作目录 mkdir -p ~/superpowers/{config,models,logs} # 生成 JWT 密钥 openssl genrsa -out ~/superpowers/config/key.pem 2048 chmod 600 ~/superpowers/config/key.pem # 下载模型以 Qwen2-7B 为例 wget https://huggingface.co/Qwen/Qwen2-7B-Instruct-GGUF/resolve/main/qwen2-7b-instruct.Q4_K_M.gguf \ -O ~/superpowers/models/qwen2-7b.Q4_K_M.gguf # 启动 Antigravity cd ~/superpowers docker-compose up -d # 安装 Codex CLI npm install -g codex/cli codex init codex config set antigravity_url http://localhost:3000 codex model register --name qwen2-7b --path ~/superpowers/models/qwen2-7b.Q4_K_M.gguf --type gguf codex config set default_model qwen2-7b # 验证 sleep 10 curl -s http://localhost:3000/health | jq -r .status # 应输出 ok codex model list | grep qwen2-7b # 应显示模型信息执行bash setup-superpowers.sh后所有服务应在 5 分钟内就绪。注意sleep 10是必要的因为 Docker 容器启动有延迟过早调用curl会失败。4.2 第一次代码生成用 superpowers 写一个真实的 API 路由现在打开 Cursor新建一个文件src/api/payment.py输入以下代码from fastapi import APIRouter, HTTPException from pydantic import BaseModel router APIRouter() class PaymentRequest(BaseModel): amount: float currency: str description: str # TODO: implement payment processing logic将光标放在# TODO行按下CtrlKCursor 默认快捷键输入提示词实现这个支付处理函数要求 1. 调用外部支付网关模拟为 requests.post 2. 处理网络超时和 HTTP 错误 3. 记录成功/失败日志 4. 返回 PaymentRequest 的副本添加 status 字段按下回车Cursor 会调用 superpowers 链路。几秒后生成的代码如下import logging import requests from fastapi import HTTPException from pydantic import BaseModel logger logging.getLogger(__name__) router.post(/process) async def process_payment(request: PaymentRequest): 处理支付请求 :param request: 支付请求数据 :return: 包含状态的支付请求副本 try: # 模拟调用外部支付网关 response requests.post( https://api.example.com/payments, json{ amount: request.amount, currency: request.currency, description: request.description }, timeout10 ) response.raise_for_status() logger.info(fPayment processed successfully: {request.amount} {request.currency}) return {**request.dict(), status: success} except requests.exceptions.Timeout: logger.error(fPayment gateway timeout for {request.amount} {request.currency}) raise HTTPException(status_code504, detailPayment gateway timeout) except requests.exceptions.HTTPError as e: logger.error(fPayment gateway error: {e}) raise HTTPException(status_code500, detailfPayment gateway error: {str(e)}) except Exception as e: logger.error(fUnexpected error: {e}) raise HTTPException(status_code500, detailInternal server error)这个生成结果的价值在于它不是简单地补全函数体而是自动完成了四项关键工作注入了logging模块和logger实例基于项目中已有的logging.config推断添加了符合 FastAPI 规范的router.post装饰器实现了完整的异常处理链timeout → HTTPError → generic Exception返回值结构严格遵循 Pydantic 模型的dict()方法确保类型安全实操心得第一次生成时我故意没写from fastapi import APIRouter想测试 superpowers 的上下文理解能力。结果它不仅补全了函数还在文件顶部自动添加了缺失的 import 语句。这说明 Antigravity 的context_enricher模块会扫描整个文件的 AST识别出router.post需要APIRouter从而反向推导出 import 需求。4.3 高级技巧用 Codex CLI 直接生成可测试的代码模块superpowers 的真正威力体现在脱离 GUI 的自动化场景。比如你想为项目中所有*.py文件生成单元测试# 生成单个文件的测试 codex generate \ --prompt 为 src/api/payment.py 编写 pytest 单元测试覆盖成功和失败场景 \ --model qwen2-7b \ --output tests/test_payment.py # 批量生成需配合 find 命令 find src/ -name *.py -not -path src/tests/* | while read file; do basename$(basename $file .py) codex generate \ --prompt 为 $file 编写 pytest 单元测试 \ --model qwen2-7b \ --output tests/test_${basename}.py done生成的tests/test_payment.py内容如下import pytest from unittest.mock import patch, MagicMock from src.api.payment import process_payment class TestProcessPayment: patch(src.api.payment.requests.post) def test_process_payment_success(self, mock_post): # 模拟成功响应 mock_response MagicMock() mock_response.raise_for_status.return_value None mock_post.return_value mock_response # 调用函数 result process_payment(PaymentRequest( amount100.0, currencyUSD, descriptiontest payment )) # 断言 assert result[status] success assert result[amount] 100.0 mock_post.assert_called_once() patch(src.api.payment.requests.post) def test_process_payment_timeout(self, mock_post): # 模拟超时 mock_post.side_effect requests.exceptions.Timeout() with pytest.raises(HTTPException) as exc_info: process_payment(PaymentRequest( amount100.0, currencyUSD, descriptiontest payment )) assert exc_info.value.status_code 504这个测试文件的特点是它直接使用了src/api/payment.py中定义的PaymentRequest类且 mock 逻辑精准对应生成的函数实现。这意味着 superpowers 不仅能写代码还能写“知道自己写的代码该怎么测试”的代码——这是传统 Copilot 无法做到的深度上下文感知。5. 常见问题与排查技巧实录那些官方文档不会告诉你的坑5.1 “Please verify your account to continue using antigravity” 的真实原因这个提示看似是账户验证问题但 95% 的情况与账户无关而是JWT 签名失效。Cursor 客户端在登录后会收到一个由 Antigravity 签发的 JWT token有效期默认 24 小时。当 token 过期Cursor 会尝试刷新但如果 Antigravity 的私钥文件被意外修改比如你用nano编辑key.pem时不小心保存了 BOM 头签名验证就会失败返回401 Unauthorized前端显示为“请验证账户”。排查步骤检查 Antigravity 日志docker logs antigravity | grep jwt.verify如果看到InvalidSignatureError: Signature verification failed确认密钥文件未被修改如果看到ExpiredSignatureError: Signature has expired说明 token 确实过期需重启 Cursor手动验证密钥有效性# 用私钥生成新 token echo {sub:test,exp:$(date -d 1 hour %s)} | openssl dgst -sha256 -sign ~/superpowers/config/key.pem | base64 -w0 # 用公钥验证需先提取公钥 openssl rsa -in ~/superpowers/config/key.pem -pubout pubkey.pem终极解决方案在docker-compose.yml中添加健康检查自动重启healthcheck: test: [CMD, curl, -f, http://localhost:3000/health] interval: 30s timeout: 10s retries: 35.2 Cursor 中文设置失效的三种场景场景1cursor.ai.language未生效原因Cursor 的设置是分工作区Workspace和用户User两级的。如果你在某个项目文件夹中打开了 Cursor它会优先读取该文件夹下的.cursor/settings.json。解决方案删除项目根目录的.cursor文件夹或在其中的settings.json中显式设置cursor.ai.language: zh。场景2中文提示词生成英文代码原因Qwen2-7B 模型的 tokenizer 对中文标点敏感。测试发现当提示词末尾有中文句号。时模型会将其识别为句子结束符导致生成截断。解决方案提示词结尾用英文句点.或在codex config set prompt.suffix .中统一设置。场景3Cursor 界面中文但 AI 回复英文原因Settings Appearance Language设置为中文但cursor.ai.language仍为en。这两个设置完全独立。必须同时设置// Settings Preferences Advanced cursor.ai.language: zh, editor.locale: zh-cn5.3 Codex CLI 命令执行失败的诊断树当codex generate返回Error: Request failed with status code 500时按以下顺序排查步骤检查命令预期输出问题定位1. Antigravity 是否运行curl -s http://localhost:3000/health{status:ok}若返回空或503检查 Docker 容器状态docker ps -a | grep antigravity2. 模型是否注册codex model list | grep qwen2-7b显示模型路径和类型若无输出执行codex model register重新注册3. 模型是否加载curl -s http://localhost:1234/v1/models包含qwen2-7b的 JSON若无检查 LMStudio 设置中模型是否Loaded4. 上下文注入是否异常codex debug dump-context --prompt test输出完整 JSON若dependencies为空检查项目根目录是否有pyproject.toml5. 网络连通性curl -s http://localhost:1234/v1/chat/completions -d {model:qwen2-7b,messages:[{role:user,content:test}]}返回choices[0].message.content若失败检查 LMStudio 的OpenAI compatible API是否启用我们曾遇到一个典型案例codex generate总是超时但手动curlLMStudio 却很快。最终发现是 Codex CLI 的timeout配置为3000030秒而 Antigravity 的context_enricher在计算git diff时耗时 35 秒。解决方案不是调大 timeout而是codex config set context.git_cache_ttl 600将 diff 结果缓存 10 分钟。5.4 Ubuntu 系统特有的权限陷阱在 Ubuntu 上部署时有三个经典权限坑Docker 权限不足普通用户执行docker-compose up会报Permission denied。解决方案sudo usermod -aG docker $USER然后注销重登。模型文件被 SELinux 拦截某些 Ubuntu 衍生版如 Kubuntu启用了 AppArmor阻止 Docker 容器读取宿主机模型文件。检查命令sudo aa-status若显示antigravity在enforce模式执行sudo aa-disable /usr/bin/dockerd临时禁用。LMStudio GPU 加速失效RTX 显卡需安装 NVIDIA Container Toolkit。安装后修改docker-compose.ymlservices: antigravity: # ... 其他配置 deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu]我踩过的最大坑在一台旧服务器上nvidia-smi显示驱动正常但 LMStudio 总是 fallback 到 CPU 模式。最终发现是 CUDA 版本不匹配——LMStudio 2.10 要求 CUDA 12.2而服务器装的是 11.8。解决方案不是降级 LMStudio而是用nvidia-docker run --gpus all -v $(pwd):/models nvcr.io/nvidia/cuda:12.2.0-devel启动一个 CUDA 12.2 容器在其中运行 LMStudio。6. 进阶扩展从 superpowers 到你的专属 AI 开发操作系统superpowers 的设计哲学是“可组合性优于完整性”。这意味着你不必接受整套方案完全可以按需替换其中任一模块。比如替换 Antigravity用llama.cpp的server模式替代。只需修改codex config set antigravity_url http://localhost:8080并确保 llama.cpp 的/completion接口返回 OpenAI