前言

最近在研究 AI 辅助编程工具,发现了一套非常强大的组合:OpenCode + Oh-My-OpenCode。它们不仅能调用 GitHub Copilot 等模型,还支持灵活配置各种语言的 LSP(语言服务器),特别是 Java 的 jdtls。本文将详细记录从安装到配置的全过程,包括模型设置、LSP 集成和常见问题处理。

环境准备

  • 操作系统:Windows (本文以 Windows 为例,macOS/Linux 类似)

  • Node.js:建议 v18 或更高版本(npm 随附)

  • PowerShell:用于运行安装脚本

  • GitHub Copilot 订阅(若使用其模型)

一、安装 OpenCode 和 Oh-My-OpenCode

1. 安装 OpenCode

npm i -g opencode-ai

安装完成后,可以通过 opencode --version 检查是否成功。

2. 安装 Oh-My-OpenCode

npm i -g oh-my-opencode

然后执行安装命令(会完成一些初始化配置):

npx oh-my-opencode install
opencode

    二、模型配置(使用 GitHub Copilot 模型)

    OpenCode + Oh-My-OpenCode 的模型配置通过 oh-my-openagent.json 文件完成。该文件位于:

    C:\Users\你的用户名\.config\opencode\oh-my-openagent.json

    如果文件夹不存在,手动创建即可。

    1. 完整配置示例

    以下是我实际使用的 oh-my-openagent.json,包含了多个代理(agent)和类别(category),并统一使用 github-copilot/gpt-5.4 及其变体,以及一些备用模型(fallback)。

    {
      "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/oh-my-opencode.schema.json",
      "agents": {
        "sisyphus": {
          "model": "github-copilot/gpt-5.4",
          "variant": "max",
          "fallback_models": [
            { "model": "github-copilot/gpt-5.4", "variant": "max" },
            { "model": "github-copilot/gpt-5.4" },
            { "model": "github-copilot/gpt-5.4", "variant": "medium" },
            { "model": "opencode/big-pickle" }
          ]
        },
        "hephaestus": {
          "model": "github-copilot/gpt-5.4",
          "variant": "medium",
          "fallback_models": [{ "model": "github-copilot/gpt-5.4", "variant": "medium" }]
        }
        // 其他 agent 类似,按需添加
      },
      "categories": {
        "quick": {
          "model": "github-copilot/gpt-5.4-mini",
          "fallback_models": [
            { "model": "github-copilot/gpt-5.4-mini" },
            { "model": "github-copilot/claude-haiku-4.5" },
            { "model": "github-copilot/gpt-5.4" },
            { "model": "opencode/gemini-3-flash" }
          ]
        }
        // 其他 category 类似
      }
    }
    
    

    说明

    • variant 表示模型能力级别(如 max, high, medium, xhigh)。

    • fallback_models 是当主模型不可用时依次尝试的模型列表。

    • 模型名称格式 github-copilot/xxx 需要有效的 GitHub Copilot 授权。

    三、配置 Java LSP(jdtls)

    OpenCode 通过 LSP 提供代码补全、跳转、重构等功能。Java 官方推荐使用 jdtls(Eclipse JDT Language Server)。

    注意!!!:jdk需要配置全局环境,且版本不低于21

    1. 下载并安装 jdtls

    提供了一个 PowerShell 脚本 installjdtls.ps1,内容如下(保存为 .ps1 文件):

    # install-jdtls.ps1
    $installDir = "$env:USERPROFILE\.local\share\opencode\bin"
    $tempFile = "$installDir\jdtls.tar.gz"
    
    New-Item -ItemType Directory -Force -Path $installDir | Out-Null
    
    Write-Host "Downloading jdtls..."
    Invoke-WebRequest -Uri "https://download.eclipse.org/jdtls/milestones/1.57.0/jdt-language-server-1.57.0-202602261110.tar.gz" -OutFile $tempFile
    
    Set-Location $installDir
    Write-Host "Extracting..."
    tar -xzf jdtls.tar.gz
    
    $jdtlsBinDir = "$installDir\bin"
    $currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
    if (-not $currentPath.Contains($jdtlsBinDir)) {
        [Environment]::SetEnvironmentVariable("Path", "$currentPath;$jdtlsBinDir", "User")
        Write-Host "Added to PATH: $jdtlsBinDir"
    }
    
    Remove-Item $tempFile -Force
    
    Write-Host "Verifying installation (expected: usage error or missing args)..."
    & "$jdtlsBinDir\jdtls.bat" 2>&1 | Select-Object -First 3

    执行步骤

    1. 将上述脚本保存为 installjdtls.ps1

    2. 在文件资源管理器中进入脚本所在目录,地址栏输入 powershell 并回车。

    3. 在 PowerShell 中运行:

      .\installjdtls.ps1
    4. 观察输出。如果出现类似下面的内容,其实是成功的

      Downloading jdtls...
      Extracting...
      Added to PATH: C:\Users\Admin\.local\share\opencode\bin\bin
      Verifying installation...
      Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
      WARNING: Using incubator modules: jdk.incubator.vector

      这些警告可以忽略,只要没有报错“找不到命令”之类的即可。

    2. 验证 jdtls 是否可用

    打开一个全新的 PowerShell 窗口(使得 PATH 生效),运行:

    jdtls -help

    如果输出帮助信息(如 Usage: jdtls [-data <workspace>] ...),说明安装成功。

    3. 在 oh-my-openagent.json 中注册 jdtls

    在 JSON 配置文件的顶层添加 lsp 字段,内容如下:

    "lsp": {
      "jdtls": {
        "command": ["jdtls", "--stdio"],
        "extensions": [".java"],
        "priority": 10,
        "env": {
          "NODE_OPTIONS": "--max-old-space-size=4096"
        },
        "initialization": {
          "preferences": {
            "includeInlayParameterNameHints": "all"
          }
        }
      }
    }

    将该段合并到你已有的 oh-my-openagent.json 中(注意 JSON 语法,不要遗漏逗号)。届时打开任何 .java 文件,OpenCode 就会自动启动 jdtls 提供智能提示。

    四、其他 LSP 配置(以 Vue 为例)

    如果需要前端开发支持,可以安装 Vue 的语言服务器:

    npm install -g @vue/language-server

    然后在 lsp 字段中添加相应配置(类似 jdtls)。

    五、常见问题与注意事项

    1. jdtls 运行报错 JAVA_TOOL_OPTIONS 或 incubator modules

    这是正常提示,不影响使用。如果希望去除,可以移除环境变量 JAVA_TOOL_OPTIONS 或降级 JDK 版本(但建议保留)。

    2. PATH 未生效

    安装完 jdtls 后要关闭并重新打开终端(或 PowerShell),否则系统找不到 jdtls 命令。

    3. 模型无法调用

    • 确保已登录 GitHub Copilot(可使用 github-copilot auth 命令验证)。

    • 检查网络环境,部分地区可能需要代理。

    4. OpenCode Web 界面不显示 LSP 功能

    确认 JSON 配置文件没有语法错误(可用在线 JSON 校验工具)。LSP 功能在打开对应文件(如 .java)后才会激活。

    六、总结

    本文手把手教会了:

    • 安装 OpenCode 和 Oh-My-OpenCode

    • 配置 GitHub Copilot 模型(通过 oh-my-openagent.json

    • 安装并配置 Java LSP(jdtls),包括使用 PowerShell 脚本自动安装

    • 添加其他 LSP(如 Vue)

    现在你可以享受 OpenCode 带来的强大 AI 辅助编程体验了!如果遇到问题,欢迎在评论区留言交流。

    Logo

    AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

    更多推荐