基于 GLM-5.1 · 零 Agent 框架依赖

你的终端里 住着一位全栈 AI 工程师

CodingCLI 是一款从底层手写的命令行智能编程助手。ReAct 智能体、多 Agent 协作、 代码语义检索、分层记忆、原生 Skills 技能系统、MCP 协议扩展——全部独立实现,拒绝黑盒框架。

CodingCLI — 智能编程助手
$ java -jar cli.jar
[启动] 正在连接 MCP 服务器...
[McpManager] 服务器 'filesystem' 注册了 5 个工具
[McpManager] 初始化完成,共 1 个服务器,5 个 MCP 工具
 
>

不止是问答,是真正的 AI 工程师

八大核心模块独立实现,零依赖第三方 Agent 框架,每一行代码都清晰可控

ReAct 智能体 + 流式输出
完整的推理→工具调用→结果回填→再推理循环,最多 10 轮迭代。最终回复走 SSE 流式,逐 token 实时打印,彻底消除等待感。4 线程池并发执行多工具调用,内置签名指纹防死循环。
SSE 流式 并发工具执行
🤖
多 Agent 六阶段协作
PLANNER 拆解任务 → Kahn 算法 DAG 拓扑排序 → WORKER×3 批次并行执行 → REVIEWER 质量审查(APPROVED/FEEDBACK/REJECTED)→ 最多 2 次携带反馈重试 → 汇总报告。
DAG 拓扑排序 质量审查
🗂
Plan-and-Execute 规划执行
LLM 将复杂目标拆解为含类型标注和依赖关系的结构化 JSON 子任务图,按拓扑顺序逐步执行,每个子任务独立运行 ReAct 循环,最终输出完整执行报告。
DFS 拓扑排序 子任务独立执行
🧠
分层记忆 + Map-Reduce 压缩
短期记忆(20 万 Token,LRU 淘汰)+ 长期记忆(JSON 持久化)双轨架构。使用率超 80% 时触发 Map-Reduce 压缩:CompletableFuture 并发分片摘要,再汇聚为 200 字全局摘要落盘。
Map-Reduce 持久化记忆
🔍
代码语义 RAG 检索
JavaParser AST 三粒度分块(文件/类/方法),GLM embedding-3 生成 768 维向量存 SQLite。混合检索:余弦语义相似度 + 结巴分词关键词检索,双重命中加权精排,同步构建代码关系图谱。
768 维向量 关系图谱
🔌
MCP 协议接入(纯原生 Java)
零额外 Maven 依赖实现完整 MCP 客户端。stdio 模式:子进程 + CompletableFuture 异步分发;HTTP 模式:JDK 原生 HttpURLConnection。MCP 工具与本地工具统一路由,模型调用时完全透明。
stdio / HTTP JSON-RPC 2.0
🛡
人工审批介入(HITL)
工具声明危险等级(SAFE/HIGH)。高危操作前终端弹出彩色确认框,阻塞等待 y/n 输入。拒绝时返回字符串而非抛出异常——让模型感知拒绝结果并自主调整策略,对话不中断。
DangerLevel.HIGH AUTO_APPROVE
原生 Skills 技能系统
内置 10+ 原子级 Skill(代码生成、重构、单测、调试等),AI 根据上下文自动编排调用。支持用 Markdown 自定义 Skill,放入 skills/ 目录热加载,无限扩展 AI 能力边界。
自动编排 自定义扩展

内置技能系统,开箱即用

内置技能系统,开箱即用 — 每个 Skill 都是独立可调用的原子能力,AI 根据上下文自动选择、组合编排。同时支持自定义 Skills,用 Markdown 编写即可扩展 AI 能力边界

📝
Code Generation
根据自然语言描述生成完整代码文件,支持 Java、Python、JS/TS 等多语言。自动推断包结构、导入依赖、遵循项目代码风格。
多语言 风格推断
🔧
Code Refactoring
智能重构:提取方法、内联变量、重命名符号、拆分/合并类。基于 AST 精确分析,保证重构后语义完全一致,不破坏调用链。
AST 感知 语义保持
🐛
Debug & Fix
粘贴报错堆栈或描述异常现象,AI 自动定位根因、分析调用链路、生成修复补丁。支持编译错误、运行时异常、逻辑 Bug 全场景覆盖。
根因分析 自动补丁
🧪
Unit Test Generation
为任意方法/类自动生成单元测试,覆盖正常路径、边界条件、异常分支。支持 JUnit 5、Mockito、pytest、Jest 等主流测试框架。
边界覆盖 多框架
📖
Code Explanation
逐行/逐块解读代码逻辑,生成中文注释或独立说明文档。支持复杂算法、业务逻辑、框架机制的深度解析,降低代码理解成本。
中文解读 深度解析
🏗
Project Scaffolding
一句话生成项目骨架:Spring Boot 微服务、React 前端、Maven 多模块等。自动创建目录结构、配置文件、基础 CRUD 代码。
脚手架 一键生成
🔀
Git Workflow
智能 Git 操作:分析 diff 生成 commit message、创建分支、解决合并冲突、生成 PR 描述。遵循 Conventional Commits 规范。
智能 Commit 冲突解决
📊
SQL & Database
根据需求生成建表语句、索引优化建议、复杂查询 SQL。支持 MySQL、PostgreSQL、Oracle 等方言,自动识别实体关系生成 ER 图描述。
多方言 ER 建模
🌐
API Design
根据业务描述自动生成 RESTful API 设计:Controller → Service → Mapper 全链路代码,同步生成 OpenAPI 文档和前端请求方法。
全链路 OpenAPI
自定义 Skills
用 Markdown 编写自定义 Skill 文件,放入 skills/ 目录即可热加载。定义触发词、提示词模板、工具链编排,让 AI 掌握你的专属工作流。
Markdown 编写 热加载

Skill 自动编排演示 — AI 根据意图自主选择并组合 Skills

Skills Auto-Orchestration
> 帮 OrderService 的 createOrder 方法加上单元测试
🔍 [Skill: Code Reading] 分析 createOrder 方法逻辑...
📊 识别到 3 个分支路径、2 次 RPC 调用、1 个事务边界
🧪 [Skill: Unit Test Gen] 生成测试用例...
✅ 正常路径: testCreateOrder_success
✅ 库存不足: testCreateOrder_insufficientStock
✅ RPC超时: testCreateOrder_rpcTimeout
📝 [Skill: Code Fix] 发现原方法空指针风险,建议修复
[GLM]: 已生成 3 个测试用例,覆盖全部路径。另外发现 createOrder 第 47 行...

三步跑起来

JRE 17+ 即可运行,无需安装其他依赖

1

📥 下载 JAR 并准备目录

# 创建工作目录
mkdir coding-cli && cd coding-cli

# 把下载的 cli.jar 放进来
ls
cli.jar

需要 JRE 17+,可通过 java -version 确认

2

⚙️ 创建 .env 配置文件

# 在 cli.jar 同一目录下创建 .env
touch .env

# 填入以下内容
GLM_KEY=你的智谱API密钥

# 可选:高危工具自动审批开关
# true=自动批准(开发环境) false=手动确认(默认)
AUTO_APPROVE=false

GLM API Key 在 open.bigmodel.cn 注册后获取

3

🚀 启动!

# 在包含 .env 和 cli.jar 的目录下运行
java -jar cli.jar

# 看到如下输出则表示成功
[启动] 正在连接 MCP 服务器...
[McpManager] 未发现任何 MCP 服务器配置

> 你好,帮我分析一下这个项目的结构
[GLM]: 好的,我来帮您分析...▌
4

📂 完整目录结构

coding-cli/
├── cli.jar          # 主程序
├── .env             # 必需:API 密钥配置
├── mcp.json         # 可选:MCP 服务器配置
├── skills/          # 可选:自定义 Skills 目录
│   └── my-skill.md  # Markdown 格式的自定义技能
├── history.txt      # 自动生成:命令历史
└── memory/
    └── long_term_memory.json  # 自动生成:长期记忆

⚙️ .env 配置项说明

配置项 必填 默认值 说明
GLM_KEY 必填 智谱 AI 开放平台 API Key,用于调用 GLM-5.1 和 embedding-3 模型
AUTO_APPROVE 可选 false true = 自动批准所有高危工具(write_file / execute_command),适合开发环境;false = 每次弹出确认框

八种工作模式,一个终端搞定

无需记复杂语法,输入 /help 随时查看帮助

直接输入
Agent 对话
带长期记忆的 ReAct 对话,支持工具调用与流式输出。每轮对话自动归档至记忆系统。
/plan <目标>
规划执行
LLM 将目标拆解为 JSON 子任务图,按拓扑顺序逐步执行,输出带状态的格式化报告。
/team <任务>
多 Agent
PLANNER → WORKER×3 → REVIEWER 六阶段流水线,带质量审查与自动重试。
/index
RAG 索引
扫描当前目录代码库,AST 分块后生成向量存入 SQLite,同步构建代码关系图谱。
/get <查询>
语义检索
混合检索(语义向量 + 关键词)精准定位最相关的代码块,返回文件路径和代码片段。
/sy  /ly
记忆查看
/sy 查看短期工作内存(当前轮次热数据);/ly 查看长期持久化记忆(历史摘要)。
/mcp
MCP 状态
查看当前已连接的 MCP 服务器列表及每个服务器注册的工具(含 mcp_ 前缀名称)。
/skills
Skills 管理
查看已加载的内置 Skills 与自定义 Skills 列表,支持 /skills create 创建新技能、/skills reload 热重载。
/exit
退出
优雅退出:关闭线程池、断开所有 MCP 连接、刷新长期记忆后安全退出。

接入任意 MCP 服务器,能力无限扩展

纯原生 Java 实现 JSON-RPC 2.0,零额外 Maven 依赖,支持 stdio 子进程与 HTTP 两种传输模式

配置方式

cli.jar 同目录下创建 mcp.json,启动时自动加载并注册所有工具。

MCP 工具以 mcp_<服务器名>_<工具名> 格式注册到工具表,模型可直接调用,与内置工具完全透明互通。

stdio 模式本地子进程,CompletableFuture 异步分发,30s 超时保护
HTTP 模式远端服务,JDK HttpURLConnection,连接 10s / 读取 30s

mcp.json 示例

{
  "mcpServers": {
    // stdio 模式:启动本地子进程
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
      "disabled": false
    },

    // HTTP 模式:连接远端 MCP 服务
    "my-api": {
      "url": "http://localhost:9000/mcp",
      "disabled": false
    },

    // 携带环境变量
    "my-tool": {
      "command": "python",
      "args": ["server.py"],
      "env": { "API_KEY": "xxx" }
    }
  }
}

工作目录 mcp.json中加载的同名服务器覆盖先加载的

接入 filesystem MCP 后,AI 自动获得文件系统能力

MCP 工具调用演示
> 帮我列出 /tmp 目录下的文件
[worker-1/执行者] 调用工具: mcp_filesystem_list_directory
参数: {"path":"/tmp"}
[mcp_filesystem_list_directory 结果]
- file1.txt (1.2KB)
- backup.tar.gz (45MB)
- script.sh (320B)
[GLM]: /tmp 目录下共有 3 个文件:file1.txt、backup.tar.gz 和 script.sh...

AI 操作有边界,危险操作必须你说了算

执行写文件、运行命令等高危操作前,系统强制等待你的确认,AI 感知拒绝后自主调整策略

当 AI 尝试执行 write_fileexecute_command 时:
╔══════════════════════════════════════════════════════╗
║  ⚠️  高危操作确认                                    ║
╠══════════════════════════════════════════════════════╣
║  工具名称: write_file                                ║
║  危险等级: HIGH — 此操作可能不可逆                   ║
║  操作参数:                                           ║
║    {"path":"src/Main.java","content":"..."}          ║
╚══════════════════════════════════════════════════════╝
 是否允许执行此操作?[y/n] > 

# 输入 y → ✅ 已批准,继续执行
# 输入 n → ❌ 操作已取消,AI 自动调整后续策略
# AUTO_APPROVE=true → 自动放行,不弹确认框

精选工具,零黑盒依赖

每一个组件都有明确的职责,没有"魔法",没有框架锁定

Java 17
Spring Boot 4
GLM-5.1
embedding-3(768 维)
OkHttp 4(SSE 流式)
Jackson Databind
JavaParser AST
SQLite(本地向量存储)
jtokkit O200K_BASE
JLine 3(终端交互)
Jieba 中文分词
MCP JSON-RPC 2.0
Logback(精细日志控制)

立即体验
你的 AI 编程搭档

下载 JAR,配置 GLM Key,三分钟内启动你的智能编程助手。JRE 17+ 即可运行,无需安装任何其他依赖。

⬇ 下载 cli.jar 📖 查看安装指南
8
核心功能模块
10+
内置 Skills
0
Agent 框架依赖
200k
Token 记忆窗口