8.9 KiB
Spring AI Alibaba JManus
✨ JManus 简介
JManus 是 Manus 的一个Java实现,目前已经在阿里巴巴集团内的很多应用都有使用,主要用于处理需要有一定确定性要求的探索性任务,比如,快速从海量数据中找到数据并转换成数据库内的一行数据,或者分析日志并给出告警等。
JManus也提供了http的服务调用能力,适合被集成到既有的项目中。具体可以见开发者快速入门
🎯 JManus的产品特性
🤖 纯Java的Manus实现:
纯粹的Java多智能体协作实现,提供了完整的http调用接口,适合Java开发者做二次集成。
🌊 无限上下文处理:
支持从巨量内容中精准抓取目标信息,不依赖特定的长上下文模型。
🛠️ Plan-Act 模式:
🔗 MCP 集成:
原生支持模型上下文协议(Model Context Protocol),实现与外部服务和工具的无缝集成。
📜 网页界面配置 Agent:
🚀 快速开始
在 5 分钟内启动并运行 JManus:
先决条件
- 🌐 DashScope API 密钥 (或替代的 AI 模型提供商)
- 🐳 Docker (用于容器化部署) 或 ☕ Java 17+ (用于源码运行)
方式一:使用 Docker (推荐)
🐳 使用 Docker Hub 镜像
# 拉取最新的 develop 镜像
docker pull springaialibaba/jmanus:develop
# 基础启动(临时数据存储)
docker run -d \
--name jmanus \
-p 18080:18080 \
-e DASHSCOPE_API_KEY=your_api_key_here \
springaialibaba/jmanus:develop
# 或者启动并持久化数据(推荐)
docker run -d \
--name jmanus \
-p 18080:18080 \
-e DASHSCOPE_API_KEY=your_api_key_here \
-v $(pwd)/h2-data:/app/extracted/h2-data \
-v $(pwd)/extensions:/app/extracted/extensions \
springaialibaba/jmanus:develop
🇨🇳 使用阿里云镜像(中国加速)
# 拉取阿里云加速镜像
docker pull sca-registry.cn-hangzhou.cr.aliyuncs.com/spring-ai-alibaba/jmanus:develop
# 基础启动(临时数据存储)
docker run -d \
--name jmanus \
-p 18080:18080 \
-e DASHSCOPE_API_KEY=your_api_key_here \
sca-registry.cn-hangzhou.cr.aliyuncs.com/spring-ai-alibaba/jmanus:develop
# 或者启动并持久化数据(推荐)
docker run -d \
--name jmanus \
-p 18080:18080 \
-e DASHSCOPE_API_KEY=your_api_key_here \
-v $(pwd)/h2-data:/app/extracted/h2-data \
-v $(pwd)/extensions:/app/extracted/extensions \
sca-registry.cn-hangzhou.cr.aliyuncs.com/spring-ai-alibaba/jmanus:develop
🔧 高级 Docker 配置
如果您需要自定义配置或持久化数据:
# 创建数据目录
mkdir -p /path/to/jmanus/h2-data
mkdir -p /path/to/jmanus/extensions
# 使用自定义配置启动(推荐数据持久化)
docker run -d \
--name jmanus \
-p 18080:18080 \
-e DASHSCOPE_API_KEY=your_api_key_here \
-v /path/to/jmanus/h2-data:/app/extracted/h2-data \
-v /path/to/jmanus/extensions:/app/extracted/extensions \
--restart unless-stopped \
springaialibaba/jmanus:develop
📁 数据存储说明:
- H2 数据库:
/app/extracted/h2-data- 存储应用的数据库文件- 运行时数据:
/app/extracted/extensions- 存储扩展和运行时配置- 建议挂载这两个目录以实现数据持久化,避免容器重启后数据丢失
💡 镜像说明:
- Docker Hub 镜像:
springaialibaba/jmanus:develop- 每日自动构建推送- 阿里云镜像:
sca-registry.cn-hangzhou.cr.aliyuncs.com/spring-ai-alibaba/jmanus:develop- 每日同步,中国用户访问更快- 镜像支持 headless Playwright 浏览器功能
- 阿里云镜像可能会稍微落后于 Docker Hub 版本
🌐 访问应用
容器启动后,在浏览器中访问 http://localhost:18080 即可使用 JManus。
🎉 恭喜! 您的多 Agent 系统现已通过 Docker 快速部署完成。
方式二:从源码运行
1. 克隆并导航
git clone https://github.com/alibaba/spring-ai-alibaba.git
cd spring-ai-alibaba/spring-ai-alibaba-jmanus
2. 配置您的 API 密钥
# 设置您的 DashScope API 密钥
export DASHSCOPE_API_KEY=your_api_key_here
💡 获取您的 DashScope API 密钥: 访问 阿里云百炼控制台 获取免费 API 密钥。
使用其他提供商? 在
src/main/resources/application.yml中更新配置,以使用您偏好的 AI 模型平台。
3. 数据库配置(可选)
JManus 支持 H2(默认)、MySQL以及PostgreSQL数据库。
如何使用 MySQL/PostgreSQL
-
配置数据库连接: 在
src/main/resources/下的application-mysql.yml/application-postgres.yml中更新数据库配置和jpa方言:spring: datasource: url: your_url username: your_username password: your_password jpa: database-platform: org.hibernate.dialect.MySQLDialect/PostgreSQLDialect -
激活 MySQL/PostgreSQL 配置: 在
src/main/resources/application.yml中更新配置:spring: ... profiles: active: mysql/postgres
💡 注意:应用程序将在首次启动时自动创建所需的表,使用 JPA 的
ddl-auto: update配置。
4. 启动应用程序
对于类 Unix 系统 (macOS, Linux):
../mvnw spring-boot:run
对于 Windows 系统:
../mvnw.cmd spring-boot:run
5. 访问您的多 Agent 仪表盘
在您的浏览器中访问 http://localhost:18080。
🎉 恭喜! 您的多 Agent 系统现已上线并准备就绪。
🔒 安全提示
💡 AI 应用安全: 与其他 AI 应用一样,在生产环境中建议实施适当的身份认证和访问控制。对于 JManus 而言,这包括对模型对话接口、MCP 服务配置、内置工具管理和系统参数调整功能的安全防护,以避免误用和未授权访问。
稳定版本的Release
如果你想要之前的稳定版本,可以在这里找到: 稳定release版
🤝 如何贡献
我们热烈欢迎来自开发者社区的贡献!以下是您可以产生影响的方式:
贡献机会
您可以在我们的 项目看板 上找到可用的任务。
- 🐛 报告 Bug: 提交详细的问题报告
- 💡 功能请求: 提出创新的增强建议
- 📝 文档: 帮助我们提高文档的清晰度和完整性
- 🔧 代码贡献: 提交包含您改进的拉取请求
开发环境设置
# Fork 并克隆仓库
git clone https://github.com/your-username/spring-ai-alibaba.git
cd spring-ai-alibaba/spring-ai-alibaba-jmanus
# 安装项目依赖
mvn clean install
# 应用代码格式化标准
mvn spotless:apply
# 启动开发服务器
mvn spring-boot:run
开发指南
- 遵循现有的代码风格和约定
- 为新功能编写全面的测试
- 为任何 API 变更更新文档
- 在提交 PR 前确保所有测试都通过
由 Spring AI Alibaba 团队用心打造 ❤️
⭐ 如果 JManus 加速了您的开发之旅,请在 GitHub 上给我们点亮一颗星!