catalog/repos/agentscope-ai--agentscope-java.md

5.9 KiB
Raw Blame History

Java AI智能体框架

AI智能体 Java LLM ReAct 多智能体

AgentScope Logo

用 Java 构建生产级 AI 智能体

📖 文档  |  中文  |  Discord

许可证 JDK 17+ Maven Central Ask DeepWiki


AgentScope Java 是一个面向智能体编程的框架用于构建由大语言模型驱动的应用程序。它提供了创建智能体所需的一切ReAct 推理、工具调用、记忆管理、多智能体协作等。

亮点

🎯 智能自主,全程可控

AgentScope 采用 ReAct推理-行动范式使智能体能够自主规划并执行复杂任务。与僵化的工作流方案不同ReAct 智能体能动态决定使用哪些工具以及何时使用,实时适应不断变化的需求。

然而在生产环境中缺乏控制的自主性是一种风险。AgentScope 提供了全面的运行时干预机制:

  • 安全中断 - 在保留完整上下文和工具状态的前提下,随时暂停智能体执行,实现无缝恢复而不丢失数据
  • 优雅取消 - 在不破坏智能体状态的情况下终止长时间运行或无响应的工具调用,允许立即恢复和重定向
  • 人工介入 - 通过 Hook 系统在任意推理步骤注入修正、补充上下文或指导,对关键决策保持人工监督

🛠️ 内置工具

AgentScope 包含针对智能体开发常见挑战的生产级工具:

  • PlanNotebook计划笔记本 - 一套结构化任务管理系统,将复杂目标分解为有序、可追踪的步骤。智能体可创建、修改、暂停和恢复多个并发计划,确保多步骤工作流的系统化执行。

  • 结构化输出 - 一种自我纠错的输出解析器,保证类型安全的响应。当大语言模型输出偏离预期格式时,系统自动检测错误并引导模型生成有效输出,将结果直接映射到 Java POJO无需手动解析。

  • 长期记忆 - 跨会话的持久化记忆存储,具备语义搜索能力。支持自动管理、智能体控制记录或混合模式。支持多租户隔离,适用于智能体为多用户独立服务的企业级部署场景。

  • RAG检索增强生成 - 与企业知识库的无缝集成。支持自托管的基于嵌入的检索,也支持阿里云百炼等托管服务,将智能体响应建立在权威数据源之上。

🔌 无缝集成

AgentScope 旨在与现有企业基础设施集成,无需大规模改造:

  • MCP 协议 - 接入任意兼容 MCP 的服务器,即时扩展智能体能力。无需编写自定义集成代码,即可连接不断壮大的 MCP 工具与服务生态——涵盖文件系统、数据库、浏览器和代码解释器等。

  • A2A 协议 - 通过标准服务发现实现分布式多智能体协作。将智能体能力注册到 Nacos 或类似注册中心,使智能体之间的发现与调用像调用微服务一样自然。

🚀 生产级品质

为企业级部署需求而生:

  • 高性能 - 基于 Project Reactor 的响应式架构确保非阻塞执行。GraalVM 原生镜像编译可实现 200ms 冷启动时间,使 AgentScope 适用于 Serverless 和自动扩缩容环境。

  • 安全沙箱 - AgentScope Runtime 为不受信任的工具代码提供隔离执行环境。内置 GUI 自动化、文件系统操作和移动设备交互等预置沙箱,防止对系统资源的未授权访问。

  • 可观测性 - 与 OpenTelemetry 原生集成支持整个智能体执行链路的分布式追踪。AgentScope Studio 提供可视化调试、实时监控以及面向开发和生产环境的全面日志记录。

快速开始

环境要求: JDK 17+

<dependency>
    <groupId>io.agentscope</groupId>
    <artifactId>agentscope</artifactId>
    <version>1.0.11</version>
</dependency>
ReActAgent agent = ReActAgent.builder()
    .name("Assistant")
    .sysPrompt("You are a helpful AI assistant.")
    .model(DashScopeChatModel.builder()
        .apiKey(System.getenv("DASHSCOPE_API_KEY"))
        .modelName("qwen-max")
        .build())
    .build();

Msg response = agent.call(Msg.builder()
        .textContent("Hello!")
        .build()).block();
System.out.println(response.getTextContent());

更多示例请参阅文档

贡献

欢迎贡献!请查阅 CONTRIBUTING.md 了解相关规范。

社区

Discord 钉钉 微信

许可证

Apache License 2.0 - 详见 LICENSE

论文引用

如果您觉得 AgentScope 有帮助,请引用我们的论文:

贡献者