Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

opensolon/solonclaw

Open more actions menu

Repository files navigation

solon-claw

English | 简体中文

solon-claw 是一个基于 Java、Solon 与 Solon AI 的单实例 Agent 服务。项目目标是以 Java / Solon 生态复刻 Hermes Agent 的核心行为与能力,重点覆盖 Agent 主循环、工具调用、会话/记忆、技能、定时任务、国内消息渠道接入,以及 Dashboard-first 的配置与诊断体验。

当前项目仍处于快速迭代阶段,接口和配置项可能继续调整。欢迎试用、反馈问题和参与贡献。

特性

  • Agent 核心循环:多轮会话、流式/非流式模型调用、工具调用、上下文压缩、重试、回滚与会话搜索。
  • 模型协议:支持 openaiopenai-responsesollamageminianthropic 等通用接入面。
  • 工具系统:内置文件读写、搜索、补丁、Shell/Python/JavaScript 执行、Todo 任务规划、Memory、定时任务、Web search/fetch、消息发送等工具。
  • 国内消息渠道:聚焦飞书、钉钉、企业微信、微信;优先 websocket / stream,微信保留 iLink long-poll。
  • Dashboard-first:提供状态查看、会话、配置、渠道诊断、运行配置、日志、技能等管理入口。
  • 持久化:使用 SQLite 保存会话、策略、定时任务、渠道状态等运行数据。
  • 技能与记忆:支持本地 Skills、Skills Hub 导入、长期记忆、用户画像和上下文文件协作。
  • 部署方式:支持 java -jar 与 Docker / Docker Compose 单实例部署。

技术栈

  • Java 源码兼容级别:1.8
  • 运行与构建:Maven、Node.js/npm(用于 Dashboard 前端构建)
  • Web 框架:Solon
  • AI 编排:Solon AI、Solon AI Agent、Solon AI Skills
  • JSON:Snack4
  • 工具库:Hutool
  • 数据库:SQLite
  • 前端:Vue / Vite
  • 容器:Docker、Docker Compose

快速开始

环境要求

  • JDK 8+(推荐 JDK 17)
  • Maven 3.9+
  • Node.js 20+ 与 npm
  • 可访问目标大模型服务的网络环境

克隆与构建

git clone https://github.com/chengliang4810/solon-claw.git
cd solon-claw
mvn -DskipTests package

Maven 默认会在 generate-resources 阶段执行 web 前端的 npm installnpm run build。如果你只想构建后端,可使用:

mvn -DskipTests -Dskip.web.build=true package

运行

java -jar target/solon-claw-0.0.1.jar

服务默认监听:

http://127.0.0.1:8080

运行后会在当前目录创建 runtime/,用于保存配置、SQLite 数据库、缓存、日志、技能和上下文文件。运行态子目录由程序内置派生:context/skills/cache/logs/data/state.db

Docker Compose

docker compose up -d

默认 Compose 会将本地 ./runtime 挂载到容器内 /app/runtime,方便持久化运行数据。镜像内服务默认以非 root 用户 solonclaw 运行,UID/GID 为 10000:10000。如果从旧镜像或 root 容器迁移后看到 /app/runtime is not writable,先在服务器项目目录执行:

sudo mkdir -p runtime
sudo chown -R 10000:10000 runtime
sudo chmod -R u+rwX runtime
docker compose up -d

如果你希望容器内用户匹配宿主机当前用户,也可以在启动前设置:

export SOLONCLAW_UID="$(id -u)"
export SOLONCLAW_GID="$(id -g)"
docker compose up -d

配置

默认配置位于:

src/main/resources/app.yml

模型提供方的标准配置使用 providersmodel 结构,建议通过 Dashboard 或 runtime/config.yml 维护。

runtime/config.yml

runtime/config.yml 不配置运行目录本身;运行目录在启动级配置中决定,默认使用当前目录下的 runtime/

完整示例可参考仓库根目录的 config.example.yml

最小 runtime/config.yml 示例:

providers:
  default:
    name: DefaultProvider
    baseUrl: https://api.openai.com
    apiKey: ""
    defaultModel: gpt-5.4
    dialect: openai
model:
  providerKey: default
  default: "gpt-5.4"
fallbackProviders: []
solonclaw:
  dashboard:
    accessToken: "admin"

常用运行配置:

配置项 默认值 说明
server.port 8080 HTTP 服务端口
providers.<key>.baseUrl - 模型服务基础地址
providers.<key>.apiKey - 模型服务 API Key
providers.<key>.defaultModel - 该提供方默认模型
providers.<key>.dialect openai 协议方言
model.providerKey default 当前默认提供方
model.default 全局默认模型覆盖;为空时使用 provider 的 defaultModel
solonclaw.llm.stream true 是否启用流式输出
solonclaw.llm.reasoningEffort medium 默认推理强度
solonclaw.scheduler.enabled true 是否启用定时任务调度

消息渠道

当前保留并优先建设的渠道:

渠道 配置前缀 入站方式 状态
飞书 solonclaw.channels.feishu.* websocket / 平台能力 建设中
钉钉 solonclaw.channels.dingtalk.* stream mode 建设中
企业微信 solonclaw.channels.wecom.* websocket / 平台能力 建设中
微信 solonclaw.channels.weixin.* iLink long-poll 建设中
QQBot solonclaw.channels.qqbot.* websocket / REST 建设中
腾讯元宝 solonclaw.channels.yuanbao.* websocket / REST 建设中

Dashboard 提供渠道状态与 doctor 入口,建议优先通过 Dashboard 完成接入、诊断和排错。默认渠道示例仅开启微信:

solonclaw:
  channels:
    weixin:
      enabled: true

Slash Commands

常用对话内命令包括:

  • /new:开启新会话
  • /retry:重试上一轮
  • /undo:撤销上一轮
  • /branch:基于当前会话分支
  • /resume:恢复会话
  • /status:查看运行状态
  • /usage:查看 token 使用量
  • /model:查看或切换模型
  • /tools:查看工具状态
  • /skills:管理技能
  • /cron:管理定时任务
  • /pairing:渠道用户绑定与审批
  • /approve / /deny:危险命令审批

目录结构

src/main/java/com/jimuqu/solon/claw/
├── agent/          # Agent profile
├── bootstrap/      # Solon 启动、Bean 装配、HTTP 控制器
├── config/         # 配置文件加载、运行时覆盖、路径规范化
├── context/        # AGENTS / MEMORY / USER / Skills 上下文
├── core/           # 领域模型、仓储接口、服务接口
├── engine/         # Agent 主循环、上下文压缩、委托
├── gateway/        # 国内消息渠道、鉴权、投递和运行刷新
├── llm/            # 模型协议适配与 Solon AI 接入
├── scheduler/      # Cron 与 heartbeat 调度
├── skillhub/       # Skills Hub、导入、校验与来源适配
├── storage/        # SQLite 仓储实现
├── support/        # 通用运行期支持类
├── tool/           # 内置工具注册与实现
└── web/            # Dashboard 后端服务与控制器

测试

运行后端与前端绑定构建测试:

mvn test

只做后端编译:

mvn -DskipTests -Dskip.web.build=true compile

运行指定测试:

mvn "-Dtest=DashboardControllerHttpTest" test

Windows PowerShell 中 -Dtest=... 建议加引号,避免逗号被 PowerShell 解析。

贡献

欢迎提交 issue 和 pull request。建议在贡献前先阅读现有 issue、运行相关测试,并在 PR 中说明变更动机、主要实现和验证范围。

许可证

本项目使用 MIT License

About

Java impl version of "OpenClaw(Clawdbot,Moltbot)"

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.