Skip to content

[Feature Request] 支持直接复用 IDE 中 ACP 已配置的 agent 生成 commit message #34

Description

@cycle2zhou

背景与痛点

当前插件的 LLM 设置只支持两种 provider 模式:

  • OpenAI Compatible
  • Anthropic

这两种模式都需要在插件设置里单独填写 Base URL、API Key、Model 等信息,与 IDE 本身的 AI 配置是两套独立的凭证。

从 JetBrains 2025.3 起,IDE 原生支持通过 Agent Client Protocol (ACP)~/.jetbrains/acp.json 里接入外部 coding agent(如 OpenCode、Claude Code、Codex、Gemini CLI、Cursor 等)。很多用户已经在 IDE 中配好了 ACP agent 并登录了供应商账号,但插件的 commit message 生成仍然无法复用这套配置——必须在插件里再填一份 API Key,体验割裂,也存在以下问题:

  1. 重复配置:同一套供应商凭证要在 IDE 和插件里各配一遍。
  2. 无法跟随 agent 切换:用户在 AI Chat 里切换了 agent(例如从 OpenCode 切到 Claude Code),commit message 生成端不会跟着切换。
  3. 凭证暴露面变大:插件本地存储 API Key,而 ACP agent 通常已通过 OAuth/订阅/自有 key 完成 auth,无需插件再次持有明文密钥。

期望方案

在 LLM Settings 的 provider 下拉中新增一个模式,例如 ACP Agent

  • 在该模式下,插件不再直接发起 HTTP 请求,而是通过 ACP 协议把「根据 diff 生成 commit message」作为一个 prompt 发送给 IDE 中已配置的某个 ACP agent。
  • 用户只需要在下拉中选择要使用的 ACP agent(IDE 已注册的那些),无需再填 Base URL / API Key。
  • commit message 文本通过 session/promptsession/update 流式回包获取,按现有 LLM 响应处理逻辑(去 think 标签等)走。

技术可行性

  • ACP 协议基于 JSON-RPC over stdio(本地 agent)或 HTTP/WebSocket(远程 agent),消息体复用 MCP 类型,文本默认 Markdown。参考:https://agentclientprotocol.com/protocol/v1/schema
  • JetBrains 平台从 2025.3 起内置 ACP client 能力(AI Assistant),插件理论上可以复用 IDE 的 ACP 会话基础设施,而不需要自己起 agent 子进程。
  • 若担心跨平台 / 跨 IDE 版本兼容,可先只支持本地 stdio agent(覆盖绝大多数场景)。

收益

  • 与 IDE AI 体验统一:一次配置,commit message 生成与 AI Chat 共用同一 agent。
  • 减少凭证管理负担:无需在插件里持久化 LLM API Key。
  • 顺应 JetBrains 2026 的 zero vendor lock-in 方向,让插件成为「任意 agent 可用」的 commit 助手。

参考资料

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions