基于 Java 17、Spring Boot 3.3.2 与 DDD 分层架构的 Agent Harness,统一组织模型调用、ReAct 执行、工具调度、插件扩展与会话管理,并提供 Web 控制台和 SSE 流式接口。
| 模块 | 能力 |
|---|---|
| Agent 执行 | 串联模型生成、工具调用与结果回填,提供步数限制和协作式取消 |
| 插件扩展 | Java SPI / ClassLoader 插件加载,管理工具、提示词及 Hook 注册与清理 |
| 工具治理 | 统一内置、插件与 MCP 工具执行入口,通过执行前后 Hook 扩展拦截及记录 |
| 会话管理 | 追加式事件记录、调用标识关联、历史重建、摘要与近期消息上下文组合 |
| 模型适配 | 端口与适配器组织外部模型服务,支持配置模型渠道 |
| 交互界面 | 原生 JavaScript 控制台,展示流式输出、工具执行和任务状态 |
flowchart LR
UI[Web / API] --> T[Trigger]
T --> A[API / Case 编排]
A --> R[ReAct 执行]
R <--> L[模型适配]
R --> X[统一工具执行]
X --> P[Java 插件 / MCP / 内置工具]
R --> E[会话事件与上下文]
I[Infrastructure] --> D[Domain 端口]
deepseek-harness-java-app/ # 启动、装配、配置、数据库结构和静态页面
deepseek-harness-java-trigger/ # HTTP、SSE 与协议入口
deepseek-harness-java-api/ # Facade 与 DTO
deepseek-harness-java-case/ # 对话与任务编排
deepseek-harness-java-domain/ # Agent、工具、插件、会话等领域能力
deepseek-harness-java-infrastructure/ # 模型、持久化、执行环境等适配器
deepseek-harness-java-types/ # 插件扩展契约与通用类型
plugins/ # Java / Node 插件示例与 Maven Archetype
skills/ # 运行时技能资源
需要 JDK 17、Maven 3.9+;Node Bridge 为可选能力,启用时需要 Node.js。默认演示使用 H2,不需要安装 MySQL。
git clone https://github.com/Zhong-YC/deepseek-harness-java.git
cd deepseek-harness-java
mvn -B package -DskipTests
export LLM_BASE_URL='https://api.deepseek.com/v1'
export LLM_DEFAULT_MODEL='deepseek-chat'
export LLM_API_KEY='your-model-api-key'
java -jar deepseek-harness-java-app/target/deepseek-harness-java-app.jar --spring.profiles.active=standaloneWindows PowerShell 使用 $env:LLM_API_KEY='...' 等写法设置环境变量。Spring Boot 不会自动读取根目录的 .env 文件。请按实际模型服务设置 Base URL、模型名称和 Key。
Windows 建议使用较短的项目路径;路径过长时可通过 git -c core.longpaths=true clone <仓库地址> 启用长路径支持。
启动后打开 本地控制台。H2 数据与运行状态写入本地目录,真实模型对话需要有效的服务凭据。
curl -N http://127.0.0.1:8090/api/agent/stream -H 'Content-Type: application/json' -d '{"agentId":"demo","message":"介绍你的工具能力"}'公开版本默认监听本机;外部 MCP 和 Node 示例插件默认关闭,可按需要配置。示例 Java 插件由 Maven 从源码构建,不依赖仓库内预编译 JAR。
- Agent 执行与工具调度:ReAct 主线及工具执行。
- 插件领域:插件状态、注册与生命周期。
- Java 插件适配器:ClassLoader、SPI 与上下文实现。
- 会话事件:事件记录与会话重建。
- 示例工具插件:插件入口、天气查询与文件摘要工具。
- 设计笔记 与 实践清单。
mvn package -DskipTests 会编译应用和测试源码,但不执行测试。运行完整测试可使用 mvn test -DskipTests=false;部分用例涉及本地进程、网络或运行环境,需要先检查测试前置条件。
此版本主要用于代码阅读、本地运行与技术交流。生产部署需要结合实际场景完善身份认证、执行隔离、密钥管理、集群协调与审计。
已完成的检查见 发布验证。
基于小傅哥的 DeepSeek Harness Java 项目整理,保留原有作者和第三方版权信息。公开版本调整见 发布说明。