embabel/embabel-agent
Agent framework for the JVM. Pronounced Em-BAY-bel /ɛmˈbeɪbəl/
Embabel Agent Framework – 快速概覽
是什麼 – 用於在 JVM 上建構 代理型 應用程式的 Java/Kotlin 庫。您只需描述 目標、動作、條件 和 領域模型,框架便會自動規劃並執行一系列動作(包含 LLM 呼叫),以達成這些目標。
為何重要 – 多數現有的 LLM 為中心的程式碼將原始 HTTP 呼叫與業務邏輯混雜,很快變得難以測試、重用與擴展。Embabel 將規劃層從您的程式碼中抽離,提供強型別、與 Spring 相容的元件,並原生支援複雜的 AI 規劃演算法(GOAP、Utility AI)。
核心概念
| 概念 | 作用 |
|---|---|
| 代理 | 一個容器,包含一組在領域模型上操作的動作、目標與條件。 |
| 動作 | 單一步驟——可以是純 Java/Kotlin 程式碼、LLM 提示,或工具啟用的操作。 |
| 目標 | 代理試圖達成的期望最終狀態。 |
| 條件 | 每次動作執行後重新檢查的前置條件/後置條件;它們驅動重新規劃。 |
| 計畫 | 動態生成的動作序列;每一步後都會重新生成(OODA 循環)。 |
| AgentPlatform | 運行時環境,支援三種模式:Focused(顯式呼叫)、Closed(為意圖選擇一個代理)、Open(發現目標並即時建構自訂代理)。 |
主要特性(如 README 所述)
- 動態規劃:使用目標導向動作規劃(GOAP)或效用 AI;不只是靜態狀態機。
- 強型別:動作、目標與條件是普通的 Kotlin/Java 類別,因此 IDE 重構與編譯時檢查均可正常運作。
- Spring 集成:代理可作為 Spring Bean 使用,受益於相依性注入、AOP、事務管理等特性。
- LLM 混合:動作可透過輕量級
Ai包裝器呼叫任意 LLM(OpenAI、本地模型等);可將廉價本地模型用於簡單步驟,大模型用於創造性任務。 - 可擴展規劃:規劃演算法可插拔;可替換 GOAP、Utility AI,或提供自訂演算法。
- 可測試性:可像普通方法一樣對動作進行單元測試;框架還支援端對端代理測試。
- 多種執行模式:從決定性的「聚焦」呼叫,到可跨代理組合動作的探索性「開放」模式。
- 面向未來:路線圖中提及與其他 Embabel 實例的聯邦協作及多目標流程的演進。
典型用例
- 企業工作流程:需要在流程中呼叫 LLM(如摘要、分類)但其餘部分保留在現有 Java/Kotlin 服務中。
- 面向聊天的助手:將使用者意圖映射為目標,系統動態組裝計畫。
- 工具增強型代理:結合網路搜尋、資料庫存取與 LLM 推理。
- 成本敏感型 AI 流水線:簡單轉換使用廉價本地模型,僅在需要時切換到大模型。
快速入門(來自 README)
- 使用提供的 GitHub 模板建立專案:
- Java:
https://github.com/embabel/java-agent-template - Kotlin:
https://github.com/embabel/kotlin-agent-template
- Java:
- 加入 Maven 依賴(徽章顯示座標):
<dependency> <groupId>com.embabel.agent</groupId> <artifactId>embabel-agent-api</artifactId> <version>…</version> </dependency> - 寫代理——使用 Spring 風格註解(
@Agent、@Action、@Goal、@Condition)或 Kotlin DSL(agent { … })。 - 執行——
AgentPlatform將執行計畫。快速示範只需OPENAI_API_KEY和 Maven 安裝即可。 - 探索範例——查看 Embabel Agent Examples 倉儲和 Tripper 旅行規劃器示範,了解完整堆疊應用。
生態系統與工具
- 文件:即時文件位於
https://docs.embabel.com/embabel-agent/guide/… - 建構與 CI:Maven、GitHub Actions、SonarCloud 質量門禁、Docker 鏡像
- 效能分析:與 YourKit 和 JProfiler 集成(徽章表明開發中使用)
- 社群:支援與討論的 Discord 伺服器(
discord.gg/t6bjkyj93q) - 相關專案:基於 Spring AI,可與現有 Spring Boot 服務互操作
授權
Apache 2.0 – 允許商業使用的寬鬆開源授權。
總結 – Embabel 是一個真正的、生產級的框架,用於在 JVM 上建構 LLM 增強、目標驅動的代理。它抽象了規劃邏輯,保持程式碼強型別,並無縫整合到 Spring 生態系統中,使 Java/Kotlin 團隊能在不放棄現有技術棧的前提下,輕鬆建構智能、可重用的代理流程。
相關
- 專案
- 專案
- 專案
- 專案
- 專案