作者:殘風、梔七
更多接入與使用方式,可查看文末微信與釘釘羣,與官方維護團隊取得聯繫。
📖 簡介
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>執行任意規則判斷,適合閾值檢測、格式校驗、精確匹配等場景
- LLM 評估: 通過大模型進行復雜語義判斷,用户可完全自定義評估 Prompt(
- 依賴關係自定義: 評估項可通過
dependsOn聲明前置依賴,系統自動構建評估圖按拓撲執行,無依賴項並行、有依賴項順序執行,後續評估項可訪問前置評估項的結果 - 評估結果: 支持
BOOLEAN、ENUM、SCORE、JSON、TEXT等類型,傳遞給 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(演示用) - 可擴展渠道(通過實現
ReplyChannelDefinitionSPI): 如IDE_CARD、IM_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 │ │
│ └────────────────────────┘ │
│ │
└────────────────────────────────────────────────────────────────────────┘
核心能力:
- 統一檢索接口:
SearchProviderSPI,支持可插拔數據源 - 演示 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