服務熱線
0755-83044319
發布時間:2025-03-03作者來源:薩科微瀏覽:705
背景:
1、AI智能體作為當前最優AI應用模式已然成為必會的開發能力。
2、AI智能體開發框架已然成為程序員必須掌握的新開發環境,類似visual studio這樣的開發工具。
3、AI Agent 讓 “人機協同” 成為新常態,個人與企業步入 AI 助理時代。AI Agent 能夠幫助未來企業構建以 “人機協同” 為核心的智能化運營新常態。
4、AI Agent 變革未來生產力的組織形式,對抗組織熵增。未來企業工作任務將在 AIGC 的助推作用下變得日益原子化和碎片化,復雜的流程將被無限拆解,再進行靈活的編排和組合,每個環節的效能和潛力都將被 AI 持續挖掘。
5、從供給端看,“人 + AI 數字員工”的高效協同模式將為大型企業對抗組織熵增提供理想的解法。
一、AI Agent是是啥?
1、基于大模型的AI應用
1)如果把大模型比作大腦,那 AI Agent 可以理解為小腦 + 手腳。
2)AI Agent可以接收外部信息,基于大模型的推理進行理解判斷,基于判斷做出決策,調用外部接口執行動作的一個自動執行的工作流應用。AI AGent可以與外部接受信息和交互。
2、對話AI就是一個智能體
DeepSeek,豆包,Kimi,元寶,這些都是對話智能體,接受外部提問,經過推理給生成答案內容。AI AGent可以獨立運行,自動化執行。
3、舉例
比如你做一個簡歷篩選,他可以把各種文件格式的,各種排版形式的簡歷放在一起按條件檢索,這種用傳統軟件開放方式是比較復雜,利用AI AGent開發就簡單很多,把簡歷導入知識庫,利用RAG技術通過AI AGent開發框架調用就可以了,把月量級的工作,變成周的工作。
4、與Copilot的區別
1)如果說 Copilot 是 “副駕駛”,那么 Agent 則可以算得上一個初級的 “主駕駛”。
2)Copilot提出生成結果,由人篩選,AI Agent可以自動化執行。
二、智能體開發需要的技術棧
1、智能體的關鍵組件組成
Agent=LLM(選擇大腦) + 規劃技能(拆解工作,規劃工作流) + 記憶(外部知識庫,本地上下文) + 工具使用(對接外部應用)的基礎架構。
1)基礎大模型
負責知識推理和內容生成, LLM 扮演了 Agent 的 “大腦”,在這個系統中提供推理、規劃等能力。
2)RAG開發框架,開發知識庫
用來建立智能體或者企業的私有知識庫,用來防止幻覺和增強行業知識和領域知識。
RAG就是通過檢索獲取相關的知識并將其融入Prompt,讓大模型能夠參考相應的知識從而給出合理回答。可以將RAG的核心理解為“檢索+生成”,前者主要是利用向量數據庫的高效存儲和檢索能力,召回目標知識;后者則是利用大模型和Prompt工程,將召回的知識合理利用,生成目標答案。
3)智能體開發框架
1)AI Agent開發平臺和工具
應用開發的工具鏈,開發包的集合,各種組件和插件不斷被開發出來。拖拉拽的開發工作流引擎,可以調用RAG,調用外部系統。發展越來越完善,越來能力越強。
2)智能體工作流開發框架,接收外部信息,檢索知識庫,檢索結果疊加輸入信息,調用基礎大模型推理,根據生成內容進行工作流執行。
4)RPA工具
應用系統集成自動化工具,可以模仿用戶輸入操作,實現自動化應用執行。可以與AGent框架集成外部應用。
5)向量數據庫,外部長期記憶
用來存儲私有知識庫,并提供檢索索引能力,提高效率的的向量數據庫和工具
三、智能體開發的技術架構選型
核心的選擇是大模型,大模型選擇就是DeepSeek+其他,然后就是智能體開發框架,智能體開發框架langchain用的比較多,這兩個選擇了,其他的就圍繞這兩個選就可以了。
1、選擇基礎大模型
選擇應用合適的大模型,有商業化的也有開源的,現在的話LLM模型就選擇DeepSeek就對了,多模態的沒有公認的的,看看業務需要吧
2、選擇智能體開發框架
1)國內:字節coze,阿里百煉,
2)國外開源:langchain,langgragh,dify這兩個是公認比較好的,autoGPT,crewAI。
(1)低代碼/無代碼開發:提供用戶友好的界面,通過可視化的方式允許開發者輕松定義Prompt、上下文和插件等。
(2)模塊化設計:采用模塊化的設計,每個模塊都有清晰的功能和接口,可以根據需求選擇性地使用。
(3)豐富的功能組件:包括AI工作流、RAG管道、Agent、模型管理、可觀測性功能等。
(4)支持多種大語言模型:已支持OpenAI GPT系列等模型,并計劃進一步擴展。
(5)數據處理和特征工程工具:提供了數據清洗、特征選擇、特征變換等功能。
集成外部知識源:允許自定義API接入外部知識源,讓大型語言模型深入理解企業知識和業務。
3、選擇RAG框架,知識庫管理
四、基于 DeepSeek-R1 + langchain 的 AI Agent 開發舉例
1. 環境準備
bash
安裝核心依賴
pip install langchain langchain-community transformers chromadb gradio
---
2. 核心代碼實現
(1) 初始化本地模型
python
from langchain_community.llms import HuggingFacePipeline
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
加載 DeepSeek-R1 本地模型
model_path = "/path/to/deepseek-r1" 替換為實際模型路徑
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path)
創建 HuggingFace 推理管道
text_generation_pipe = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
max_new_tokens=512,
temperature=0.3,
repetition_penalty=1.1
)
封裝為 LangChain 兼容的 LLM
local_llm = HuggingFacePipeline(pipeline=text_generation_pipe)
(2) 創建知識庫工具
python
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
初始化嵌入模型
embeddings = HuggingFaceEmbeddings(model_name="BAAI/bge-small-zh-v1.5")
加載本地文檔(示例使用 TXT 文件)
with open("knowledge_base.txt", "r") as f:
text = f.read()
文檔分塊處理
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
docs = text_splitter.split_text(text)
創建向量數據庫
vector_db = Chroma.from_texts(docs, embeddings, persist_directory="./chroma_db")
封裝為檢索工具
retriever = vector_db.as_retriever(search_kwargs={"k": 3})
(3) 添加實時搜索工具
python
from langchain_community.tools import DuckDuckGoSearchRun
初始化 DuckDuckGo 搜索工具
search_tool = DuckDuckGoSearchRun()
(4) 構建 Agent 系統
python
from langchain.agents import Tool, initialize_agent
from langchain.memory import ConversationBufferMemory
定義工具集
tools =
Tool(
name="知識庫查詢",
func=lambda query: str(retriever.get_relevant_documents(query)),
description="用于查詢本地知識庫中的專業信息"
),
Tool(
name="實時搜索",
func=search_tool.run,
description="用于獲取實時新聞、天氣、股票等[敏感詞]信息"
)
創建對話記憶
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
初始化 Agent
agent = initialize_agent(
tools,
local_llm,
agent="conversational-react-description",
memory=memory,
verbose=True
)
(5) 創建交互界面
python
import gradio as gr
定義 Gradio 交互函數
def chat(message, history):
response = agent.run(message)
return response
啟動 Web 服務
gr.ChatInterface(
chat,
title="DeepSeek-R1 智能助手",
description="支持本地知識庫查詢和實時網絡搜索"
).launch(share=True)
---
3. 應用場景演示
場景 1:查詢本地知識庫
用戶輸入:
"我們公司的售后服務政策是什么?"
Agent 響應流程:
1. 調用 `知識庫查詢` 工具檢索相關文檔
2. 將檢索結果輸入 DeepSeek-R1 生成自然語言回復
3. 輸出:"根據公司政策,所有產品享受3年質保,7天內無理由退貨..."
---
場景 2:實時信息檢索
用戶輸入:
"今天北京的天氣怎么樣?"
Agent 響應流程:
1. 識別需要實時數據,調用 `實時搜索` 工具
2. 獲取 DuckDuckGo 返回的天氣信息
3. 使用 DeepSeek-R1 總結搜索結果
4. 輸出:"根據[敏感詞]天氣數據,北京今日晴轉多云,氣溫18-25℃,空氣質量良好..."
---
場景 3:混合查詢
用戶輸入:
"對比我們產品A和競品B的技術參數"
Agent 響應流程:
1. 通過 `知識庫查詢` 獲取產品A的規格參數
2. 使用 `實時搜索` 獲取競品B的[敏感詞]信息
3. DeepSeek-R1 進行對比分析
4. 生成對比表格和總結建議
---
4. 關鍵優化技巧
(1) 提示詞工程優化
在 Agent 初始化前添加系統提示:
python
from langchain.prompts import MessagesPlaceholder
system_prompt = """你是一個[敏感詞]理,請遵守以下規則:
1. 優先使用知識庫查詢工具獲取準確信息
2. 涉及實時數據時必須使用搜索工具
3. 用中文分點回答,重要數據用加粗顯示"""
agent.agent.llm_chain.prompt.messages =
SystemMessage(content=system_prompt),
MessagesPlaceholder(variable_name="chat_history"),
HumanMessagePromptTemplate.from_template("{input}"),
MessagesPlaceholder(variable_name="agent_scratchpad")
(2) 結果后處理
添加響應格式校驗:
python
from langchain.output_parsers import StructuredOutputParser
from langchain.schema import OutputParserException
output_parser = StructuredOutputParser.from_response_schemas(
ResponseSchema(name="answer", type="string", description="主要回答內容"),
ResponseSchema(name="sources", type="list", description="數據來源")
)
def format_response(raw_response):
try:
return output_parser.parse(raw_response)
except OutputParserException:
return {"answer": raw_response, "sources": }
(3) 性能監控
集成 Prometheus 監控:
python
from prometheus_client import start_http_server, Counter
REQUEST_COUNTER = Counter('agent_requests', 'Total API requests')
RESPONSE_TIME = Histogram('agent_response_time', 'Response time in seconds')
@RESPONSE_TIME.time()
def chat(message, history):
REQUEST_COUNTER.inc()
...原有邏輯...
---
5. 部署架構
mermaid
graph TD
A用戶界面 --> B(Gradio Web Server)
B --> CLangChain Agent
C --> D{決策路由}
D -->本地知識 EChroma DB
D -->實時數據 FDuckDuckGo API
C --> GDeepSeek-R1 模型
G --> H響應生成
H --> B
---
6. 常見問題解決
問題 1:模型加載內存不足
解決方案:
python
使用 4-bit 量化加載
model = AutoModelForCausalLM.from_pretrained(
model_path,
load_in_4bit=True,
device_map="auto"
)
問題 2:檢索結果不準確
優化方法:
python
混合檢索策略
from langchain.retrievers import BM25Retriever, EnsembleRetriever
bm25_retriever = BM25Retriever.from_texts(docs)
ensemble_retriever = EnsembleRetriever(
retrievers=vector_db.as_retriever(), bm25_retriever,
weights=0.6, 0.4
)
問題 3:響應速度慢
加速技巧:
python
啟用流式響應
text_generation_pipe = pipeline(
...,
streamer=TextStreamer(tokenizer, skip_prompt=True)
)
啟用緩存
from langchain.cache import SQLiteCache
import langchain
langchain.llm_cache = SQLiteCache(database_path=".langchain.db")
---
擴展方向建議
1. 多模態支持:集成 LLaVA 等視覺模型處理圖片/PDF
2. API 擴展:添加企業內部系統接口(CRM/ERP)
3. 分布式部署:使用 Ray 框架實現計算資源擴展
4. 審計日志:記錄完整的 Agent 決策過程
這個示例展示了如何將本地部署的大模型與 LangChain 生態結合,構建具備實際應用價值的 AI Agent。開發者可以根據具體需求調整工具組合和業務流程。
免責聲明:本文來源于“數字化轉型分享”公眾號,本文僅代表作者個人觀點,不代表薩科微及行業觀點,只為轉載與分享,支持保護知識產權,轉載請注明原出處及作者,如有侵權請聯系我們刪除。
企業咨詢和陪跑請掃碼聯系
友情鏈接:站點地圖 薩科微官方微博 立創商城-薩科微專賣 金航標官網 金航標英文站
Copyright ?2015-2025 深圳薩科微半導體有限公司 版權所有 粵ICP備20017602號