Ohhnews

分类导航

$ cd ..
InfoQ Java原文

JobRunr 发布开源 Java AI 智能体 ClawRunr

#人工智能#java#自动化#开源软件#任务调度

JobRunr 推出开源 Java AI 智能体 ClawRunr

JobRunr 近期推出了开源 Java AI 智能体 ClawRunr,该智能体运行在用户本地硬件上,旨在执行定时、周期性及一次性的后台任务。该项目原名为 JavaClaw,是 OpenClaw 的 Java 版本。

ClawRunr 将对话式交互与持久化任务执行相结合,允许用户创建提醒、自动化处理周期性工作、通过模型上下文协议 (MCP) 连接工具,并支持通过网页聊天、Telegram 和 Discord 等渠道与智能体进行交互。

该项目的目标是解决 AI 智能体设计中的一个常见痛点:将重试、持久化、调度和监控作为长期运行智能体任务的一等公民(first-class concerns)。

ClawRunr 基于 Java 25Spring BootSpring AISpring ModulithJobRunr 构建,状态持久化存储在嵌入式 H2 数据库中。运行时支持 OpenAIAnthropicOllama 作为大语言模型(LLM)提供商。

在架构上,该项目被拆分为三个 Spring Modulith 模块:

  • base:负责核心智能体、任务、工具、渠道和配置。
  • app:负责 Spring Boot 入口点、引导界面和内置网页聊天功能。
  • plugin:负责可选插件功能,如 Brave Search、Discord、Telegram 和 Playwright。

智能体核心封装了 Spring AI 的 ChatClient,并通过 @Tool 注解注册工具。Channel 接口(由内置网页聊天及 Telegram 和 Discord 插件实现)实现了消息源与智能体的解耦。系统提示词(System Prompt)在运行时由两个工作区文件组成:AGENT.md(指令)和 INFO.md(环境上下文)。

JobRunr 负责处理 ClawRunr 的异步任务执行。用户创建的任务以 Markdown 文件形式存储在 workspace/tasks/ 下,按日期组织,并标记生命周期状态(todoin_progresscompleted | awaiting_human_input)。周期性任务则持久化在 workspace/tasks/recurring/ 下,通过 JobRunr 的 cron 支持进行调度,并具备自动重试和基于仪表板的监控功能。

该运行时自带任务管理、Shell 命令执行、文件访问和网页抓取工具。它还集成了通过流式 HTTP 和 stdio 传输的 MCP 服务器,并在配置后支持 Brave Search。可选的 Playwright 集成增加了浏览器自动化能力,包括页面导航、元素点击、JavaScript 执行和截图。

ClawRunr 公开了一种基于 Spring AI “工具搜索工具”(Tool Search Tool)模式的动态工具发现模式,该模式使用 Lucene 关键词搜索在请求时呈现相关工具,而无需在每个提示词中包含所有工具定义。

ClawRunr 的技能系统基于文件。用户只需在 workspace/skills/ 下创建一个目录并放入 SKILL.md 文件即可添加能力:

workspace/
└── skills/
    └── my-skill/
        └── SKILL.md

运行时会扫描技能目录,并使这些指令对智能体可用,无需更改代码或重新部署。

初始设置通过引导式流程完成,指导用户完成提供商选择(OpenAI、Anthropic 或 Ollama)、凭证和模型配置、智能体提示词自定义、可选的 MCP 服务器设置,以及 Telegram 或 Discord 的渠道配置。配置持久化到 application.yaml 中,渠道以声明式方式连接:

$ config
agent:
  channels:
    telegram:
      token:
      username:
    discord:
      token:
      allowed-user:

更改会立即生效。当选择 Ollama 时,ClawRunr 将在本地模型上运行,数据不会离开用户的硬件。

ClawRunr 最初是一个旨在演示 JobRunr 如何应用于 AI 智能体的概念验证项目。随后,JobRunr 团队重写了实现,并以 LGPL-3.0 许可证向 Java 社区发布。

JobRunr 团队指出的已知问题包括:Playwright 在首次安装浏览器后需要重启,且周期性任务的输出目前在 Telegram 上的支持优于网页聊天界面。路线图提到将增加 Slack 和 WhatsApp 等渠道,并改进内存管理、任务规划、内置工具和技能。

有关 ClawRunr 的更多详细信息,请访问项目官网GitHub 仓库