阿里開源企業級智能助手框架 Assistant Agent

新聞
HongKong
10
10:54 AM · Jan 27 ,2026

作者:殘風、梔七

更多接入與使用方式,可查看文末微信與釘釘羣,與官方維護團隊取得聯繫。

📖 簡介

Assistant Agent 是一個基於 Spring AI Alibaba 構建的企業級智能助手框架,採用代碼即行動(Code-as-Action)範式,通過生成和執行代碼來編排工具、完成任務。它是一個能理解、能行動、能學習 的智能助手解決方案,可幫助企業快速構建智能答疑客服、系統診斷、運維助手、業務助理、AIOps 等智能體。

倉庫地址:https://github.com/spring-ai-alibaba/AssistantAgent

技術特性

  • 🚀代碼即行動(Code-as-Action) :Agent 通過生成並執行代碼來完成任務,而非僅僅調用預定義工具,可以在代碼中靈活編排、組合多個工具,實現複雜流程
  • 🔒安全沙箱:AI 生成的代碼在 GraalVM 多語言沙箱中安全運行,具備資源隔離能力
  • 📊多維評估:通過評估圖(Graph)進行多層次意圖識別,精準指導 Agent 行為
  • 🔄Prompt 動態組裝:根據場景及前置評估結果動態注入上下文(經驗、知識等)到 Prompt 中,靈活處理不同任務
  • 🧠經驗學習:自動積累成功經驗,持續提升後續任務的表現
  • 快速響應:熟悉場景下,跳過 LLM 推理過程,基於經驗快速響應

Assistant Agent 能幫你做什麼?

Assistant Agent 是一個功能完整的智能助手,具備以下核心能力:

  • 🔍智能問答:支持多數據源統一檢索架構(通過 SPI 可擴展知識庫、Web 等數據源),提供準確、可溯源的答案
  • 🛠️工具調用:支持 MCP、HTTP API(OpenAPI)等協議,靈活接入海量工具,可組合調用實現複雜業務流程
  • 主動服務:支持定時任務、延遲執行、事件回調,讓助手主動為你服務
  • 📬多渠道觸達:內置 IDE 回覆,允許通過 SPI 可擴展釘釘、飛書、企微、Webhook 等渠道

為什麼選擇 Assistant Agent?

適用場景

  • 智能客服:接入企業知識庫,智能解答用户諮詢
  • 運維助手:對接監控、工單系統,自動處理告警、查詢狀態、執行操作
  • 業務助理:連接 CRM、ERP 等業務系統,輔助員工完成日常工作

💡 以上僅為典型場景示例。通過配置知識庫和接入工具,Assistant Agent 可適配更多業務場景,歡迎探索。

整體工作原理

以下是 Assistant Agent 處理一個完整請求的端到端流程示例:

項目結構

assistant-agent/
├── assistant-agent-common          # 通用工具、枚舉、常量
├── assistant-agent-core            # 核心引擎:GraalVM 執行器、工具註冊表
├── assistant-agent-extensions      # 擴展模塊:
│   ├── dynamic/               #   - 動態工具(MCP、HTTP API)
│   ├── experience/            #   - 經驗管理與快速意圖配置
│   ├── learning/              #   - 學習提取與存儲
│   ├── search/                #   - 統一搜索能力
│   ├── reply/                 #   - 多渠道回覆
│   ├── trigger/               #   - 觸發器機制
│   └── evaluation/            #   - 評估集成
├── assistant-agent-prompt-builder  # Prompt 動態組裝
├── assistant-agent-evaluation      # 評估引擎
├── assistant-agent-autoconfigure   # Spring Boot 自動配置
└── assistant-agent-start           # 啓動模塊

🚀 快速啓動

前置要求

  • Java 17+
  • Maven 3.8+
  • DashScope API Key

1. 克隆並構建

git clone https://github.com/spring-ai-alibaba/AssistantAgent.git
cd assistant-agent
mvn clean install -DskipTests

2. 配置 API Key

export DASHSCOPE_API_KEY=your-api-key-here

3. 最小配置

項目已內置默認配置,只需確保 API Key 正確即可。如需自定義,可編輯 assistant-agent-start/src/main/resources/application.yml

spring:
  ai:
    dashscope:
      api-key: ${DASHSCOPE_API_KEY}
      chat:
        options:
          model: qwen-max

4. 啓動應用

cd assistant-agent-start
mvn spring-boot:run

所有擴展模塊默認開啓並採用合理的配置,無需額外配置即可快速啓動。

5. 配置知識庫(接入業務知識)

💡 框架默認提供 Mock 知識庫實現用於演示測試。生產環境需要接入真實知識源(如向量數據庫、Elasticsearch、企業知識庫 API 等),以便 Agent 能夠檢索並回答業務相關問題。

方式一:快速體驗(使用內置 Mock 實現)

默認配置已啓用知識庫搜索,可直接體驗:

spring:
  ai:
    alibaba:
      codeact:
        extension:
          search:
            enabled: true
            knowledge-search-enabled: true  # 默認開啓

方式二:接入真實知識庫(推薦)

實現 SearchProvider 接口,接入你的業務知識源:

package com.example.knowledge;
import com.alibaba.assistant.agent.extension.search.spi.SearchProvider;
import com.alibaba.assistant.agent.extension.search.model.*;
import org.springframework.stereotype.Component;
import java.util.*;
@Component  // 添加此註解,Provider 會自動註冊
public class MyKnowledgeSearchProvider implements SearchProvider {
    @Override
    public boolean supports(SearchSourceType type) {
        return SearchSourceType.KNOWLEDGE == type;
    }
    @Override
    public List<SearchResultItem> search(SearchRequest request) {
        List<SearchResultItem> results = new ArrayList<>();
        // 1. 從你的知識源查詢(向量數據庫、ES、API 等)
        // 示例:List<Doc> docs = vectorStore.similaritySearch(request.getQuery());
        // 2. 轉換為 SearchResultItem
        // for (Doc doc : docs) {
        //     SearchResultItem item = new SearchResultItem();
        //     item.setId(doc.getId());
        //     item.setSourceType(SearchSourceType.KNOWLEDGE);
        //     item.setTitle(doc.getTitle());
        //     item.setSnippet(doc.getSummary());
        //     item.setContent(doc.getContent());
        //     item.setScore(doc.getScore());
        //     results.add(item);
        // }
        return results;
    }
    @Override
    public String getName() {
        return "MyKnowledgeSearchProvider";
    }
}

常見知識源接入示例

🧩 核心模塊介紹

評估模塊(Evaluation)

作用:多維度意圖識別框架,通過評估圖(Graph)對信息進行多層次特質識別。

┌──────────────────────────────────────────────────────────────────┐
│                    評估圖 (Evaluation Graph) 示例                  │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  用户輸入: "查詢今日訂單"                                           │
│          │                                                       │
│          ▼                                                       │
│  ┌─────────────────────────────────────────────────────────┐     │
│  │ Layer 1 (並行執行)                                      │     │
│  │   ┌────────────┐         ┌────────────┐                 │     │
│  │   │ 是否模糊?   │         │ 輸入改寫     │                 │     │
│  │   │ 清晰/模糊   │         │(增強)      │                 │     │
│  │   └─────┬──────┘         └─────┬──────┘                 │     │
│  └─────────┼──────────────────────┼────────────────────────┘     │
│            │                      │                              │
│            └──────────┬───────────┘                              │
│                       ▼                                          │
│  ┌─────────────────────────────────────────────────────────┐     │
│  │ Layer 2 (基於改寫內容,並行執行)                            │     │
│  │   ┌──────────┐   ┌──────────┐   ┌──────────┐            │     │
│  │   │ 檢索經驗  │   │ 匹配工具  │   │ 搜索知識  │             │     │
│  │   │ 有/無    │   │ 有/無     │   │ 有/無    │             │     │
│  │   └──────────┘   └──────────┘   └──────────┘            │     │
│  └─────────────────────────────────────────────────────────┘     │
│                       │                                          │
│                       ▼                                          │
│            ┌────────────────────┐                                │
│            │ 整合不同維度評估結果  │                                │
│            │ → 傳遞給後續模塊     │                                │
│            └────────────────────┘                                │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

核心能力

  • 雙評估引擎:
    • LLM 評估: 通過大模型進行復雜語義判斷,用户可完全自定義評估 Prompt(customPrompt),也可使用默認 Prompt 組裝(支持 description、workingMechanism、fewShots 等配置)
    • Rule-based 評估: 通過 Java 函數實現規則邏輯,用户自定義 Function<CriterionExecutionContext, CriterionResult> 執行任意規則判斷,適合閾值檢測、格式校驗、精確匹配等場景
  • 依賴關係自定義: 評估項可通過 dependsOn 聲明前置依賴,系統自動構建評估圖按拓撲執行,無依賴項並行、有依賴項順序執行,後續評估項可訪問前置評估項的結果
  • 評估結果: 支持 BOOLEANENUMSCOREJSONTEXT 等類型,傳遞給 Prompt Builder 驅動動態組裝

Prompt Builder 模塊

作用:根據評估結果和運行時上下文,動態組裝發送給模型的 Prompt。示例:

┌─────────────────────────────────────────────────────────────────────────┐
│                   Prompt Builder - 條件化動態生成                         │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  評估結果輸入:                                                            │
│  ┌────────────────────────────────────────────────────────┐             │
│  │ 模糊: 是  │ 經驗: 有  │ 工具: 有  │ 知識: 無               │             │
│  └────────────────────────────────────────────────────────┘             │
│                    │                                                    │
│                    ▼                                                    │
│  ┌────────────────────────────────────────────────────────────────┐     │
│  │              自定義 PromptBuilder 條件匹配                       │     │
│  │                                                                │     │
│  │   模糊=是 ──────▶ 注入 [澄清引導 Prompt]                          │     │
│  │   模糊=否 ──────▶ 注入 [直接執行 Prompt]                          │     │
│  │                                                                │     │
│  │   經驗=有 ──────▶ 注入 [歷史經驗參考]                              │     │
│  │   工具=有 ──────▶ 注入 [工具使用説明]                              │     │
│  │   知識=有 ──────▶ 注入 [相關知識片段]                              │     │
│  │                                                                │     │
│  │   組合示例1: 模糊+無工具+無知識 ──▶ [追問用户 Prompt]               │     │
│  │   組合示例2: 清晰+有工具+有經驗 ──▶ [快速執行 Prompt]               │     │
│  └────────────────────────────────────────────────────────────────┘     │
│                    │                                                    │
│                    ▼                                                    │
│  ┌────────────────────────────────────────────────────────────────┐     │
│  │ 最終動態 Prompt:                                                │     │
│  │ [系統提示] + [澄清引導] + [歷史經驗] + [工具説明] + [用户問題]        │     │
│  └────────────────────────────────────────────────────────────────┘     │
│                    │                                                    │
│                    ▼                                                    │
│              ┌──────────┐                                               │
│              │   模型    │                                               │
│              └──────────┘                                               │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

核心能力

  • 多個 PromptBuilder 按優先級順序執行
  • 每個 Builder 根據評估結果決定是否貢獻、貢獻什麼內容
  • 支持自定義 Builder,根據業務需求定製 Prompt 邏輯
  • 非侵入式,在模型調用層攔截

對比傳統方案

學習模塊(Learning)

作用:從 Agent 執行歷史中自動提取並保存有價值的經驗。

┌─────────────────────────────────────────────────────────────────────────┐
│                         學習模塊工作流程                                   │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌────────────────────────────────────────────────────────────────────┐ │
│  │                        Agent 執行過程                               │ │
│  │                                                                    │ │
│  │  輸入 ──▶ 推理 ──▶ 代碼生成 ──▶ 執行 ──▶ 輸出                          │ │
│  │   │        │          │         │        │                         │ │
│  │   └────────┴──────────┴─────────┴────────┘                         │ │
│  │                        │                                           │ │
│  └────────────────────────┼───────────────────────────────────────────┘ │
│                           ▼                                             │
│              ┌────────────────────────┐                                 │
│              │      學習上下文捕獲      │                                 │
│              │  - 用户輸入             │                                 │
│              │  - 中間推理步驟          │                                │
│              │  - 生成的代碼           │                                 │
│              │  - 執行結果             │                                │
│              └───────────┬────────────┘                                │
│                          │                                             │
│                          ▼                                             │
│   ┌──────────────────────────────────────────────────────────────┐     │
│   │                    學習提取器分析                              │     │
│   │  ┌────────────┐  ┌────────────┐  ┌────────────┐              │     │
│   │  │ 經驗提取器  │  │ 模式提取器   │  │ 錯誤提取器   │              │     │
│   │  │ 成功模式    │  │ 通用模式    │  │ 失敗教訓     │              │     │
│   │  └─────┬──────┘  └─────┬──────┘  └─────┬──────┘              │     │
│   └────────┼───────────────┼───────────────┼─────────────────────┘     │
│            │               │               │                           │
│            └───────────────┼───────────────┘                           │
│                            ▼                                           │
│                   ┌────────────────┐                                   │
│                   │   持久化存儲    │ ──▶ 供後續任務參考使用                │
│                   └────────────────┘                                   │
│                                                                        │
└────────────────────────────────────────────────────────────────────────┘

核心能力

  • After-Agent 學習: 每次 Agent 運行完成後提取經驗
  • After-Model 學習: 每次模型調用後提取經驗
  • Tool Interceptor: 從工具調用中提取經驗
  • 離線學習: 批量分析歷史數據提取模式
  • 學習過程: 捕獲執行上下文 → 提取器分析識別 → 生成經驗記錄 → 持久化存儲供後續複用

經驗模塊(Experience)

作用:積累和複用歷史成功執行經驗。

┌─────────────────────────────────────────────────────────────────────────┐
│                         經驗模塊工作示意                                   │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  【場景1: 經驗積累】                                                       │
│                                                                         │
│   用户: "查詢訂單狀態"  ──▶  Agent 成功執行  ──▶     ┌────────────────┐     │
│                                                  │ 保存經驗:       │     │
│                                                  │ - React決策經驗 │     │
│                                                  │ - Code經驗     │     │
│                                                  │ - 常識經驗      │     │
│                                                  └────────────────┘     │
│                                                           │             │
│                                                           ▼             │
│                                                  ┌────────────────┐     │
│                                                  │   經驗庫        │     │
│                                                  └────────────────┘     │
│                                                                         │
│  【場景2: 經驗複用】                                       |              │
│                                                          │              │
│   用户: "查詢我的訂單狀態"  ◀────  匹配相似經驗  ◀────────────┘              │
│            │                                                            │
│            ▼                                                            │
│   ┌─────────────────────────────────────────────────┐                   │
│   │ Agent 參考歷史經驗,更快決策+生成正確代碼             │                   │
│   └─────────────────────────────────────────────────┘                   │
│                                                                         │
│  【場景3: 快速意圖響應】                                                   │
│                                                                         │
│   ┌─────────────────────────────────────────────────────────────────┐   │
│   │ 經驗庫                                                           │   │
│   │   ┌─────────────────────┐       ┌────────────────────────────┐  │   │
│   │   │ 經驗A (普通)         │       │ 經驗B (✓ 已配置快速意圖)      │  │   │
│   │   │ 無快速意圖配置        │       │   條件: 前綴匹配"查看*銷量"   │  │   │
│   │   │ → 注入prompt供llm參考│       │   動作: 調用銷量查詢API       │  │   │
│   │   └─────────────────────┘       └───────────┬────────────────┘  │   │
│   └─────────────────────────────────────────────┼───────────────────┘   │
│                                                 │ 條件命中               │
│                                                 ▼                       │
│   用户: "查看今日銷量"  ──▶  匹配經驗B快速意圖  ──▶  跳過LLM,直接執行          │
│                                                                         │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

核心能力

  • 多類型經驗: 代碼生成經驗、ReAct 決策經驗、常識經驗,為類似任務提供歷史參考
  • 靈活複用: 經驗可注入 Prompt 或用於快速意圖匹配
  • 生命週期管理: 支持經驗的創建、更新、刪除
  • 快速意圖響應:
    • 經驗需顯式配置 fastIntentConfig 才能啓用
    • 匹配已配置條件時,跳過 LLM 完整推理,直接執行預記錄的工具調用或代碼
    • 支持多條件匹配:消息前綴、正則、元數據、狀態等

觸發器模塊(Trigger)

作用:創建和管理定時任務或事件觸發的 Agent 執行。

┌─────────────────────────────────────────────────────────────────────────┐
│                         觸發器模塊能力示意                                 │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  【定時觸發】                                                             │
│                                                                         │
│   用户: "每天早上9點給我發送銷售日報"                                        │
│            │                                                            │
│            ▼                                                            │
│   ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐   │
│   │  Agent 創建      │     │   調度器         │     │  自動執行        │   │
│   │  Cron 觸發器     │────▶│  0 9 * * *      │────▶│  生成日報        │   │
│   │  (自我調度)      │     │                 │     │  發送通知        │    │
│   └─────────────────┘     └─────────────────┘     └─────────────────┘   │
│                                                                         │
│  【延遲觸發】                                                             │
│                                                                         │
│   用户: "30分鐘後提醒我開會"                                               │
│            │                                                            │
│            ▼                                                            │
│   ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐   │
│   │  Agent 創建      │     │   30分鐘後      │     │  發送提醒         │   │
│   │  一次性觸發器     │────▶│   觸發          │────▶│  "該開會了"       │   │
│   └─────────────────┘     └─────────────────┘     └─────────────────┘   │
│                                                                         │
│  【回調觸發】                                                             │
│                                                                         │
│   用户: "滿足xx條件時幫我xx"                                               │
│                                                                         │
│   外部系統: 發送事件到 Webhook                                             │
│            │                                                            │
│            ▼                                                            │
│   ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐   │
│   │  接收回調        │     │   觸發 Agent     │     │  處理事件        │   │
│   │  Webhook 事件   │────▶│   執行任務        │────▶│  返回響應        │   │
│   └─────────────────┘     └─────────────────┘     └─────────────────┘   │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

核心能力

  • TIME_CRON 觸發器:支持 Cron 表達式定時觸發任務
  • TIME_ONCE 觸發器:支持一次性延遲觸發
  • CALLBACK 觸發器:支持回調事件觸發
  • Agent 可通過工具自主創建觸發器,實現"自我調度"

回覆渠道模塊(Reply Channel)

作用:提供靈活的消息回覆能力,支持多種輸出渠道。

┌─────────────────────────────────────────────────────────────────────────┐
│                       回覆渠道模塊能力示意                                 │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│   Agent 需要向用户回覆消息                                                 │
│            │                                                            │
│            ▼                                                            │
│   ┌─────────────────────────────────────────────────────────────────┐   │
│   │                    回覆渠道路由                                   │   │
│   └─────────────────────────────────────────────────────────────────┘   │
│            │                                                            │
│            ├──────────────┬──────────────┬──────────────┐               │
│            ▼              ▼              ▼              ▼               │
│   ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐        │
│   │  DEFAULT   │  │  IDE_CARD  │  │ IM_NOTIFY  │  │  WEBHOOK   │        │
│   │  文本回復   │  │  卡片展示   │   │  消息推送   │  │  JSON推送   │        │
│   └─────┬──────┘  └─────┬──────┘  └─────┬──────┘  └─────┬──────┘        │
│         │               │               │               │               │
│         ▼               ▼               ▼               ▼               │
│   ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐          │
│   │ 控制枱    │    │   IDE    │    │   IM     │    │ 第三方    │          │
│   │ 終端回覆  │    │ 富文本卡片 │     │ (可擴展) │    │  系統     │          │
│   └──────────┘    └──────────┘    └──────────┘    └──────────┘          │
│                                                                         │
│  【使用示例】                                                             │
│                                                                         │
│   用户: "分析完成後發送結果"                                                │
│            │                                                            │
│            ▼                                                            │
│   Agent: send_message(text="分析結果...")                                │
│            │                                                            │
│            ▼                                                            │
│   用户收到消息: "📊 分析結果: ..."                                         │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

核心能力

  • 多渠道路由: Agent 可根據場景選擇不同渠道回覆
  • 配置驅動: 動態生成回覆工具,無需編碼
  • 同步異步支持: 支持同步和異步回覆模式
  • 統一接口: 屏蔽底層實現差異
  • 內置示例渠道: IDE_TEXT(演示用)
  • 可擴展渠道(通過實現 ReplyChannelDefinition SPI):IDE_CARDIM_NOTIFICATION(釘釘/飛書/企微)、WEBHOOK_JSON 等,需用户自行實現

工具擴展模塊(Dynamic Tools)

作用:提供高度可擴展的工具體系,讓 Agent 能夠調用各類外部工具完成任務。

┌─────────────────────────────────────────────────────────────────────────┐
│                        工具擴展架構                                       │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│   Agent 需要執行操作                                                      │
│            │                                                            │
│            ▼                                                            │
│   ┌──────────────────────────────────────────────────────────────────┐  │
│   │                   CodeactTool 工具體系                            │  │
│   └─────────────────────────────────────────────────────────────────┘   │
│            │                                                            │
│            ├─────────────┬─────────────┬─────────────┬──────────────┐   │
│            ▼             ▼             ▼             ▼              ▼   │
│   ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌───────┐ │
│   │   MCP      │ │   HTTP     │ │  Search    │ │  Trigger   │ │ 自定義 │ │
│   │   Tools    │ │   API      │ │  Tools     │ │  Tools     │ │ Tools │ │
│   │            │ │   Tools    │ │            │ │            │ │       │ │
│   └─────┬──────┘ └─────┬──────┘ └─────┬──────┘ └─────┬──────┘ └───┬───┘ │
│         │              │              │              │            │     │
│         ▼              ▼              ▼              ▼            ▼     │
│   ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐  ┌──────┐   │
│   │ 任意 MCP │   │ REST API │   │ 知識檢索   │   │ 定時任務  │  │ ...  │   │
│   │ Server   │   │ OpenAPI  │   │ 項目搜索  │   │ 事件回調  │  │      │    │
│   └──────────┘   └──────────┘   └──────────┘   └──────────┘  └──────┘   │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

核心能力

  • MCP 工具支持: 一鍵接入任意 MCP Server,複用 MCP 工具生態
  • HTTP API 支持: 通過 OpenAPI 規範接入 REST API,調用企業現有接口
  • 內置工具類型: 搜索(Search)、回覆(Reply)、觸發器(Trigger)、學習(Learning)等
  • 自定義工具 SPI: 實現 CodeactTool 接口,輕鬆擴展新工具

知識檢索模塊(Knowledge Search)

作用:多數據源統一檢索引擎,為 Agent 的問答和決策提供知識支撐。

┌─────────────────────────────────────────────────────────────────────────┐
│                       多數據源檢索架構                                     │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  用户問題: "如何配置數據庫連接池?"                                          │
│            │                                                            │
│            ▼                                                            │
│  ┌─────────────────────────────────────────────────────────────────┐    │
│  │                      統一檢索接口                                 │    │
│  └─────────────────────────────────────────────────────────────────┘    │
│            │                                                            │
│            ├────────────────┬────────────────┬────────────────┐         │
│            ▼                ▼                ▼                ▼         │
│   ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  ┌─────────┐     │
│   │    知識庫     │  │    項目       │  │     Web      │  │  自定義  │    │
│   │   Provider   │  │   Provider   │  │   Provider   │  │Provider │    │
│   │   (主要)      │  │   (可選)     │  │   (可選)      │  │  (SPI)  │    │
│   └──────┬───────┘  └──────┬───────┘  └──────┬───────┘  └───┬─────┘    │
│          │                 │                 │              │          │
│          ▼                 ▼                 ▼              ▼          │
│   ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  ┌────────┐      │
│   │ FAQ / 文檔    │  │ 源代碼       │  │ 網絡文章       │  │  ...   │      │
│   │ 歷史問答      │  │ 配置文件      │  │ 技術論壇       │  │        │      │
│   │ 團隊筆記      │  │ 日誌         │  │               │  │        │      │
│   └──────────────┘  └─────────────┘  └───────────────┘  └────────┘      │
│          │                 │                 │              │          │
│          └─────────────────┴─────────────────┴──────────────┘          │
│                            │                                           │
│                            ▼                                           │
│               ┌────────────────────────┐                               │
│               │ 聚合排序                │                               │
│               │ → 注入 Prompt          │                                │
│               └────────────────────────┘                               │
│                                                                        │
└────────────────────────────────────────────────────────────────────────┘

核心能力

  • 統一檢索接口: SearchProvider SPI,支持可插拔數據源
  • 演示 Provider: 內置知識庫、項目、Web 的 Mock 實現(僅供演示和測試)
  • 自定義擴展: 通過實現 SearchProvider 接口,接入任意數據源(數據庫、向量庫、API)
  • 結果聚合: 支持可配置的排序策略
  • 業務價值: 接入企業知識庫提供準確答案、支持答案溯源、降低人工客服壓力

配置示例

spring:
  ai:
    alibaba:
      codeact:
        extension:
          search:
            enabled: true
            knowledge-search-enabled: true   # 知識庫(默認 Mock 實現)
            project-search-enabled: false    # 項目代碼(默認 Mock 實現)
            web-search-enabled: false        # Web 搜索(默認 Mock 實現)
            default-top-k: 5
            search-timeout-ms: 5000

💡 以上搜索功能默認提供 Mock 實現供演示測試。生產環境需實現 SearchProvider SPI 接入實際數據源。

🙏 致謝:

  • Spring AI

    https://github.com/spring-projects/spring-ai

  • Spring AI Alibaba

    https://github.com/alibaba/spring-ai-alibaba

  • GraalVM

    https://www.graalvm.org/

聯繫方式:

  • 搜索加入釘釘羣:130240015687
user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.