重要:IDEA 的 Claude Code 实现 不使用 ACP 协议!
它使用的是 自定义 JSON 流式协议,通过 stdio 与外部 claude-code 二进制通信。
应用 → ACP Client → JSON-RPC over stdio → Agent CLI (外部进程)
↓
标准 ACP 协议
应用 → ClaudeCodeClient → 自定义 JSON over stdio → claude-code 二进制
↓
非标准协议
| 方面 | ACP Agents | Claude Code |
|---|---|---|
| 协议 | 标准 ACP (JSON-RPC) | 自定义 JSON 流 |
| 安装 | 用户自行安装 CLI | 应用内自动下载二进制 |
| 集成难度 | ✅ 简单(已有基础设施) | |
| 工作量 | 7行代码 | 估计 3-5 天 |
- 启动
claude-code进程 - 解析 stdout 的 JSON 消息
- 发送到 Kotlin Channel
sealed class ClaudeMessage {
SystemInitMessage // 系统初始化
UserMessage // 用户输入
AssistantMessage // AI 回复(含工具调用)
ControlRequestMessage // 控制命令
}claude-code -p --verbose --output-format stream-json \
--permission-mode approve_all \
--model claude-sonnet-4 \
--mcp-config /path/to/mcp.jsonANTHROPIC_API_KEY=sk-ant-...
ANTHROPIC_BASE_URL=https://api.anthropic.com优点:
- ✅ 功能完整(工具调用、MCP、Thinking)
- ✅ 官方支持
- ✅ IDEA 已验证
缺点:
- ❌ 需要下载外部二进制
- ❌ 非 ACP 协议(需新适配层)
- ❌ 工作量:3-5 天
实现步骤:
- 下载服务(获取 claude-code 二进制)
- 进程管理器(启动和管理进程)
- JSON 消息解析器
- 渲染适配器(适配到 CodingAgentRenderer)
- 配置集成
优点:
- ✅ 完全兼容现有架构
- ✅ 无需新代码
缺点:
- ❌ 不确定何时支持
- ❌ 目前无法使用
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 (ACP) | Claude Code |
|---|---|---|
| 协议兼容 | ✅ 完全兼容 | ❌ 需新适配层 |
| 代码修改 | ✅ 7行 | |
| 工作量 | ✅ 1小时 | |
| 测试验证 | ✅ 已完成 | ⏳ 需新测试 |
| 二进制管理 | ✅ 用户安装 |
- ✅ 完成 Copilot 集成 - 已完成
- 📋 研究 Claude Code 二进制
- 下载地址
- 许可证要求
- 版本管理
- 🔨 实现 Claude Code 基础
- 参考 IDEA 实现
- 创建基础架构
- MVP 验证
- 🚀 完整功能
- 工具调用
- MCP 支持
- 与 ACP agents 统一体验
- ❓
claude-code二进制是否公开可用 - ❓ 是否需要特殊许可证
- ❓ 下载地址和版本管理方式
- ❓ 是否有文档说明协议格式
⚠️ JSON 流式解析的复杂性⚠️ 跨平台兼容性(macOS/Linux/Windows)⚠️ 维护成本(非标准协议可能变化)
- Claude Code 不是 ACP - 需要单独的适配层
- 实现可行 - IDEA 已验证,可以参考
- 工作量较大 - 相比 Copilot 的 7 行代码,需要约 5-7 天
- 建议优先级:
- ✅ 高优先级:Copilot(已完成)
- ⏳ 中优先级:Claude Code(如果二进制可用)
- ⏳ 低优先级:其他 ACP agents(Claude CLI、Codex 等)
下一步行动:需要先确认 claude-code 二进制的可用性和获取方式。