昨天。我还只是让 AI 调用了一个 Java Tool。结果今天。我已经开始让 AI 自动完成整个业务流程了。 现在。

昨天。

我还只是让 AI 调用了一个 Java Tool。

结果今天。

我已经开始让 AI 自动完成整个业务流程了。

现在。

我只需要一句话:

帮我创建一个 MacBook Pro 订单,并通知仓库发货
  • 1.

AI 就会自动:

查询库存
创建订单
调用仓库系统
返回执行结果
  • 1.
  • 2.
  • 3.
  • 4.

整个过程。

完全不需要人工操作。

最离谱的是:

  • 我根本没有写 if else。
  • AI 自己决定:
  • 调哪个接口
  • 什么时候调
  • 调用顺序是什么

这一刻我突然意识到:AI Agent 真正可怕的地方。已经不是聊天了。

而是:它开始“干活”了。

而且。今天这篇文章。你可以直接在本机跑起来。

今天这个 Demo 到底能实现什么?一句话:让 AI 自动操作 Spring Boot 系统。

例如:

用户输入:

帮我购买一台 MacBook Pro,并安排发货
  • 1.

AI 自动:

查询库存
创建订单
通知仓库
返回最终结果
  • 1.
  • 2.
  • 3.
  • 4.

重点来了:整个流程。不是程序员写死的。而是 AI 自己推理出来的。

这才是真正的:AI Agent。

最终运行效果(先看效果)

项目启动后。

浏览器访问:

http://localhost:8080/chat?message=帮我购买一台MacBook Pro,并安排发货
  • 1.

控制台输出:

[Tool] 查询库存:MacBook Pro
[Tool] 创建订单:MacBook Pro
[Tool] 通知仓库发货:MacBook Pro
  • 1.
  • 2.
  • 3.

接口返回:

MacBook Pro 库存充足。
订单已经创建成功。
仓库已经收到发货通知。
  • 1.
  • 2.
  • 3.

这意味着:

AI 已经开始自动执行业务流程。

整体架构(非常重要)

先理解整个流程。

用户
  │
  ▼
Claude / GPT Agent
  │
  ├──── queryStock()
  │
  ├──── createOrder()
  │
  ├──── sendWarehouseNotice()
  │
  ▼
Spring Boot System
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

Spring Boot 提供 Tool。

AI 负责:自动编排 Workflow。

第一步:创建 Spring Boot 项目

推荐 JDK:

JDK 17
  • 1.

推荐 Spring Boot:

Spring Boot 3.3.x
  • 1.

Maven 完整依赖(可直接复制)

创建:pom.xml

完整内容:

<project xmlns="http://maven.apache.org/POM/4.0.0">


    <modelVersion>4.0.0</modelVersion>


    <groupId>com.demo</groupId>
    <artifactId>spring-ai-agent-demo</artifactId>
    <version>1.0</version>


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.0</version>
    </parent>


    <properties>
        <java.version>17</java.version>
        <spring-ai.version>1.0.0</spring-ai.version>
    </properties>


    <dependencies>


        <!-- Spring Boot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>


        <!-- Spring AI -->
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
            <version>${spring-ai.version}</version>
        </dependency>


    </dependencies>


</project>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.

第二步:配置 AI 模型

创建:application.yml

配置:

server:
  port: 8080


spring:
  ai:
    openai:
      api-key: 你的API_KEY
      base-url: https://api.openai.com
      chat:
        options:
          model: gpt-4o
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

如果你用 Claude 中转:

也可以:

spring:
  ai:
    openai:
      api-key: sk-xxxx
      base-url: https://openrouter.ai/api/v1
      chat:
        options:
          model: anthropic/claude-3.7-sonnet
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

第三步:创建 Tool

今天最关键的部分来了。

Spring Boot 的普通方法。

就能直接变成 AI Tool。

Tool 1:查询库存

创建:StockTools.java

代码:

package com.demo.agent.tool;


import org.springframework.ai.tool.annotation.Tool;
import org.springframework.stereotype.Component;


@Component
public class StockTools {


    @Tool(description = "查询商品库存")
    public Integer queryStock(String productName) {


        System.out.println("[Tool] 查询库存:" + productName);


        return 99;
    }


}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

Tool 2:创建订单

创建:OrderTools.java

代码:

package com.demo.agent.tool;


import org.springframework.ai.tool.annotation.Tool;
import org.springframework.stereotype.Component;


@Component
public class OrderTools {


    @Tool(description = "创建订单")
    public String createOrder(String productName) {


        System.out.println("[Tool] 创建订单:" + productName);


        return "订单创建成功";
    }


}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

Tool 3:通知仓库

创建:WarehouseTools.java

代码:

package com.demo.agent.tool;


import org.springframework.ai.tool.annotation.Tool;
import org.springframework.stereotype.Component;


@Component
public class WarehouseTools {


    @Tool(description = "通知仓库发货")
    public String sendWarehouseNotice(String productName) {


        System.out.println("[Tool] 通知仓库发货:" + productName);


        return "仓库已收到发货通知";
    }


}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

第四步:创建 AI Agent Controller

创建:AgentController.java

完整代码:

package com.demo.agent.controller;


import com.demo.agent.tool.OrderTools;
import com.demo.agent.tool.StockTools;
import com.demo.agent.tool.WarehouseTools;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class AgentController {


    private final ChatClient chatClient;


    public AgentController(ChatClient.Builder builder,
                           OrderTools orderTools,
                           StockTools stockTools,
                           WarehouseTools warehouseTools) {


        this.chatClient = builder
                .defaultTools(
                        orderTools,
                        stockTools,
                        warehouseTools
                )
                .build();
    }


    @GetMapping("/chat")
    public String chat(String message) {


        return chatClient.prompt()
                .user(message)
                .call()
                .content();
    }


}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.

第五步:启动项目

直接运行:

SpringBootApplication
  • 1.

或者:

mvn spring-boot:run
  • 1.

启动成功:

Tomcat started on port 8080
  • 1.

第六步:真正开始测试

浏览器打开:

http://localhost:8080/chat?message=帮我购买一台MacBook Pro,并安排发货
  • 1.

然后你会看到:

控制台自动输出:

[Tool] 查询库存:MacBook Pro
[Tool] 创建订单:MacBook Pro
[Tool] 通知仓库发货:MacBook Pro
  • 1.
  • 2.
  • 3.

AI 返回:

MacBook Pro 库存充足。
订单创建成功。
仓库已经收到发货通知。
  • 1.
  • 2.
  • 3.

最关键的问题来了

很多人第一次看到这里。

会误以为:

程序员提前写好了:

if 用户要购买商品


    先查库存


    再创建订单


    再通知仓库
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

但实际上:完全没有。

整个流程:是 AI 自己推理出来的。

AI 为什么会自动调用多个 Tool?

因为:

AI 会分析:用户真正想完成什么任务

例如:

用户说:帮我购买 MacBook Pro

AI 会自动推理:购买前需要查库存

用户又说:安排发货

AI 会继续推理:需要调用仓库系统

所以:

AI 最终自动形成:

queryStock()
→ createOrder()
→ sendWarehouseNotice()
  • 1.
  • 2.
  • 3.

这已经不是:传统接口调用。

而是:AI Workflow。

这才是真正的 Agent

过去很多所谓 AI 应用。

本质只是:AI Chat

但今天这个 Demo:

已经开始进入:AI Execute

也就是:AI 自动执行。这是本质变化。

接下来还能怎么玩?

今天只是 3 个 Tool。

但企业里真正的系统。

可能有:

  • 用户服务
  • 订单服务
  • 库存服务
  • 支付服务
  • ERP
  • CRM
  • OA
  • 工单系统

而 AI Agent:

未来会自动调用:整个企业微服务体系。

例如:

帮我处理一个退款订单
  • 1.

AI 自动:

查询订单
校验支付
调退款接口
通知财务
更新CRM
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

这才是真正恐怖的地方。

AI 正在从 Chat 进入 Workflow

过去:AI = 聊天机器人

现在:AI = 自动执行系统

很多人还没意识到:未来的软件系统。

  • 可能会从:用户操作系统
  • 逐渐变成:AI 操作系统,而 Spring Boot。
  • 正在成为:AI Agent 时代最核心的企业底座。

最后

昨天。AI 还只是:调用 Tool

今天。AI 已经开始:自动完成业务流程

接下来。

AI 会进一步:

  • 自动审批
  • 自动工单流转
  • 自动调用微服务
  • 自动生成 SQL
  • 自动执行 Workflow

而 Java。

很可能会在 AI Agent 时代。

重新迎来一次真正的大爆发。

文章来自:51CTO

Loading

作者 yinhua

发表回复