纯Java实现的AI驱动智能代理系统,为Java开发者提供类ClaudeCode体验的开源CLI工具
- CLI命令行 - 轻量级终端交互,适合快速开发
- JWork桌面应用 - OpenWork风格的JavaFX GUI,可视化AI协作台
- IntelliJ插件 - IDE内直接集成,无缝开发体验
内置10+专业Agent覆盖开发全流程:
| Agent | 职责 |
|---|---|
| Default | 通用开发助手 |
| Design | 架构设计 |
| Code | 编码实现 |
| Review | 代码审查 |
| Test | 测试工程 |
| Debug | 错误诊断 |
| Doc | 文档编写 |
| DevOps | 部署运维 |
- 异步子代理:后台任务不阻塞主对话
- 动态切换:智能委派最合适的Agent
- YAML配置:无需编码自定义Agent
事件驱动的工作流自动化:
name: "auto-format-java"
trigger:
type: "POST_TOOL_CALL"
tools: ["WriteFile"]
file_patterns: ["*.java"]
execution:
type: "script"
script: "google-java-format -i ${MODIFIED_FILES}"支持工具调用、Agent切换、错误处理等多种触发时机。详细文档
基于AST的代码理解与导航:
- AST解析:Java代码结构化分析
- 混合检索:图检索 + 向量检索
- 影响分析:代码修改影响范围评估
- 智能定位:自然语言快速定位代码
YAML配置即可扩展命令:
name: "quick-build"
aliases: ["qb"]
execution:
type: "script"
script: "mvn clean install"支持Script、Agent、Composite三种执行类型。详细文档
基于ReCAP论文的上下文优化:
- 有界活动提示:防止上下文无限增长
- 结构化恢复:父子Agent语义连续
- Token优化:节省30-50% Token消耗
领域知识模块化管理,关键词自动激活。详细文档
本地向量索引,自动检索相关代码注入上下文。详细文档
支持OpenAI、Moonshot、Qwen、DeepSeek、Claude、Ollama等主流LLM。
支持Model Context Protocol,集成外部工具服务(Git、GitHub、Database等)。
- 文件操作:读写、搜索、补丁
- Shell执行:命令执行、后台任务
- 网络工具:网页抓取、搜索
- 任务管理:同步/异步子Agent、待办事项
- 人机交互:AskHuman暂停等待输入
- 代码图谱:智能定位、影响分析
- 审批机制:敏感操作人工审批
- YOLO模式:自动批准所有操作
- 循环控制:防止无限循环
- 会话管理:持久化与断点恢复
- 上下文压缩:智能Token优化
可视化的AI协作台,提供丰富的图形界面:
- 工作区选择与管理
- 会话管理与流式输出
- 执行计划时间线
- Skills管理器
- Markdown渲染支持
- 本地嵌入/远程连接模式
# 启动JWork
cd jwork
mvn javafx:run- Java 17+
- Maven 3.6+
- macOS / Linux / Windows
git clone https://github.com/leavesfly/Jimi.git
cd Jimi
./scripts/quick-install.sh# 构建并运行
cd jwork
mvn clean install
mvn javafx:run
# 或者使用打包后的jar
java -jar target/jwork-0.1.0.jar# 1. 检查环境
./scripts/check-env.sh
# 2. 构建项目
./scripts/build.sh
# 3. 初始化配置
./scripts/init-config.sh
# 4. 启动Jimi
./scripts/start.sh
# 指定Agent启动
./scripts/start.sh --agent design
# YOLO模式
./scripts/start.sh --yolo| 命令 | 说明 |
|---|---|
/help |
帮助信息 |
/status |
系统状态 |
/tools |
工具列表 |
/agents |
Agent列表 |
/graph build |
构建代码图 |
/hooks list |
Hooks列表 |
/async list |
异步任务 |
/reset |
清除上下文 |
graph TB
subgraph 用户交互层
CLI[CLI命令行]
IDE[IntelliJ插件]
end
subgraph 核心引擎层
Engine[JimiEngine]
Executor[AgentExecutor]
Memory[ReCAP记忆]
Approval[审批机制]
end
subgraph Agent系统
AgentRegistry[Agent注册表]
MultiAgents[10+ 专业Agent]
AsyncMgr[异步子代理]
end
subgraph 知识增强层
Skills[Skills系统]
Graph[代码图谱]
RAG[向量检索]
end
subgraph 自动化层
Hooks[Hooks系统]
Commands[自定义命令]
end
subgraph 工具系统
ToolRegistry[工具注册表]
FileTools[文件工具]
MCPTools[MCP工具]
GraphTools[图谱工具]
end
subgraph LLM层
LLMFactory[LLM工厂]
Providers[多提供商]
end
CLI --> Engine
IDE --> Engine
Engine --> Executor
Engine --> Memory
Engine --> Approval
Executor --> AgentRegistry
Executor --> ToolRegistry
Executor --> LLMFactory
AgentRegistry --> MultiAgents
AgentRegistry --> AsyncMgr
Executor --> Skills
Executor --> Graph
Executor --> RAG
Engine --> Hooks
CLI --> Commands
ToolRegistry --> FileTools
ToolRegistry --> MCPTools
ToolRegistry --> GraphTools
LLMFactory --> Providers
- 核心框架: Spring Boot 3.2.5, WebFlux
- 命令行: Picocli 4.7.6, JLine 3.25.1
- 数据处理: Jackson 2.16.2, SnakeYAML 2.2
- 代码分析: JavaParser 3.25.5
- 协议集成: MCP SDK 0.12.1
# 切换Agent
/switch design
# 查看Agent列表
/agents
# 构建代码图
/graph build- 选择工作区 - 点击“选择工作区”选择项目目录
- 创建会话 - 选择Agent类型,点击“开始会话”
- AI对话 - 在聊天窗口输入问题,实时查看响应
- 查看执行计划 - 切换到“执行计划”查看Todo列表
- Skills管理 - 在Skills面板管理技能包
# 切换Agent
/switch design
# 查看Agent列表
/agents自定义Agent:在~/.jimi/agents/创建agent.yaml和system_prompt.md。详细文档
在~/.jimi/hooks/目录下创建YAML配置文件:
name: "auto-test"
trigger:
type: "POST_TOOL_CALL"
tools: ["WriteFile"]
file_patterns: ["*Test.java"]
execution:
type: "script"
script: "mvn test -Dtest=${MODIFIED_FILE%.*}"# 构建图谱
/graph build
# 查看统计
/graph stats
# 查询
"找到GraphManager类的定义位置"在~/.jimi/commands/创建YAML配置:
name: "quick-build"
aliases: ["qb"]
execution:
type: "script"
script: "mvn clean install"# 查看异步任务
/async list
# 查看状态
/async status <task_id>
# 取消任务
/async cancel <task_id>@Component
public class MyTool extends AbstractTool<MyTool.Params> {
@Data
public static class Params {
@JsonProperty("input")
private String input;
}
public MyTool() {
super("my_tool", "我的工具", Params.class);
}
@Override
public Mono<ToolResult> execute(Params params) {
return Mono.just(ToolResult.ok("结果"));
}
}在~/.jimi/agents/my-agent/创建agent.yaml和system_prompt.md。
name: My Agent
model: gpt-4
tools:
- read_file
- my_toolcd intellij-plugin
./gradlew buildPlugin
./gradlew runIde- 用户使用指南.md - 完整用户手册
- HOOKS.md - Hooks系统指南
- GRAPH_GUIDE.md - 代码图谱指南
- CUSTOM_COMMANDS.md - 自定义命令
- ReCAP记忆优化技术方案.md - 记忆优化
- async-subagent-design.md - 异步子代理
- TECHNICAL_ARCHITECTURE.md - 技术架构
更多文档查看 docs/ 目录。
欢迎贡献!
# Fork并克隆
git clone https://github.com/your-username/Jimi.git
# 创建分支
git checkout -b feature/my-feature
# 开发和测试
mvn clean test
# 提交更改
git commit -m "feat: add my feature"
# 推送并创建Pull Request
git push origin feature/my-feature- 遵循Java编码规范
- 编写单元测试
- 更新相关文档
- 保持向后兼容
本项目采用 Apache License 2.0 许可证。