Skip to content

liudaac/openclaw-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

180 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenClaw Java

OpenClaw Java Edition - 基于 Spring Boot 的企业级 AI Agent 平台

项目简介

OpenClaw Java 是 OpenClaw 的 Java 实现版本,提供完整的 AI Agent 功能,与 Node.js 原版功能对等度达 ~99%

核心特性

  • 🤖 多通道支持: Telegram, Feishu, Discord, Slack, Matrix, 企业微信
  • 🛠️ 丰富的工具生态: Web Search, Browser, File Operations, Email, Calendar, Cron, Image Generation 等
  • 🧠 记忆系统: 向量搜索 (OpenAI/Mistral/Ollama), SQLite/pgvector 存储, FTS5 全文搜索
  • 🔒 企业级安全: SSRF 防护, 输入验证, Secrets 管理, 沙箱检测
  • 📊 Dashboard/Control UI: Web 管理界面
  • 定时任务: Cron 表达式, 持久化存储, 子进程隔离执行
  • 🌐 浏览器自动化: Playwright Java API, 完整会话管理
  • 💬 流式消息: SSE, 打字指示器, 流取消支持
  • 🔗 Gateway: V3 认证, 自动重连, 任务调度
  • 🧪 依赖注入: ThreadLocal DI, 测试隔离

技术栈

层级 技术
框架 Spring Boot 3.2, Spring WebFlux
AI 集成 Spring AI 1.1.2 (OpenAI, Anthropic, Ollama)
数据库 SQLite, PostgreSQL (pgvector)
浏览器 Playwright Java 1.40.0
构建工具 Maven 3.9+
Java 版本 21 (LTS)
架构模式 依赖注入 (DI), ThreadLocal 隔离

项目结构

openclaw-java/
├── openclaw-plugin-sdk          # 插件 SDK 接口定义
├── openclaw-gateway             # Gateway 核心 (V3 认证, 自动重连, 任务调度)
├── openclaw-server              # HTTP/WebSocket 服务器
│   ├── controller/              # REST API (Chat, Tool, Agent, Cron, Streaming)
│   ├── streaming/               # 流式消息服务
│   └── websocket/               # WebSocket 处理器
├── openclaw-agent               # Agent 核心 (ACP 协议, 子代理, 上下文管理)
├── openclaw-channel-telegram    # Telegram 通道
├── openclaw-channel-feishu      # 飞书通道 (流式适配器, 提及策略)
├── openclaw-channel-discord     # Discord 通道
├── openclaw-channel-slack       # Slack 通道
├── openclaw-channel-matrix      # Matrix 通道
├── openclaw-channel-wecom       # 企业微信通道
├── openclaw-tools               # 工具集
│   ├── browser/                 # Browser 工具 (Playwright)
│   ├── cron/                    # Cron 工具
│   ├── session/                 # Session 工具
│   ├── exec/                    # 命令执行 (含沙箱检测)
│   ├── email/
│   ├── file/
│   ├── search/
│   └── ...
├── openclaw-memory              # 记忆系统 (向量搜索, FTS5)
├── openclaw-security            # 安全模块 (SSRF, 输入验证)
├── openclaw-secrets             # Secrets 管理 (AES-256-GCM)
├── openclaw-cron                # 定时任务模块
├── openclaw-browser             # 浏览器自动化模块
├── openclaw-session             # 会话持久化模块
├── openclaw-provider-brave      # Brave Search 提供商
├── openclaw-provider-perplexity # Perplexity 提供商
├── openclaw-provider-google     # Google Search 提供商
├── openclaw-lsp                 # LSP 服务器
├── openclaw-desktop             # 桌面应用
└── openclaw-cli                 # CLI 工具

核心模块对比 (vs Node.js 原版)

模块 Node.js Java (当前) 状态
Cron node-cron + SQLite cron-utils + SQLite + 隔离执行 ✅ 100%
Browser Playwright 原生 Playwright Java API ✅ 100%
Session JSONL SQLite + 内存缓存 + 自动配置 ✅ 100%
Channel 流式 完整 SSE + 打字指示 + 流取消 ✅ 95%
Gateway V3 认证 V3 认证 + 自动重连 + DI ✅ 95%
Memory 完整 SQLite/pgvector + FTS5 ✅ 90%
Security 完整 SSRF + 输入验证 + 沙箱检测 ✅ 95%
DI/测试隔离 完整 ThreadLocal + 依赖注入 ✅ 95%
子代理 完整 ACP 协议 + 生命周期管理 ✅ 90%
总体 100% ~99%

快速开始

环境要求

  • JDK 21+
  • Maven 3.9+
  • (可选) Docker & Docker Compose

编译

# 克隆项目
git clone https://github.com/liudaac/openclaw-java.git
cd openclaw-java

# 编译所有模块
mvn clean install

# 跳过测试编译
mvn clean install -DskipTests

# 指定版本编译
mvn clean install -Drevision=2026.3.30

运行

# 运行 Gateway
java -jar openclaw-gateway/target/openclaw-gateway-*.jar

# 运行 Server
java -jar openclaw-server/target/openclaw-server-*.jar

Docker 部署

# 构建镜像
docker build -t openclaw-java:latest .

# 运行容器
docker run -p 18789:18789 openclaw-java:latest

# 或使用 Docker Compose
docker-compose up -d

配置

配置文件

主配置: ~/.openclaw/openclaw.json

{
  "gateway": {
    "bind": "0.0.0.0",
    "port": 18789,
    "auth": {
      "mode": "token",
      "token": "your-secure-token"
    },
    "controlUi": {
      "enabled": true,
      "basePath": "/"
    }
  },
  "llm": {
    "provider": "openai",
    "model": "gpt-4",
    "apiKey": "your-api-key"
  },
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "your-bot-token"
    },
    "feishu": {
      "enabled": true,
      "appId": "your-app-id",
      "appSecret": "your-app-secret",
      "groupPolicy": "open"
    }
  },
  "session": {
    "enabled": true,
    "storageType": "sqlite",
    "dbPath": "~/.openclaw/sessions.db",
    "maxMessages": 1000,
    "ttl": "30d",
    "autoCleanup": true
  },
  "memory": {
    "storageType": "sqlite",
    "ftsTokenizer": "icu",
    "ftsOnly": false
  }
}

环境变量

变量名 说明 默认值
OPENCLAW_GATEWAY_BIND 绑定地址 0.0.0.0
OPENCLAW_GATEWAY_PORT 端口 18789
OPENCLAW_GATEWAY_AUTH_TOKEN 认证 Token -
OPENCLAW_LLM_PROVIDER LLM 提供商 openai
OPENCLAW_LLM_API_KEY API Key -

API 使用

Cron API

# 创建定时任务
curl -X POST http://localhost:18789/api/v1/cron/jobs \
  -H "Content-Type: application/json" \
  -d '{
    "name": "daily-backup",
    "schedule": "0 0 2 * * *",
    "command": "/opt/backup.sh"
  }'

# 列出任务
curl http://localhost:18789/api/v1/cron/jobs

# 触发任务
curl -X POST http://localhost:18789/api/v1/cron/jobs/{id}/trigger

Session API

# 创建会话
curl -X POST http://localhost:18789/api/v1/sessions \
  -H "Content-Type: application/json" \
  -d '{"sessionKey": "user-123", "model": "gpt-4"}'

# 获取消息历史
curl http://localhost:18789/api/v1/sessions/{id}/messages

# 搜索会话
curl "http://localhost:18789/api/v1/sessions/search?keyword=test"

Streaming API

# 发送流式消息 (SSE)
curl -X POST http://localhost:18789/api/v1/streaming/send \
  -H "Content-Type: application/json" \
  -H "X-Channel-Adapter: feishu" \
  -d '{"chatId": "chat_xxx", "content": "Hello..."}'

Java 代码示例

// Cron 服务
@Autowired
private CronService cronService;

CronJob job = cronService.createJob("backup", "0 0 2 * * *", "/opt/backup.sh").join();

// Browser 服务
@Autowired
private BrowserService browserService;

BrowserSession session = browserService.createSession("default", 
    SessionOptions.defaults()).join();
browserService.navigate(session.getId(), "https://example.com").join();
byte[] screenshot = browserService.screenshot(session.getId()).join();

// Session 持久化
@Autowired
private SessionPersistenceService sessionService;

Session session = sessionService.createSession("user-123", "gpt-4").join();
sessionService.addMessage(session.getId(), "user", "Hello").join();

// 流式消息
@Autowired
private StreamingMessageService streamingService;

Flux<StreamChunk> stream = streamingService.createStreamingResponseWithTyping(
    chatId, contentStream, adapter
);

更新日志

[2026.3.30] - 2026-03-30

安全增强

  • Exec 沙箱检测: 新增 SandboxDetector 检测容器环境
  • 失败关闭策略: 当沙箱不可用时拒绝命令执行
  • 支持检测: Docker, Containerd, Kubernetes, Podman

Feishu 通道优化

  • 提及策略: 新增 FeishuGroupPolicy (OPEN, ALLOWLIST, DISABLED)
  • 群组配置: 支持 per-group 配置
  • 白名单匹配: 支持通配符和大小写不敏感匹配

[2026.3.25] - 2026-03-25

依赖注入架构升级

  • Gateway DI: GatewayCallDeps + GatewayCallService
  • 工具 DI: BrowserToolDeps, ImageToolDeps
  • 测试隔离: DITestHelper + TestDepsBuilder

[2026.3.20] - 2026-03-20

Session 模块完善

  • SQLite 存储: 完整 CRUD + 搜索 + 统计
  • 自动配置: Spring Boot 自动装配
  • 内存缓存: 开发/测试环境备选

[2026.3.14] - 2026-03-14

核心模块完成

  • Cron: cron-utils + SQLite 持久化 + 隔离执行
  • Browser: Playwright Java API 原生集成
  • Session: SQLite + 内存缓存 + 自动配置
  • Streaming: SSE + 打字指示器 + 流取消

功能清单

已完成功能 ✅

核心基础设施

  • Plugin SDK - 60+ 接口定义
  • Gateway - V3 认证 + 自动重连 + 任务调度
  • Server - HTTP/WebSocket + REST API
  • Agent - ACP 协议 + 子代理
  • Security - SSRF + 输入验证 + 沙箱检测
  • Secrets - AES-256-GCM 加密

通道支持

  • Telegram - 完整实现
  • Feishu - 完整实现 + 流式适配 + 提及策略
  • Discord - 完整实现
  • Slack - 完整实现
  • Matrix - 基础实现
  • 企业微信 - 基础实现

工具集

  • Browser - Playwright Java
  • Cron - cron-utils + SQLite
  • Session - 持久化管理
  • Exec - 命令执行 + 沙箱检测
  • File - 文件操作
  • Search - Web 搜索
  • Image - 图片生成
  • Email - 邮件发送
  • Calendar - 日历操作

记忆系统

  • Vector Search - OpenAI/Mistral/Ollama
  • SQLite Storage - FTS5 全文搜索
  • Batch Embedding - 并发控制
  • Memory Manager - CRUD 操作

高级功能

  • Streaming - SSE + 打字指示
  • Cron Jobs - 定时任务
  • Config Reload - 热更新
  • Heartbeat - 心跳调度
  • Audit Logging - 审计日志
  • Metrics - Prometheus 监控
  • DI/Testing - ThreadLocal 依赖注入

进行中功能 🚧

  • Gateway 任务注册表存储抽象
  • 子代理静默回合失败关闭
  • Memory FTS5 ICU 分词器 (CJK 支持)
  • CJK Token 计数修复

待评估功能 📋

  • Slack 状态反应生命周期
  • Matrix 草稿流式编辑
  • TTS CJK 语音支持

缺失功能 (无计划) ❌

  • WhatsApp 通道
  • Signal 通道
  • LINE 通道

统计数据

指标 数值
Java 文件数 452+
Maven 模块 23
代码行数 25,000+
测试覆盖率 ~60%
功能完成度 ~99%

与 Node.js 原版对比优势

优势 说明
类型安全 Java 编译时检查
企业级生态 Spring Boot 生态
性能可预测 线程池模型
监控完善 Prometheus/Grafana
部署友好 单 JAR 部署

贡献

欢迎提交 Issue 和 Pull Request!

许可证

MIT License - 详见 LICENSE 文件

相关链接


OpenClaw Java Edition - 企业级 AI Agent 平台

当前版本: 2026.3.30-SNAPSHOT

About

Java版OpenClaw,100%代码使用Openclaw生成

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages