Java 終于有自己的 AI Agent 框架了?

最近半年,AI Agent 可以說是技術(shù)圈最火的概念之一。

但很多 Java 團(tuán)隊(duì) 卻陷入一個(gè)非常尷尬的局面:

  • Python 的 AI 框架很強(qiáng)

  • Java 的企業(yè)系統(tǒng)很多

  • 兩者結(jié)合起來卻非常痛苦

例如當(dāng)前最流行的 Agent 框架:

  • LangChain

  • AutoGen

它們確實(shí)很好用。

但問題來了,

如果你的系統(tǒng)是:

  • Spring Cloud 微服務(wù)體系

  • 用戶權(quán)限走 Apache Shiro

  • 數(shù)據(jù)庫連接池是 Alibaba Druid

再想把 Python Agent 接進(jìn)來,基本就是:

大象硬要鉆老鼠洞。

調(diào)試?yán)щy、運(yùn)維復(fù)雜、安全難控。

-****01-

****為什么 Java 需要自己的 Agent 框架?** **

很多人會(huì)問:

Python Agent 不香嗎?

確實(shí)香,但落地企業(yè)系統(tǒng)時(shí)會(huì)遇到四個(gè)大坑。

① 技術(shù)棧割裂

真實(shí)企業(yè)系統(tǒng)通常是這樣的:

系統(tǒng)組件 技術(shù)
微服務(wù)框架 Spring Cloud
權(quán)限系統(tǒng) Shiro
配置中心 Nacos
鏈路追蹤 SkyWalking

如果引入 Python Agent:

<pre data-start="1135" data-end="1168" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

Java 系統(tǒng) <-> HTTP 調(diào) Python

</pre>

整個(gè)系統(tǒng)瞬間變成 雙語言架構(gòu)。

調(diào)試體驗(yàn):

頭皮發(fā)麻。

② 安全問題難以控制

很多 Agent 需要:

  • 查詢訂單

  • 調(diào)用數(shù)據(jù)庫

  • 操作業(yè)務(wù)系統(tǒng)

如果 Python 腳本直接跑在系統(tǒng)旁邊:

問題來了:

  • 權(quán)限怎么控制?

  • 出問題誰負(fù)責(zé)?

  • 怎么隔離訪問?

對于金融系統(tǒng)來說,這是 紅線問題

③ 運(yùn)維體系不兼容

Java 生態(tài)其實(shí)已經(jīng)非常成熟:

  • Arthas(線上診斷)

  • SkyWalking(鏈路追蹤)

  • Nacos(配置中心)

但 Python Agent 很難融入這一整套體系。

最終結(jié)果就是:

AI 成為系統(tǒng)里的“異類”。

④ 多 Agent 協(xié)作困難

真實(shí)業(yè)務(wù)很少是一個(gè) Agent 完成的。

例如電商客服場景:

<pre data-start="1656" data-end="1710" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

客服 Agent -> 查詢訂單 Agent -> 風(fēng)控 Agent -> 通知 Agent

</pre>

很多 Python 框架在:

  • 分布式部署

  • 多 Agent 協(xié)作

上支持并不好。

[圖片上傳失敗...(image-99fe7-1774345390872)]

-****02-

一個(gè)新選手登場

Alibaba 通義實(shí)驗(yàn)室開源了一個(gè)項(xiàng)目:

AgentScope Java

這是一個(gè)專門為 Java 開發(fā)者打造的企業(yè)級 AI Agent 框架。

它一發(fā)布就引爆了技術(shù)社區(qū)。

原因很簡單:

終于有人認(rèn)真為 Java 企業(yè)系統(tǒng) 做 Agent 框架了。

它并不是簡單的:

“把 LangChain 翻譯成 Java 版本”

而是從 企業(yè)級架構(gòu)重新設(shè)計(jì)。

AgentScope Java 采用了一種經(jīng)典模式:

ReAct

簡單理解:

讓 AI 一邊思考,一邊行動(dòng)。

Workflow vs ReAct

先看傳統(tǒng) Workflow 模式

<pre data-start="1947" data-end="1977" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

1 查詢數(shù)據(jù)庫 2 調(diào) API 3 返回結(jié)果

</pre>

所有步驟都是:

提前寫死的。

問題是:

業(yè)務(wù)一復(fù)雜,流程就會(huì)爆炸。

ReAct 模式是這樣:

<pre data-start="2046" data-end="2075" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

思考 -> 行動(dòng) -> 觀察 -> 再思考

</pre>

像人類一樣解決問題。

例如客服 Agent:

<pre data-start="2102" data-end="2171" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

用戶:訂單沒收到 Agent: 1 思考:需要查訂單 2 調(diào)用工具:查詢訂單 3 觀察:訂單物流異常 4 行動(dòng):觸發(fā)退款

</pre>

AgentScope 把這種模式做成了:

企業(yè)級可控框架。

傳統(tǒng) Agent 有個(gè)大問題:

一旦運(yùn)行就停不下來。

AgentScope 提供了 實(shí)時(shí)介入機(jī)制。

例如:

AgentRuntime runtime = AgentRuntime.builder()

核心能力有三個(gè):

能力 說明
安全中斷 隨時(shí)暫停 Agent
實(shí)時(shí)打斷 避免資源浪費(fèi)
狀態(tài)保存 自動(dòng)保存上下文

這對企業(yè)系統(tǒng)來說非常重要。

[圖片上傳失敗...(image-6bc7b1-1774345390870)]

-****03-

5分鐘開發(fā)一個(gè) Java Agent

AgentScope 的開發(fā)體驗(yàn)其實(shí)非常熟悉。

因?yàn)樗疃燃闪耍?/p>

Spring Boot

第一步:引入依賴

<dependency>

第二步:配置模型

agentscope:

第三步:定義 Agent

@AgentComponent("order-assistant")

AI 會(huì)自動(dòng)決定:

  • 什么時(shí)候調(diào)用工具

  • 調(diào)哪個(gè)工具

第四步:調(diào)用 Agent

@PostMapping("/chat")

一個(gè) 訂單客服 Agent 就完成了。

核心代碼:

不到 20 行。

安全問題是AgentScope 的殺手锏

企業(yè)系統(tǒng)最關(guān)心的不是 AI 能力,而是:

安全。

AgentScope 提供了多層沙箱。

文件系統(tǒng)沙箱

FileSystemSandbox.builder()

限制 Agent 只能訪問特定目錄。

網(wǎng)絡(luò)沙箱

<pre data-start="3984" data-end="4038" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

只允許訪問 internal-api.example.com api.weather.com

</pre>

防止 Agent 隨意訪問外網(wǎng)。

Docker 沙箱

限制:

<pre data-start="4082" data-end="4101" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

CPU 內(nèi)存 執(zhí)行環(huán)境

</pre>

保證系統(tǒng)安全。

多 Agent 協(xié)作:A2A + RocketMQ

AgentScope 還引入了:

A2A(Agent to Agent)協(xié)議

配合:

Apache RocketMQ

實(shí)現(xiàn)企業(yè)級通信。

例如:

RiskAgent risk = agentClient.find("risk-agent");

整個(gè)體驗(yàn):

就像調(diào)用微服務(wù)。

[圖片上傳失敗...(image-9155e9-1774345390870)]

-****04-****總結(jié)

Java AI 框架怎么選?

當(dāng)前 Java AI 生態(tài)主要有三種:

  • LangChain4j

  • Spring AI

  • AgentScope Java

簡單總結(jié):

框架 適合場景
LangChain4j 快速 Demo
Spring AI 標(biāo)準(zhǔn)化 AI 接入
AgentScope 企業(yè)級 Agent

要做生產(chǎn)級 Agent,AgentScope 更合適。

AgentScope Java 的出現(xiàn),其實(shí)說明了一件事:

AI 正在進(jìn)入企業(yè)核心系統(tǒng)。

過去 AI 只是:

  • 聊天

  • 寫代碼

  • 做 Demo

但未來 AI 會(huì)變成:

企業(yè)系統(tǒng)里的“數(shù)字員工”。

而 Java 開發(fā)者也不能再做旁觀者。

當(dāng) AI 成為新的生產(chǎn)力工具時(shí),真正的差距不在模型,

而在誰能把它接入真實(shí)業(yè)務(wù)系統(tǒng)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容