首页
/ OpenCode配置示例:典型使用场景配置

OpenCode配置示例:典型使用场景配置

2026-02-04 05:08:51作者:凤尚柏Louis

OpenCode作为专为终端打造的开源AI编程助手,其强大的配置系统能够满足各种开发场景的需求。本文将深入探讨OpenCode的典型配置示例,帮助开发者快速上手并充分发挥其潜力。

配置系统架构概览

OpenCode采用分层配置架构,支持全局配置、项目级配置和环境变量覆盖:

flowchart TD
    A[配置加载流程] --> B[全局配置]
    A --> C[项目级配置]
    A --> D[环境变量覆盖]
    
    B --> E[~/.config/opencode/]
    C --> F[项目根目录/.opencode/]
    C --> G[opencode.jsonc/json]
    D --> H[OPENCODE_CONFIG]
    D --> I[OPENCODE_CONFIG_CONTENT]
    
    E & F & G & H & I --> J[最终配置合并]
    J --> K[运行时配置]

基础配置示例

1. 基础模型配置

{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-3-sonnet",
  "small_model": "openai/gpt-4o-mini",
  "username": "developer-alice",
  "theme": "dark",
  "autoupdate": true
}

2. 多模型提供商配置

{
  "provider": {
    "anthropic": {
      "options": {
        "apiKey": "{env:ANTHROPIC_API_KEY}",
        "timeout": 120000
      }
    },
    "openai": {
      "options": {
        "apiKey": "{env:OPENAI_API_KEY}",
        "baseURL": "https://api.openai.com/v1"
      },
      "models": {
        "gpt-4o": {
          "contextWindow": 128000
        }
      }
    }
  }
}

典型使用场景配置

场景1:Web开发助手配置

{
  "agent": {
    "web-dev": {
      "model": "anthropic/claude-3-opus",
      "description": "专为Web开发设计的助手,擅长React、Vue、TypeScript",
      "tools": {
        "bash": true,
        "edit": true,
        "webfetch": true,
        "lsp-hover": true
      },
      "temperature": 0.2,
      "prompt": "你是一个专业的Web开发助手,专注于现代前端技术栈。请提供高质量的代码建议,遵循最佳实践,并考虑性能优化。"
    }
  },
  "command": {
    "create-component": {
      "template": "创建一个新的React组件 {componentName},包含Props类型定义和基本样式",
      "agent": "web-dev"
    }
  }
}

场景2:数据科学工作流

{
  "agent": {
    "data-science": {
      "model": "openai/gpt-4o",
      "description": "数据科学和分析专家,擅长Python、Pandas、机器学习",
      "tools": {
        "bash": true,
        "edit": true,
        "webfetch": false
      },
      "permission": {
        "edit": "allow",
        "bash": {
          "python": "allow",
          "jupyter": "allow",
          "*": "ask"
        }
      },
      "temperature": 0.1
    }
  },
  "formatter": {
    "black": {
      "command": ["black", "-"],
      "extensions": [".py"]
    },
    "prettier": {
      "command": ["prettier", "--stdin-filepath", "temp.py"],
      "extensions": [".py"]
    }
  }
}

场景3:系统运维自动化

{
  "agent": {
    "devops": {
      "model": "anthropic/claude-3-sonnet",
      "description": "DevOps和基础设施自动化专家",
      "tools": {
        "bash": true,
        "edit": true,
        "webfetch": true
      },
      "permission": {
        "edit": "allow",
        "bash": {
          "docker": "allow",
          "kubectl": "allow",
          "terraform": "allow",
          "*": "ask"
        }
      }
    }
  },
  "experimental": {
    "hook": {
      "file_edited": {
        "*.tf": [
          {
            "command": ["terraform", "fmt", "-"],
            "environment": {
              "TF_INPUT": "false"
            }
          }
        ]
      }
    }
  }
}

高级功能配置

MCP(Model Context Protocol)集成

{
  "mcp": {
    "weather": {
      "type": "local",
      "command": ["opencode", "x", "@h1deya/mcp-server-weather"],
      "enabled": true
    },
    "sql": {
      "type": "remote",
      "url": "http://localhost:8080/mcp",
      "headers": {
        "Authorization": "Bearer {env:SQL_MCP_TOKEN}"
      }
    }
  }
}

LSP(Language Server Protocol)配置

{
  "lsp": {
    "typescript": {
      "command": ["typescript-language-server", "--stdio"],
      "extensions": [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"],
      "initialization": {
        "typescript": {
          "preferences": {
            "includePackageJsonAutoImports": "on"
          }
        }
      }
    },
    "python": {
      "command": ["pylsp"],
      "extensions": [".py"],
      "env": {
        "PYTHONPATH": "{env:PYTHONPATH}"
      }
    }
  }
}

权限和安全配置

{
  "permission": {
    "edit": "ask",
    "bash": {
      "npm": "allow",
      "yarn": "allow",
      "pnpm": "allow",
      "docker": "ask",
      "kubectl": "deny",
      "*": "ask"
    },
    "webfetch": "ask"
  },
  "share": "manual",
  "snapshot": false
}

工作流优化配置

多代理协作配置

{
  "agent": {
    "architect": {
      "model": "anthropic/claude-3-opus",
      "description": "系统架构师,负责高层次设计和规划",
      "mode": "primary",
      "temperature": 0.3
    },
    "engineer": {
      "model": "anthropic/claude-3-sonnet",
      "description": "工程师,负责具体实现和编码",
      "mode": "subagent",
      "temperature": 0.1
    },
    "reviewer": {
      "model": "openai/gpt-4o",
      "description": "代码审查员,负责质量保证",
      "mode": "subagent",
      "temperature": 0.2
    }
  }
}

自定义快捷键配置

{
  "keybinds": {
    "leader": "ctrl+x",
    "agent_cycle": "tab",
    "agent_cycle_reverse": "shift+tab",
    "session_export": "<leader>x",
    "session_share": "<leader>s",
    "tool_details": "<leader>d"
  }
}

环境特定配置

开发环境配置

{
  "model": "anthropic/claude-3-haiku",
  "tools": {
    "bash": true,
    "edit": true,
    "webfetch": true
  },
  "experimental": {
    "hook": {
      "session_completed": [
        {
          "command": ["notify-send", "OpenCode", "任务完成"],
          "environment": {
            "DISPLAY": ":0"
          }
        }
      ]
    }
  }
}

生产环境配置

{
  "model": "anthropic/claude-3-opus",
  "tools": {
    "bash": false,
    "edit": "ask",
    "webfetch": false
  },
  "permission": {
    "edit": "ask",
    "bash": "deny",
    "webfetch": "deny"
  },
  "share": "disabled"
}

配置最佳实践

1. 使用环境变量保护敏感信息

{
  "provider": {
    "openai": {
      "options": {
        "apiKey": "{env:OPENAI_API_KEY}",
        "baseURL": "{env:OPENAI_BASE_URL}"
      }
    }
  }
}

2. 分层配置管理

# 全局配置
~/.config/opencode/config.json

# 项目特定配置
项目根目录/.opencode/opencode.json

# 环境变量覆盖
export OPENCODE_CONFIG_CONTENT='{"model":"anthropic/claude-3-sonnet"}'

3. 配置验证和调试

OpenCode支持JSON Schema验证,确保配置的正确性:

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

使用 opencode --debug 命令可以查看配置加载过程和最终配置结果。

总结

OpenCode的配置系统提供了极大的灵活性,能够适应各种开发场景和工作流程。通过合理的配置,开发者可以:

  1. 定制化AI助手:根据不同专业领域配置专门的代理
  2. 控制权限和安全:精细化管理工具访问权限
  3. 集成开发工具:通过MCP和LSP扩展功能
  4. 优化工作流程:配置快捷键和自动化钩子
  5. 环境适配:为不同环境设置不同的配置策略

掌握OpenCode的配置技巧,将显著提升开发效率和工作体验。建议从基础配置开始,逐步根据实际需求添加高级功能配置。

登录后查看全文
热门项目推荐
相关项目推荐