Skip to content

Latest commit

 

History

History
198 lines (149 loc) · 5.32 KB

File metadata and controls

198 lines (149 loc) · 5.32 KB

Claude Code 集成分析总结

核心发现 🔍

Claude Code != ACP

重要:IDEA 的 Claude Code 实现 不使用 ACP 协议

它使用的是 自定义 JSON 流式协议,通过 stdio 与外部 claude-code 二进制通信。

架构对比

ACP Agents (Copilot/Gemini/Kimi)

应用 → ACP Client → JSON-RPC over stdio → Agent CLI (外部进程)
                    ↓
            标准 ACP 协议

Claude Code (IDEA 实现)

应用 → ClaudeCodeClient → 自定义 JSON over stdio → claude-code 二进制
                          ↓
                  非标准协议

关键差异

方面 ACP Agents Claude Code
协议 标准 ACP (JSON-RPC) 自定义 JSON 流
安装 用户自行安装 CLI 应用内自动下载二进制
集成难度 ✅ 简单(已有基础设施) ⚠️ 中等(需新适配层)
工作量 7行代码 估计 3-5 天

IDEA 实现的核心组件

1. ClaudeCodeProcessHandler

  • 启动 claude-code 进程
  • 解析 stdout 的 JSON 消息
  • 发送到 Kotlin Channel

2. 消息类型

sealed class ClaudeMessage {
    SystemInitMessage    // 系统初始化
    UserMessage          // 用户输入
    AssistantMessage     // AI 回复(含工具调用)
    ControlRequestMessage // 控制命令
}

3. 进程启动

claude-code -p --verbose --output-format stream-json \
    --permission-mode approve_all \
    --model claude-sonnet-4 \
    --mcp-config /path/to/mcp.json

4. 环境变量

ANTHROPIC_API_KEY=sk-ant-...
ANTHROPIC_BASE_URL=https://api.anthropic.com

集成方案建议

方案 A:直接集成 Claude Code 二进制 ⭐

优点:

  • ✅ 功能完整(工具调用、MCP、Thinking)
  • ✅ 官方支持
  • ✅ IDEA 已验证

缺点:

  • ❌ 需要下载外部二进制
  • ❌ 非 ACP 协议(需新适配层)
  • ❌ 工作量:3-5 天

实现步骤:

  1. 下载服务(获取 claude-code 二进制)
  2. 进程管理器(启动和管理进程)
  3. JSON 消息解析器
  4. 渲染适配器(适配到 CodingAgentRenderer)
  5. 配置集成

方案 B:等待官方 ACP 支持

优点:

  • ✅ 完全兼容现有架构
  • ✅ 无需新代码

缺点:

  • ❌ 不确定何时支持
  • ❌ 目前无法使用

所需新增代码结构

mpp-core/src/jvmMain/kotlin/cc/unitmesh/agent/claude/
├── ClaudeCodeClient.kt              # 客户端(类似 AcpClient)
├── ClaudeCodeSession.kt             # 会话管理
├── ClaudeCodeProcessHandler.kt      # 进程处理
├── ClaudeCodeDownloadService.kt     # 二进制下载
└── protocol/
    ├── ClaudeMessage.kt
    ├── UserMessage.kt
    ├── AssistantMessage.kt
    └── Content.kt

mpp-ui/src/commonMain/kotlin/cc/unitmesh/devins/ui/compose/agent/claude/
├── ClaudeCodeRenderer.kt            # 渲染适配器
└── ClaudeCodeConnectionProvider.kt  # 连接提供者

工作量估算

阶段 任务 时间
Phase 1 基础架构(Client、进程管理) 2天
Phase 2 协议实现(消息定义、解析) 1天
Phase 3 渲染集成(适配器) 1天
Phase 4 下载服务(二进制管理) 1天
Phase 5 UI 集成(配置界面) 1天
Phase 6 测试和文档 1天
总计 5-7天

与 Copilot 集成对比

项目 Copilot (ACP) Claude Code
协议兼容 ✅ 完全兼容 ❌ 需新适配层
代码修改 ✅ 7行 ⚠️ ~1000行
工作量 ✅ 1小时 ⚠️ 5-7天
测试验证 ✅ 已完成 ⏳ 需新测试
二进制管理 ✅ 用户安装 ⚠️ 需下载服务

建议

短期(现在)

  1. 完成 Copilot 集成 - 已完成
  2. 📋 研究 Claude Code 二进制
    • 下载地址
    • 许可证要求
    • 版本管理

中期(1-2周)

  1. 🔨 实现 Claude Code 基础
    • 参考 IDEA 实现
    • 创建基础架构
    • MVP 验证

长期(1个月)

  1. 🚀 完整功能
    • 工具调用
    • MCP 支持
    • 与 ACP agents 统一体验

疑问和风险

需要确认

  1. claude-code 二进制是否公开可用
  2. ❓ 是否需要特殊许可证
  3. ❓ 下载地址和版本管理方式
  4. ❓ 是否有文档说明协议格式

技术风险

  1. ⚠️ JSON 流式解析的复杂性
  2. ⚠️ 跨平台兼容性(macOS/Linux/Windows)
  3. ⚠️ 维护成本(非标准协议可能变化)

参考资料

结论

  1. Claude Code 不是 ACP - 需要单独的适配层
  2. 实现可行 - IDEA 已验证,可以参考
  3. 工作量较大 - 相比 Copilot 的 7 行代码,需要约 5-7 天
  4. 建议优先级
    • ✅ 高优先级:Copilot(已完成)
    • ⏳ 中优先级:Claude Code(如果二进制可用)
    • ⏳ 低优先级:其他 ACP agents(Claude CLI、Codex 等)

下一步行动:需要先确认 claude-code 二进制的可用性和获取方式。