为eclipse开发一个类似于claude code 的开发代理
现有插件支持模型核心功能参考价值DeepSeek、OpenAI、Gemini、Ollama等AI代码补全、聊天窗口、函数调用工具已支持DeepSeek,可直接借鉴API集成方式聊天界面、代码辅助、文件感知回答提供了浏览器界面嵌入Eclipse的方案实时代码生成、智能补全、交互式聊天Eclipse AI插件商业化产品的架构参考。
导读:
claude code 那个黑屏实在不怎么样,毕竟程序员主要是和集成开发工具打交道。
而deepseek告诉我 IntelliJ IDEA 免费版 2025.3版本 才支持Jakarta EE(原Java EE),
这一点真的非常意外, IntelliJ IDEA 这么流行,以至于claude code 只有 IntelliJ IDEA ,没有Eclipse插件,说明大家都很有钱。
claude code 提供了IntelliJ IDEA 插件,给 eclipse开发一个类似于claude code 的开发代理应该怎么做?并且早期仅仅支持deepseek (网络版本)和vLLM本地部署的deepseek.
为 Eclipse 开发一个类似于 Claude Code 的开发代理是一个很有挑战性但也非常有价值的项目。考虑到你明确要求早期仅支持 DeepSeek(网络版和 vLLM 本地部署版),我们可以基于现有的开源项目和 Eclipse 插件开发框架来构建。
🎯 项目概述与可行性
从搜索结果来看,Eclipse 平台上已经存在多个类似的 AI 辅助插件,这证明技术上是完全可行的:
| 现有插件 | 支持模型 | 核心功能 | 参考价值 |
|---|---|---|---|
| Code Intelligence | DeepSeek、OpenAI、Gemini、Ollama等 | AI代码补全、聊天窗口、函数调用工具 | 已支持DeepSeek,可直接借鉴API集成方式 |
| Chatbot Assistant | DeepSeek、OpenRouter | 聊天界面、代码辅助、文件感知回答 | 提供了浏览器界面嵌入Eclipse的方案 |
| Copilot4Eclipse | GitHub Copilot | 实时代码生成、智能补全、交互式聊天 | Eclipse AI插件商业化产品的架构参考 |
🏗️ 技术架构设计
1. 插件核心架构
基于 Claude Code for IntelliJ 的实现思路 ,建议采用以下分层架构:
text
┌─────────────────────────────────────┐ │ Eclipse UI 扩展层 │ │ ├── 视图(View)部分 │ │ ├── 编辑器菜单/工具栏扩展 │ │ └── 快捷键绑定 │ ├─────────────────────────────────────┤ │ 业务逻辑层 │ │ ├── 对话管理模块 │ │ ├── 代码上下文提取 │ │ ├── 工具调用(文件读写、命令执行等) │ │ └── 模型API适配层 │ ├─────────────────────────────────────┤ │ 模型集成层 │ │ ├── DeepSeek 网络API客户端 │ │ └── vLLM 本地API客户端 │ └─────────────────────────────────────┘
2. 关键技术点
(1)UI 实现方案
Eclipse 的 UI 扩展主要有两种方式:
-
原生 SWT/JFace 实现:性能最好,与 IDE 集成度最高,但开发复杂
-
嵌入式浏览器实现:参考 Chatbot Assistant 的做法,用 HTML/JS 构建对话界面,通过 Eclipse 的浏览器组件(Browser widget)嵌入。这种方式开发效率高,UI 美观,便于复用 Claude Code 的界面设计思路。
(2)代码上下文获取
类似 Claude Code 的深度上下文理解能力 ,需要实现:
-
当前编辑器的选中代码或整个文件内容提取
-
项目文件结构扫描(通过 Eclipse 的 IResource API)
-
Java 元素解析(通过 JDT AST,可参考 Code Intelligence 的做法 )
(3)工具调用机制
Claude Code 的核心优势之一是工具使用能力(Tool Use)。需要实现:
-
文件读写操作(通过 Eclipse 的 IFile API)
-
终端命令执行(通过 ProcessBuilder,需注意权限控制)
-
代码搜索(通过 Eclipse 的搜索 API 或简单的 Grep)
🔌 DeepSeek 模型集成
1. DeepSeek 网络版集成
参考 Code Intelligence 的实现方式 ,网络版 DeepSeek 集成相对简单:
java
public class DeepSeekApiClient {
private static final String API_URL = "https://api.deepseek.com/v1/chat/completions";
private String apiKey;
public CompletableFuture<String> sendMessage(String prompt, String context) {
// 构建请求体
Map<String, Object> requestBody = new HashMap<>();
requestBody.put("model", "deepseek-chat");
requestBody.put("messages", Arrays.asList(
new Message("system", "你是一个编程助手..."),
new Message("user", prompt + "\n\n上下文:" + context)
));
// 发送HTTP请求
// 处理流式响应
}
}
2. vLLM 本地部署版集成
vLLM 部署的 DeepSeek 提供 OpenAI 兼容的 API 接口 ,集成方式与网络版类似,只需修改 endpoint:
java
public class VLLMClient {
private String baseUrl = "http://localhost:8000/v1"; // vLLM默认端口
public void setEndpoint(String url) {
this.baseUrl = url;
}
// 其他方法与网络版类似,但可能支持更多本地特有功能
}
3. 配置管理
需要提供灵活的配置界面,让用户选择:
-
模型类型:DeepSeek 网络版 / vLLM 本地版
-
API Key 输入(网络版)
-
本地服务地址配置(vLLM)
-
模型参数(温度、最大token等)
🛠️ 开发工具链
1. 开发环境搭建
基于 Eclipse 插件开发的最佳实践 :
xml
<!-- 使用 Tycho 构建,pom.xml 配置 -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.9</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-Version>${project.version}</Bundle-Version>
<Import-Package>*</Import-Package>
<Export-Package>com.yourplugin.api.*</Export-Package>
</instructions>
</configuration>
</plugin>
2. 核心依赖
xml
<dependencies>
<!-- Eclipse PDE 依赖 -->
<dependency>
<groupId>org.eclipse.core</groupId>
<artifactId>org.eclipse.core.resources</artifactId>
<version>3.13.1000</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
<version>3.26.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.ui</groupId>
<artifactId>org.eclipse.ui.workbench</artifactId>
<version>3.122.0</version>
</dependency>
<!-- HTTP 客户端 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency>
<!-- JSON 处理 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
</dependencies>
3. 插件清单(MANIFEST.MF)配置
properties
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: DeepSeek Coding Assistant Bundle-SymbolicName: com.yourplugin.deepseek;singleton:=true Bundle-Version: 1.0.0.qualifier Bundle-Activator: com.yourplugin.deepseek.Activator Require-Bundle: org.eclipse.ui, org.eclipse.core.resources, org.eclipse.jdt.core, org.eclipse.jdt.ui Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: com.yourplugin.deepseek.api Import-Package: org.apache.http.client.methods, org.apache.http.impl.client, com.google.gson
🚀 开发路线图建议
第一阶段:基础功能(MVP)
-
创建 Eclipse 插件项目,实现基本的视图扩展
-
集成 DeepSeek 网络版 API,实现简单的对话功能
-
实现基本的代码上下文获取(当前文件内容)
-
提供配置页面设置 API Key
第二阶段:增强功能
-
集成 vLLM 本地部署支持
-
实现代码文件读写能力
-
添加多轮对话历史管理
-
优化 UI 体验,支持代码高亮显示
第三阶段:高级特性
-
实现工具调用(命令执行、代码搜索等)
-
支持项目级代码理解(跨文件)
-
添加代码重构和生成功能
-
实现类似 Claude Code 的上下文自动检测
📝 参考示例代码框架
java
// 插件启动类
public class Activator implements BundleActivator {
private static Activator plugin;
private DeepSeekService service;
public void start(BundleContext context) throws Exception {
plugin = this;
service = new DeepSeekService();
// 从配置加载设置
loadConfiguration();
}
// 供其他UI组件调用的服务方法
public static DeepSeekService getService() {
return plugin.service;
}
}
// 对话视图
public class ChatView extends ViewPart {
public static final String ID = "com.yourplugin.deepseek.views.ChatView";
private Browser browser;
private ChatController controller;
@Override
public void createPartControl(Composite parent) {
browser = new Browser(parent, SWT.NONE);
browser.setUrl("platform:/plugin/your.plugin/html/chat.html");
// 注册Java调用JS的桥梁
browser.addBrowserListener(new BrowserFunction(browser, "javaHandler") {
@Override
public Object function(Object[] arguments) {
return controller.handleJsMessage(arguments);
}
});
}
}
这个开发计划参考了现有 Eclipse AI 插件的成功经验 ,同时借鉴了 Claude Code 的功能设计理念 。初期专注于 DeepSeek 模型集成,后续可以根据需要扩展支持更多模型。
更多推荐



所有评论(0)