惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
GbyAI
GbyAI
U
Unit 42
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
D
DataBreaches.Net
N
Netflix TechBlog - Medium
H
Hackread – Cybersecurity News, Data Breaches, AI and More
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Check Point Blog
Martin Fowler
Martin Fowler
月光博客
月光博客
MongoDB | Blog
MongoDB | Blog
MyScale Blog
MyScale Blog
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
罗磊的独立博客
B
Blog RSS Feed
J
Java Code Geeks
The GitHub Blog
The GitHub Blog

博客园 - 我才是银古

第16章:常见问题、排错与最佳实践 第15章:扩展生态、MCAD 与外部集成 第12章:实战案例:机械结构与 3D 打印零件 第14章:构建、测试、调试与贡献流程 第13章:OpenSCAD 源码架构与核心执行流程 第11章:预览、渲染、网格精度与性能优化 第09章:列表推导、递归与算法建模 第08章:参数化零件库与复用设计 第10章:导入导出、命令行与自动化 第06章:CSG 布尔建模方法 第07章:二维图形、拉伸、旋转与投影 第05章:基础几何、坐标系与变换 第04章:参数、变量、函数、模块与作用域 OpenSCAD 教程目录 第03章:OpenSCAD 语言基础 第02章:安装、环境配置与开发工作流 第01章:OpenSCAD 项目全景与学习路线 第02章:源码获取、编译与开发环境配置 第01章:OCCT项目全景与学习路线 第18章:二次开发实战与综合案例 第18章:综合实战案例 第17章:数据交换与协同 第16章:源码架构与二次开发 第15章:插件与自定义工作台开发 第14章:Python脚本宏与自动化 第13章:FEM仿真分析 第12章:CAM数控加工 第11章:SurfaceMesh与逆向工程 第10章:Draft二维绘图与BIM建筑 第09章:工程图TechDraw
第十章:最佳实践、完整配置模板与排障
我才是银古 · 2026-06-04 · via 博客园 - 我才是银古

第十章:最佳实践、完整配置模板与排障

最后一章把前九章的知识落地:给出可直接套用的完整配置模板(个人版 / 团队版 / 省钱极致版),汇总日常最佳实践,并提供排障与企业管控、学习路线指引。


10.1 完整配置模板

以下模板均可直接复制、按需删改。务必保留 $schema 以获得编辑器校验与补全。

模板 A:个人通用(均衡型)

适合大多数日常开发,质量与成本兼顾。

{
  "$schema": "https://opencode.ai/config.json",

  // 模型:主力 Sonnet,轻量任务用 Haiku
  "model": "anthropic/claude-sonnet-4-5",
  "small_model": "anthropic/claude-haiku-4-5",

  // 默认从规划开始,避免乱改
  "default_agent": "plan",

  // 上下文压缩与裁剪(省 Token 底座)
  "compaction": { "auto": true, "prune": true, "reserved": 10000 },

  // 提示缓存
  "provider": {
    "anthropic": { "options": { "setCacheKey": true } }
  },

  // 启用 LSP 与格式化,减少返工
  "lsp": true,
  "formatter": true,

  // 自动更新
  "autoupdate": true
}

TUI 部分(主题、键位、提醒):

{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "tokyonight",
  "attention": { "enabled": true, "notifications": true, "sound": true, "volume": 0.4 }
}

模板 B:省钱极致(成本优先)

把第九章的策略开满,适合大量、可容错的杂活。

{
  "$schema": "https://opencode.ai/config.json",

  "model": "anthropic/claude-sonnet-4-5",
  "small_model": "anthropic/claude-haiku-4-5",
  "default_agent": "plan",

  "compaction": { "auto": true, "prune": true, "reserved": 12000 },

  "provider": {
    "anthropic": {
      "options": { "setCacheKey": true },
      "models": {
        "claude-sonnet-4-5-20250929": {
          "options": { "thinking": { "type": "enabled", "budgetTokens": 8000 } }
        }
      }
    }
  },

  // 关掉不常用、又费 Token 的能力
  "permission": {
    "websearch": "deny"
  },

  // 分层用模:规划/审查/检索走便宜模型,实现走强模型
  "agent": {
    "plan":  { "model": "anthropic/claude-haiku-4-5", "steps": 15 },
    "build": { "model": "anthropic/claude-sonnet-4-5", "steps": 25 },
    "review": {
      "description": "只读代码审查",
      "mode": "subagent",
      "model": "anthropic/claude-haiku-4-5",
      "permission": { "edit": "deny" }
    }
  },

  // 大仓库降噪
  "watcher": { "ignore": ["node_modules/**", "dist/**", ".git/**"] }
}

如需进一步归零费用,把杂活 Agent 指向本地模型:

{
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": { "baseURL": "http://localhost:11434/v1" },
      "models": { "qwen2.5-coder": { "name": "Qwen2.5 Coder (local)" } }
    }
  },
  "agent": {
    "docs": { "mode": "subagent", "model": "ollama/qwen2.5-coder", "permission": { "bash": "deny" } }
  }
}

模板 C:团队 / 项目级(提交进 Git)

放在项目根 opencode.json,与全局配置自动合并。聚焦项目专属设置与安全边界。

{
  "$schema": "https://opencode.ai/config.json",

  // 项目统一模型(团队一致)
  "model": "anthropic/claude-sonnet-4-5",

  // 复用既有规则文件
  "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", "packages/*/AGENTS.md"],

  // 安全边界:危险命令禁止,常规命令放行
  "permission": {
    "bash": {
      "*": "ask",
      "git *": "allow",
      "npm *": "allow",
      "git push *": "deny",
      "rm -rf *": "deny"
    },
    "read": { "*": "allow", "*.env": "deny", "*.env.*": "deny" }
  },

  // 项目需要的 MCP(按需开启,注意 Token 成本)
  "mcp": {},

  // 团队不希望误开自动分享
  "share": "manual"
}

配合项目根的 AGENTS.md(用 /init 生成并提交)与 .opencode/commands/.opencode/agents/,整个团队就拥有了一致、可版本化的 OpenCode 工作台。


10.2 日常最佳实践

工作流

  • 先规划后实现plan 模式确认方案 → build 模式落地,减少昂贵返工。
  • 一个任务一个会话:完成即 /new;里程碑后 /compact 收敛上下文。
  • 精准上下文:用 @文件 引用相关文件,用 @explore/@scout 隔离检索调研。
  • 善用撤销:结果不对就 /undo,调整提示再来;可连续多次回退。

配置

  • 全局放偏好,项目放专属:利用「合并而非替换」,避免重复。
  • 密钥与大段提示词外置:用 {env:...} / {file:...} 变量替换,避免泄露与杂乱。
  • 配置改完先验证opencode debug config 看最终合并结果。
  • 保留 $schema:获得实时校验与补全。

成本

  • 分层用模 + 变体调档:杂活便宜模型、难题强模型,ctrl+t 临时升降推理强度。
  • 开启压缩、裁剪与缓存compactionsetCacheKey 是默认底座。
  • 克制 MCP 与工具:只开必需,其余禁用,避免常驻上下文成本。
  • 定期复盘opencode stats 数据驱动持续优化(见第九章清单)。

10.3 排障速查

日志与数据位置

  • 日志:macOS/Linux 在 ~/.local/share/opencode/log/;Windows 在 %USERPROFILE%\.local\share\opencode\log。保留最近 10 个日志文件。
  • 详细日志opencode --log-level DEBUG,或 opencode --print-logs 在终端看输出。
  • 数据存储~/.local/share/opencode/,含 auth.json(密钥/令牌)、log/project/(会话与消息)。

常见问题

现象 排查步骤
启动失败 看日志;opencode --print-logsopencode upgrade 升级到最新版
认证失败 /connect 重新认证;确认密钥有效;确认网络可达 Provider API
模型不可用 / ProviderModelNotFoundError 确认已认证;核对模型名格式为 providerId/modelIdopencode models 看可用模型
ProviderInitError 配置可能损坏;按 providers 文档重配;必要时 rm -rf ~/.local/share/opencode 后重新 /connect
AI_APICallError / provider 包问题 清缓存 rm -rf ~/.cache/opencode 后重启,强制重装最新 provider 包
Linux 复制粘贴失效 安装剪贴板工具(X11 装 xclip,Wayland 装 wl-clipboard
本地模型工具调用不工作 增大 Ollama 的 num_ctx(16k–32k 起步)

清理 ~/.local/share/opencode 会删除会话与认证数据,属较重操作,确认后再执行。


10.4 企业级管控(了解)

组织可通过以下机制下发不可被用户覆盖的配置(优先级最高):

  • 远程配置.well-known/opencode 端点提供组织默认值(最底层,可被覆盖)。
  • 托管配置文件:放在系统目录(macOS /Library/Application Support/opencode/、Linux /etc/opencode/、Windows %ProgramData%\opencode),需管理员权限。
  • macOS 托管偏好:通过 MDM(Jamf / Kandji / FleetDM)下发 .mobileconfig,读取 ai.opencode.managed 偏好域,用户不可覆盖。
  • 策略(policies)experimental.policies 可允许/禁止某些动作,例如禁止使用某个 Provider:
{
  "$schema": "https://opencode.ai/config.json",
  "experimental": {
    "policies": [
      { "effect": "deny", "action": "provider.use", "resource": "openai" }
    ]
  }
}

opencode debug config 可验证哪些托管键已生效。


10.5 学习路线回顾

  • 入门(1–3 章):理解定位 → 安装接入 → 熟悉界面与会话。
  • 配置基础(4–5 章):吃透配置体系与优先级 → 掌握模型与 Provider。
  • 深度定制(6–8 章):自定义 Agent → 命令/规则/Skill → 工具/权限/MCP。
  • 最优化(9–10 章):系统化 Token 优化 → 套用完整模板与最佳实践。

若你的核心诉求是「更省、更快」,主线是第 4 → 5 → 6 → 9 → 10 章;其中第九章的清单与本章的模板可直接落地到你的 opencode.json


10.6 结语

OpenCode 把「模型自由、配置即代码、成本可控」三件事做成了可组合的显式能力。掌握了本教程的配置体系与优化策略后,你不仅能让它更懂你的项目,还能以更省 Token、更高效的方式持续使用它。建议把第十章的模板作为起点,结合 opencode stats 的反馈不断微调,逐步打磨出最适合你和团队的那一套配置。