菜单
复制这段 Prompt,发给你正在使用的 AI 助手。
Follow https://skillsmp.com/skill-install/prompt.md to install Agent Skills from https://github.com/Leavesfly/Jimi.
正在加载仓库 README…
已展示 9 / 9 个已收集 Skill。
Maven 构建故障排查专家,擅长解决依赖冲突、编译错误、插件配置问题
示例技能,用于 PluginRegistry 测试
代码质量综合技能包(代码审查 + 单元测试)
RESTful API design best practices and conventions guide
原文语言:英语
数据库设计规范与优化指南
Git 提交规范(Conventional Commits)
Java 编码最佳实践与设计模式
原文语言:无法判定
代码审查最佳实践指南
Java单元测试编写指南(基于JUnit和Mockito)
仓库 README 来源:README.md
# Jimi - 打造Java程序员专属的ClaudeCode > 纯Java实现的AI驱动智能代理系统,为Java开发者提供类ClaudeCode体验的开源CLI工具 [](https://www.oracle.com/java/) [](https://spring.io/projects/spring-boot) [](LICENSE) ## 📋 目录 - [核心特性](#-核心特性) - [Loop Engineering](#-loop-engineering) - [快速开始](#-快速开始) - [系统架构](#-系统架构) - [使用指南](#-使用指南) - [扩展开发](#-扩展开发) - [插件系统](#-插件系统) - [文档资源](#-文档资源) ## ✨ 核心特性 ### 🤖 多Agent智能协作 内置6个专业Agent覆盖开发全流程: | Agent | 职责 | |-------|------| | **Default** | 通用开发助手 | | **Architect** | 架构设计 | | **Code** | 编码实现 | | **Quality** | 代码质量与审查 | | **Doc** | 文档编写 | | **DevOps** | 部署运维 | - 异步子代理:后台任务不阻塞主对话 - 动态切换:智能委派最合适的Agent - YAML配置:无需编码自定义Agent ### 🧩 Skills技能包 内置6个开发技能包,领域知识模块化管理: | 技能包 | 功能 | |-------|------| | api-design | API设计规范 | | code-quality-suite | 代码质量套件 | | database-design | 数据库设计 | | git-commit-guide | Git提交规范 | | java-best-practices | Java最佳实践 | | unit-testing | 单元测试 | 关键词自动激活,按需加载到上下文。 ### 🪝 Hooks自动化系统 事件驱动的工作流自动化: ```yaml name: "auto-format-java" trigger: type: "POST_TOOL_CALL" tools: ["WriteFile"] file_patterns: ["*.java"] execution: type: "script" script: "google-java-format -i ${MODIFIED_FILES}" ``` 支持 **15 种 Hook 事件**(对齐 Claude Code 9 种 + Jimi 扩展 3 种 + Agent Teams 扩展 3 种),覆盖工具调用前后、Agent 切换、会话开始/结束、错误处理等多种触发时机。[详细文档](docs/HOOKS.md) ### ⚡ 自定义命令 YAML配置即可扩展命令: ```yaml name: "quick-build" aliases: ["qb"] execution: type: "script" script: "mvn clean install" ``` 支持Script、Agent、Composite三种执行类型。[详细文档](docs/CUSTOM_COMMANDS.md) ### 🧠 智能记忆管理 基于ReCAP论文的上下文优化: - 有界活动提示:防止上下文无限增长 - 结构化恢复:父子Agent语义连续 - Token优化:节省30-50% Token消耗 ### 🔌 多模型支持 通过统一的 `ChatProvider` 抽象支持 9 种 Provider:`openai`、`kimi`(Moonshot)、`qwen`(通义千问)、`deepseek`、`claude`、`ollama`、`glm`(智谱)、`minimax`、`cursor`。基于 OpenAI 兼容协议,支持流式响应、Caffeine 缓存、Token 估算与限流。 ### 🌐 MCP协议集成 支持Model Context Protocol,集成外部工具服务(Git、GitHub、Database等)。 ### 🛠️ 丰富工具生态 内置 **15 个原生工具** + MCP 动态工具,覆盖五大类: - **文件操作**(5):`ReadFile`、`WriteFile`、`StrReplaceFile`、`Grep`、`Glob` - **Shell执行**(1):`BashTool` 命令执行、后台任务 - **网络工具**(2):`FetchURL` 网页抓取、`WebSearch` 搜索 - **任务管理**(2):`SubAgent` 同步/异步子代理、`TeamAgent` 团队协作 - **知识与交互**(5):`Memory`、`Skills`、`SetTodoList`、`AskHuman`、`MetaTool` 所有工具基于响应式(Reactor `Mono`)执行,支持并发安全控制与 JSON Schema 自动生成。 ### 📦 插件系统 将 **Skills / Hooks / Commands / MCP / Agents** 五种扩展点打包成统一可分发单元: - **一键安装**:`/plugin install owner/repo` 从 GitHub、URL 或本地目录安装 - **可版本化**:`compatibility.jimi_version` 版本门禁,`VersionRange` 语义化匹配 - **可审计**:`provides` 白名单显式声明对外暴露的扩展项 - **三层作用域**:classpath(内置)< user(用户级)< project(项目级) [详细文档](docs/PLUGIN_DEVELOPMENT.md) ### 🔐 企业级特性 - 审批机制:敏感操作人工审批 - YOLO模式:自动批准所有操作 - 循环控制:防止无限循环 - 会话管理:持久化与断点恢复 - 上下文压缩:智能Token优化 ## 🔄 Loop Engineering > "你不应该再手动 prompt Agent 了,你应该设计循环来自动驱动你的 Agent。" Jimi 完整支持 Loop Engineering 六大原语,从"人手动驱动 Agent"进化为"系统自动驱动 Agent"。 ### /loop — 按间隔重复执行 ```bash # 每 5 分钟检查编译状态并修复错误 /loop 5m 检查项目编译状态,如果有错误就修复 # 每小时扫描并处理 TODO /loop 1h 扫描 src/main 下的 TODO 注释,选择一个完成它 # 控制循环 /loop status # 查看状态 /loop pause # 暂停 /loop resume # 恢复 /loop stop # 停止 ``` ### /goal — 目标驱动迭代 设定可验证的目标条件,Agent 持续工作直到条件满足。**验证者和执行者分离**,避免"自己批改自己作业"。 ```bash # 直到所有测试通过 /goal 所有 src/test 下的单元测试通过且 lint 无警告 # 直到覆盖率达标 /goal 测试覆盖率达到 80% # 复合条件 /goal mvn test 通过且 checkstyle 无违规且覆盖率 > 80% ``` 安全限制:最大 50 步迭代、60 分钟超时、50 万 token 预算(均可配置)。 ### Git Worktree 并行隔离 多 Agent 并行工作时,通过 Git Worktree 实现文件系统级隔离,避免冲突: ```yaml # Agent 配置中启用 worktree 隔离 team: teammates: - teammate_id: dev-auth agent_path: agents/developer isolation: worktree # 独立 worktree - teammate_id: reviewer agent_path: agents/reviewer isolation: shared # 共享主目录 ``` ### Loop 状态持久化 Loop 的进度自动写入 `.jimi/progress.md`,Agent 上下文被压缩或重置后仍可恢复进度。 ### 六大原语支持矩阵 | 原语 | Jimi 实现 | 说明 | |------|----------|------| | **Automations** | Hooks + `/loop` + `/goal` | 事件驱动 + 定时调度 + 目标迭代 | | **Worktrees** | WorktreeManager + SubAgent | 文件系统级 + 上下文级隔离 | | **Skills** | SkillRegistry + SKILL.md | 渐进式披露、依赖声明、自动激活 | | **Connectors** | MCP (STDIO/HTTP) + Plugin | 连接 GitHub/Linear/Slack/DB | | **Sub-agents** | SubAgentTool + TeamAgentTool | Maker/Checker 分离、团队协作 | | **State** | MEMORY.md + Session + progress.md | 三层记忆 + 状态文件持久化 | [详细文档](docs/LOOP_ENGINEERING.md) ## 🎯 快速开始 ### 环境要求 - Java 17+ - Maven 3.6+ - macOS / Linux / Windows ### 快速安装 ```bash git clone https://github.com/leavesfly/Jimi.git cd Jimi ./scripts/quick-install.sh ``` ### 分步安装 ```bash # 1. 检查环境 ./scripts/check-env.sh # 2. 构建项目 ./scripts/build.sh # 3. 初始化配置 ./scripts/init-config.sh # 4. 启动Jimi ./scripts/start.sh # 指定Agent启动 ./scripts/start.sh --agent architect # YOLO模式(自动批准所有操作) ./scripts/start.sh --yolo ``` ### 命令行参数 `CliApplication`(基于 Picocli)支持以下选项: | 参数 | 说明 | |------|------| | `-w, --work-dir <path>` | 指定工作目录(默认当前目录) | | `-m, --model <name>` | 覆盖使用的模型(优先级高于 Agent 与全局配置) | | `-C, --continue` | 继续上次会话(按工作目录恢复 `lastSessionId`) | | `-y, --yolo, --yes` | YOLO 模式:自动批准所有工具调用(慎用) | | `--agent-file <path>` | 指定自定义 Agent 规范文件(YAML) | | `--mcp-config-file <path>` | 额外加载 MCP 服务配置(可重复指定) | | `-c, --command <text>` | 非交互式:执行单条命令后退出(脚本友好) | | `--verbose` | 打印详细启动信息 | | `--debug` | 启用调试日志(LLM 请求/响应、工具调用) | ### 常用命令 | 命令 | 说明 | |------|------| | `/help` | 帮助信息 | | `/status` | 系统状态 | | `/tools` | 工具列表 | | `/agents` | Agent列表 | | `/switch <agent>` | 切换当前 Agent | | `/skills` | 技能包列表 | | `/hooks list` | Hooks列表 | | `/plugin list` | 插件列表 | | `/async list` | 异步任务 | | `/memory` | 记忆管理 | | `/loop` | Loop 循环调度 | | `/goal` | 目标驱动迭代 | | `/reset` | 清除上下文 | | `/config` | 查看配置 | | `/version` | 版本信息 | ## 🏛️ 系统架构 ```mermaid graph TB subgraph 用户交互层 CLI[CLI命令行] end subgraph 核心引擎层 Engine[JimiEngine] Executor[AgentExecutor] Memory[ReCAP记忆] Approval[审批机制] end subgraph Agent系统 AgentRegistry[Agent注册表] MultiAgents[专业Agent] AsyncMgr[异步子代理] end subgraph 知识增强层 Skills[Skills系统] Wiki[知识Wiki] end subgraph 自动化与扩展层 Hooks[Hooks系统] Commands[自定义命令] Plugins[插件系统] end subgraph 工具系统 ToolRegistry[工具注册表] FileTools[文件工具] MCPTools[MCP工具] end subgraph LLM层 LLMFactory[LLM工厂] Providers[多提供商] end CLI --> Engine Engine --> Executor Engine --> Memory Engine --> Approval Executor --> AgentRegistry Executor --> ToolRegistry Executor --> LLMFactory AgentRegistry --> MultiAgents AgentRegistry --> AsyncMgr Executor --> Skills Engine --> Hooks CLI --> Commands Engine --> Plugins Plugins --> Skills Plugins --> Hooks Plugins --> Commands ToolRegistry --> FileTools ToolRegistry --> MCPTools LLMFactory --> Providers ``` ### 技术栈 | 类别 | 技术 | |------|------| | **核心框架** | Spring Boot 3.2.10, WebFlux + Reactor Netty | | **命令行** | Picocli 4.7.6, JLine 3.25.1 | | **数据处理** | Jackson 2.17.0, SnakeYAML 2.2 | | **代码分析** | JavaParser + symbol-solver 3.26.4 | | **协议集成** | MCP SDK 0.12.1 | | **进程/文本** | Commons Exec 1.4.0, Commons Text 1.11.0, Jsoup 1.17.2 | | **缓存** | Caffeine 3.2.0 | ## 📚 使用指南 ### 配置 LLM Jimi 的配置文件位于 **`~/.jimi/config.yml`**(YAML 格式,注意后缀是 `.yml`)。首次使用建议将内置默认配置 `src/main/resources/.jimi/config.yml` 拷贝到 `~/.jimi/config.yml`,再按需修改 `api_key`。 一份最小可用配置示例: ```yaml # 默认模型(必须在 models 中已定义) default_model: qwen3-max providers: qwen: type: qwen # ProviderType 枚举之一 base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 api_key: sk-xxxxxxxxxxxxxxxx rate_limit: # 可选:限流 window_ms: 4000 max_requests: 4 sleep_ms: 3000 models: qwen3-max: provider: qwen # 对应 providers 的某个 key model: qwen3-max # 发给 LLM API 的真实模型名 max_context_size: 200000 # 上下文窗口(Token) ``` `type` 支持:`kimi` / `deepseek` / `qwen` / `ollama` / `openai` / `claude` / `cursor` / `glm` / `minimax`。 ### Agent使用 ```bash # 切换Agent /switch architect # 查看Agent列表 /agents # 使用指定Agent启动 ./scripts/start.sh --agent code ``` 自定义Agent:在`~/.jimi/agents/`目录下创建`agent.yaml`和`system_prompt.md`文件。 ### Hooks自动化 在`~/.jimi/hooks/`目录下创建YAML配置文件: ```yaml name: "auto-test" trigger: type: "POST_TOOL_CALL" tools: ["WriteFile"] file_patterns: ["*Test.java"] execution: type: "script" script: "mvn test -Dtest=${MODIFIED_FILE%.*}" ``` [详细文档](docs/HOOKS.md) ### 自定义命令 在`~/.jimi/commands/`创建YAML配置: ```yaml name: "quick-build" aliases: ["qb"] execution: type: "script" script: "mvn clean install" ``` [详细文档](docs/CUSTOM_COMMANDS.md) ### 异步任务 ```bash # 查看异步任务 /async list # 查看状态 /async status <task_id> # 取消任务 /async cancel <task_id> ``` ## 📦 插件系统 插件将 **Skills / Hooks / Commands / MCP / Agents** 五种扩展点打包成一个有版本号、有清单、可整体安装/卸载/升级的分发单元。 ### 安装与管理 ```bash # 从 GitHub 安装(支持 owner/repo#branch) /plugin install leavesfly/java-dev-kit # 从本地目录或 ZIP 安装 /plugin install ./my-plugin /plugin install ./my-plugin.zip # 列表 / 详情 / 启用 / 禁用 / 卸载 /plugin list /plugin info <name> /plugin enable <name> /plugin disable <name> /plugin uninstall <name> ``` ### 插件清单 plugin.yaml ```yaml name: java-dev-kit version: 1.0.0 description: Java 开发全家桶 compatibility: jimi_version: ">=0.1.0" # 版本门禁(VersionRange 语义匹配) provides: # 对外暴露的扩展项白名单 skills: ["java-best-practices"] hooks: ["auto-format-java"] commands: ["quick-build"] defaults: modules: # 模块级开关,支持灰度启用 skills: true hooks: true ``` 插件遵循 **classpath(内置)< user(`~/.jimi/plugins/`)< project(`<project>/.jimi/plugins/`)** 三层作用域,同名后加载覆盖。[详细文档](docs/PLUGIN_DEVELOPMENT.md) ## 🛠️ 扩展开发 ### 自定义工具 ```java @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("结果")); } } ``` ### 自定义Agent 在`~/.jimi/agents/my-agent/`创建配置文件: **agent.yaml** ```yaml name: My Agent model: qwen3-max # 对应 config.yml 中 models 已定义的模型名(留空则用 default_model) tools: - ReadFile - WriteFile - my_tool ``` **system_prompt.md** ```markdown 你是一个专业的开发助手... ``` ### 自定义Skill 在`~/.jimi/skills/<name>/`创建`SKILL.md`(Markdown + YAML Front Matter),按触发词自动激活并注入 system prompt: ```markdown --- name: java-best-practices description: Java 编码最佳实践 triggers: ["最佳实践", "代码规范", "重构"] --- # Java 最佳实践 - 优先使用不可变对象... ``` ### 自定义命令 在`~/.jimi/commands/`创建YAML配置,支持四种执行类型: - **script**: 执行Shell脚本 - **agent**: 调用Agent执行 - **composite**: 组合多个命令 - **prompt**: 固定 prompt 模板 > 提示:单个小能力用上述扩展点;当扩展项超过 2 个或需要团队共享,建议升级为 [插件](#-插件系统) 统一分发。 ### 用户视角文档(docs/) | 文档 | 说明 | |------|------| | [用户使用指南](用户使用指南.md) | 完整用户手册 | | [HOOKS](docs/HOOKS.md) | Hooks系统指南 | | [自定义命令](docs/CUSTOM_COMMANDS.md) | 命令扩展指南 | | [插件开发](docs/PLUGIN_DEVELOPMENT.md) | 插件开发手册 | | [Loop Engineering](docs/LOOP_ENGINEERING.md) | Loop 循环工程指南 | | [技术架构](docs/TECHNICAL_ARCHITECTURE.md) | 系统架构详解 | | [架构总览](docs/ARCHITECTURE_OVERVIEW.md) | 架构概览 | ### 开发者视角文档(wiki/) 深入源码、用于理解机制、定位代码与二次扩展,详见 **[Wiki 首页](wiki/Home.md)**: | Wiki | 主题 | |------|------| | [01 · 项目概述与快速开始](wiki/01-项目概述与快速开始.md) | 项目定位、技术栈、上手 | | [02 · 系统架构与核心引擎](wiki/02-系统架构与核心引擎.md) | JimiEngine / AgentExecutor / ReactLoop | | [03 · Agent 多智能体系统](wiki/03-Agent多智能体系统.md) | Agent、AgentRegistry、异步 Subagent、Team | | [04 · 工具系统与 ToolRegistry](wiki/04-工具系统与ToolRegistry.md) | Tool SPI、15 个内置工具、MCP 动态工具 | | [05 · LLM 接入层与多模型支持](wiki/05-LLM接入层与多模型支持.md) | ChatProvider、流式、缓存、限流 | | [06 · Skills 技能包系统](wiki/06-Skills技能包系统.md) | 技能包规范、触发词、渐进式披露 | | [07 · Hooks 自动化系统](wiki/07-Hooks自动化系统.md) | 15 种 Hook 事件、触发器与执行器 | | [09 · 自定义命令与 CLI 交互](wiki/09-自定义命令与CLI交互.md) | 元命令、4 种执行类型、JLine Shell | | [10 · 记忆管理与会话机制](wiki/10-记忆管理与会话机制.md) | 三层记忆、ReCAP 压缩、审批与 YOLO | | [11 · MCP 协议集成](wiki/11-MCP协议集成.md) | MCP 客户端、stdio/http 传输 | | [12 · 扩展开发指南](wiki/12-扩展开发指南.md) | 自定义 Tool/Agent/Skill/Hook/Command | | [13 · 插件系统与扩展分发](wiki/13-插件系统与扩展分发.md) | PluginRegistry、安装器、版本范围 | ## 🤝 贡献指南 欢迎贡献! ```bash # 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](LICENSE) 许可证。 --- <div align="center"> **[⬆ 回到顶部](#jimi---打造java程序员专属的claudecode)** Made with ❤️ by [Leavesfly](https://github.com/leavesfly) </div>