Chancel's blog

205 字 1 分钟阅读

OpenCode 通用配置

  • agent

推荐的 MCP 工具

Context7 需要 API Key,可免费申请,示例:gQAAAAAAAZ65AAIgcDI5ZjIyY2Y4YzJiNjI0MDU4YmQyYWZmZTg4ZTVmZjkwNg

以上 mcp 工具可直接告诉 opencode 安装,会自行进行配置安装

推荐的 Skill

浏览器

playwright 太重,fetch 对 javascript 不友好,agent-browser 是一个非常不错的选择,让 opencode 安装如下:

从 https://github.com/vercel-labs/agent-browser 下载并校验官方原生二进制到 ~/.local/bin,安装 Chrome 及依赖,然后在 OpenCode 全局配置中注册 agent-browser mcp 并将其作为唯一首选浏览器工具,重启后用真实浏览器会话验证。

配置文件参考

{
  "$schema": "https://opencode.ai/config.json",
  // 默认主模型。字段名必须是 `model`(单数),不是 `models`。
  // 实际可用模型以 opencode 内的 `/models` 列表为准。
  "model": "openai/gpt-5.5",

  // 轻量模型:用于标题生成、摘要等低价值辅助任务,避免占用主 Codex 模型额度。
  "small_model": "opencode/big-pickle",

  // 额外技能目录:扫描其中的 **/SKILL.md。
  "skills": {
    "paths": ["/root/agent-skills/skills"],
  },
  // 长会话省 token:自动压缩上下文,并丢弃旧工具输出。
  // tail_turns=2 保留最近两轮完整上下文,兼顾省 token 和连续性。
  "compaction": {
    "auto": true,
    "prune": true,
    "reserved": 10000,
    "tail_turns": 2,
  },
  "provider": {
    "openai": {
      // OpenAI/Codex 订阅模型的全局覆盖项。
      // OpenAI provider 使用 reasoningEffort/textVerbosity;不要混用 OpenRouter 的 provider.allow_fallbacks。
      "name": "openai",
      "models": {
        "gpt-5.5": {
          "id": "gpt-5.5",
          "options": {
            "temperature": 0.2,
            "reasoningEffort": "low",
            "textVerbosity": "low",
          },
        },
      },
    },
  },
  "mcp": {
    "context7": {
      // 官方文档查询 MCP。安全建议:将明文 API key 迁移为 `{env:CONTEXT7_API_KEY}` 并轮换当前 key。
      "type": "remote",
      "url": "https://mcp.context7.com/mcp",
      "enabled": true,
    },
    "grafana": {
      // Grafana MCP:用于查监控、日志、告警。安全建议:将账号密码迁移为环境变量并轮换当前明文密码。
      "type": "local",
      "command": ["uvx", "mcp-grafana"],
      "enabled": true,
      "environment": {
        "GRAFANA_URL": "http://127.0.0.1:3000",
        "NO_PROXY": "127.0.0.1,localhost,192.168.11.0/24",
      },
    },
    "docker": {
      // Docker MCP:用于容器操作。若日常不用,可考虑 enabled=false,以减少工具上下文和误操作面。
      "type": "local",
      "command": ["uvx", "mcp-server-docker"],
      "enabled": true,
    },
    "fetch": {
      // 通用网页抓取 MCP:Context7 不适用或需要普通网页资料时使用。
      "type": "local",
      "command": ["uvx", "mcp-server-fetch"],
      "enabled": true,
      "timeout": 60000,
    },
    "time": {
      // 时间工具 MCP:轻量工具,可保留。
      "type": "local",
      "command": ["uvx", "mcp-server-time"],
      "enabled": true,
    },
    "filesystem": {
      // 文件系统 MCP:@modelcontextprotocol/server-filesystem 通常需要显式允许目录参数;
      // 如果启动时报 allowed directories 相关错误,需要在 command 后追加允许访问的目录。
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-filesystem"],
      "enabled": true,
    },
  },
}