一个基于 LangChain4j 的智能编程助手🐕柯基 Code,能实现简易编程功能,复刻 Claude Code确实是我标题党啦......
KejiCode(柯基Code)是一个基于 LangChain4j 框架的简易智能终端编程助手。
下面是整个项目用到的一些技术栈
启动项目
常见命令/help、/model、/version、/params temperature=0.5、/reset等,具体使用方式可参照/help
/help
/model
/version
/params temperature=0.5
/reset
进行第一轮对话,让它写一个"图书管理系统",这里用的模型是 qwen-max
终端输出内容
可以在对应的目录成功的看到图书管理系统的代码
体验一下图书管理系统,简单的增删改查还是实现了呢~
上面看着交互还差一点,让柯基Code给优化下
终端不输出
重新体验图书管理系统
KejiCode 采用经典的四层架构,每层职责清晰、低耦合高内聚
核心组件:TerminalUI
TerminalUI
职责:
/switch
设计亮点:
比喻:这是柯基的"耳朵和嘴巴",负责听指令和说话。
这是整个系统的大脑,协调各个组件工作
核心方法设计:
设计模式应用:
配置管理采用分层配置策略:
配置优先级:命令行参数 > 环境变量 > YAML 配置 > 默认值
设计理由:
路径验证是安全架构的基石,采用沙箱模式
核心算法:
安全保障:
../../../etc/passwd
link-to-/etc
/tmp/malicious.sh
所有工具实现统一的 Tool 接口:
Tool
工具分类:
.java
工具注册机制
工具规范(Tool Specification)设计
这是告诉 AI "工具能做什么" 的关键:
为什么需要详细的描述?
比喻:就像给新员工写岗位说明书
采用抽象工厂模式 + 策略模式
工厂方法实现
对话历史是 AI 的"记忆",设计要点
消息类型:
历史管理策略:
设计考虑:
这一层封装了所有第三方依赖和系统调用:
核心职责:
为什么需要这一层?
比喻:就像建筑的地基,上层不用关心底层细节
优势:
这是 KejiCode 最核心的流程设计
AI 如何决定调用哪些工具?这是一个智能决策过程
决策影响因素:
System Prompt:定义 AI 的行为规范
工具描述:详细说明工具用途和参数
对话历史:上下文决定下一步操作
当工具执行失败时,如何处理?
错误处理策略:
KejiCode 可以帮你简单了解Coding Agent的工作原理,Happy Coding! 🐕💻
代码可以通过关注微信公众号【柯基写代码】回复【柯基Code】获取~
用 Java 复刻 Claude Code:一个终端编程助手的实现
1. 项目概述
KejiCode(柯基Code)是一个基于 LangChain4j 框架的简易智能终端编程助手。
下面是整个项目用到的一些技术栈
2. 功能展示
启动项目
常见命令
/help、/model、/version、/params temperature=0.5、/reset等,具体使用方式可参照/help进行第一轮对话,让它写一个"图书管理系统",这里用的模型是 qwen-max
终端输出内容
可以在对应的目录成功的看到图书管理系统的代码
体验一下图书管理系统,简单的增删改查还是实现了呢~
上面看着交互还差一点,让柯基Code给优化下
终端不输出
重新体验图书管理系统
3. 系统架构设计
3.1 分层架构
KejiCode 采用经典的四层架构,每层职责清晰、低耦合高内聚
3.2 层次职责详解
3.2.1 表现层 (Presentation Layer)
核心组件:
TerminalUI职责:
/help,/switch,/model等)设计亮点:
比喻:这是柯基的"耳朵和嘴巴",负责听指令和说话。
3.2.2 应用层 (Application Layer)
核心组件 1:CodeAssistantAgent
这是整个系统的大脑,协调各个组件工作
核心方法设计:
设计模式应用:
核心组件 2:Configuration
配置管理采用分层配置策略:
配置优先级:命令行参数 > 环境变量 > YAML 配置 > 默认值
设计理由:
核心组件 3:PathValidator
路径验证是安全架构的基石,采用沙箱模式
核心算法:
安全保障:
../../../etc/passwd)link-to-/etc)/tmp/malicious.sh)3.2.3 领域层 (Domain Layer)
工具系统设计
所有工具实现统一的
Tool接口:工具分类:
.java文件工具注册机制
工具规范(Tool Specification)设计
这是告诉 AI "工具能做什么" 的关键:
为什么需要详细的描述?
比喻:就像给新员工写岗位说明书
模型工厂设计
采用抽象工厂模式 + 策略模式
工厂方法实现
对话历史管理
对话历史是 AI 的"记忆",设计要点
消息类型:
历史管理策略:
设计考虑:
3.2.4 基础设施层 (Infrastructure Layer)
这一层封装了所有第三方依赖和系统调用:
核心职责:
为什么需要这一层?
比喻:就像建筑的地基,上层不用关心底层细节
优势:
4. 对话流程设计
4.1 完整交互流程
这是 KejiCode 最核心的流程设计
4.2 工具链决策机制
AI 如何决定调用哪些工具?这是一个智能决策过程
决策影响因素:
System Prompt:定义 AI 的行为规范
工具描述:详细说明工具用途和参数
对话历史:上下文决定下一步操作
4.3 错误恢复流程
当工具执行失败时,如何处理?
错误处理策略:
结语
KejiCode 可以帮你简单了解Coding Agent的工作原理,Happy Coding! 🐕💻
代码可以通过关注微信公众号【柯基写代码】回复【柯基Code】获取~