Agent开发模式与流程完整指南
场景A:快速原型验证→ Ollama部署 + ReAct模式 + Function Calling场景B:企业级应用→ Kubernetes集群 + 多Agent协作 + LangGraph编排 + Higress网关场景C:资源受限环境→ 模型蒸馏 + llama.cpp部署 + 量化优化。
主要内容亮点:
、、、
核心开发模式 - 详细介绍了Function Calling、ReAct、CoT、Reflexion等模式的原理和代码实现
完整开发流程 - 从基础准备、能力构建、工程化落地到部署运维的全流程步骤
关键技术工具 - 深入讲解LLaMA-Factory微调工具和主流蒸馏方案的使用方法
实战解决方案 - 提供3个真实案例:
*新闻分类智能体
金融分析多Agent系统
轻量级CPU部署客服Agent
、、、
目录
一、核心开发模式
1.1 基础能力模式
Function Calling模式(零开发框架)
核心思想:让Agent具备调用外部工具的能力,实现"模型+工具"的协作
适用场景:
- API调用(天气查询、数据检索)
- 本地函数执行(文件操作、计算任务)
- 第三方服务集成
实现方式:
# 定义工具函数
def get_weather(city: str) -> str:
return f"{city}今天晴天,温度25°C"
# 配置Function Calling
tools = [{
"name": "get_weather",
"description": "获取城市天气信息",
"parameters": {
"city": {"type": "string", "description": "城市名称"}
}
}]
1.2 Agent设计模式
CoT(Chain of Thought,思维链)
原理:引导Agent分步推理,提升复杂问题解决能力
应用示例:
用户问题:计算23×17
Agent思考过程:
1. 将23分解为20+3
2. 20×17=340
3. 3×17=51
4. 340+51=391
最终答案:391
ReAct(Reasoning + Acting)
核心流程:思考→行动→观察→再思考的循环
执行步骤:
- Thought:分析当前问题需要什么信息
- Action:调用工具获取信息
- Observation:观察工具返回结果
- Thought:基于结果继续推理或给出答案
代码示例:
while not task_complete:
thought = agent.think(current_state)
action = agent.decide_action(thought)
observation = execute_tool(action)
current_state = update_state(observation)
Reflexion(反思模式)
特点:Agent在执行后自我评估,优化策略
应用场景:
- 代码生成后的自我调试
- 答案质量的二次检查
- 策略迭代优化
ReWOO(工具并行调用)
优势:将任务拆分为多个子任务,并行调用工具提升效率
适用场景:
- 多数据源聚合(同时查询股票、新闻、财报)
- 批量处理任务
1.3 工程化开发模式
多Agent协作模式(A2A)
架构设计:多个专业Agent分工配合
典型案例:金融分析系统
- 数据采集Agent:抓取股票行情、新闻资讯
- 分析Agent:执行技术分析、基本面评估
- 报告Agent:生成投资建议报告
实现工具:LangGraph流程编排
MCP驱动模式
核心三要素:
- Model(模型):大语言模型作为智能核心
- Component(组件):工具、插件、数据源
- Platform(平台):统一的智能体运行环境
快速搭建示例:AI求职助手
- 模型:DeepSeek R1
- 组件:简历解析器、岗位匹配引擎、邮件发送工具
- 平台:LobeChat可视化对话界面
二、完整开发流程
阶段1:基础准备(模型与工具接入)
1.1 选择开源大模型
推荐模型:
- DeepSeek R1(推理能力强)
- Qwen系列(中文友好)
- LLaMA系列(生态完善)
1.2 私有化部署方案
| 方案 | 适用场景 | 部署难度 | 性能 |
|---|---|---|---|
| Ollama | 单机快速部署 | ⭐ | 中等 |
| Kubernetes | 企业级GPU集群 | ⭐⭐⭐ | 高 |
| llama.cpp | CPU轻量部署 | ⭐⭐ | 低 |
Ollama部署步骤:
# 1. 安装Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# 2. 拉取模型
ollama pull deepseek-r1:7b
# 3. 启动服务
ollama serve
# 4. 测试调用
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:7b",
"prompt": "你好,我是AI助手"
}'
1.3 接入工具生态
方式一:Function Calling配置
{
"tools": [
{
"name": "search_web",
"description": "搜索互联网信息",
"parameters": {
"query": "string"
}
}
]
}
方式二:LangChain Hub复用模板
from langchain import hub
prompt = hub.pull("hwchase17/react")
阶段2:Agent能力构建
2.1 选择设计模式并实现
ReAct模式实现示例:
from langchain.agents import initialize_agent, Tool
from langchain.llms import Ollama
# 定义工具
tools = [
Tool(
name="Calculator",
func=lambda x: eval(x),
description="执行数学计算"
)
]
# 初始化Agent
llm = Ollama(model="deepseek-r1:7b")
agent = initialize_agent(
tools,
llm,
agent="zero-shot-react-description"
)
# 执行任务
result = agent.run("计算(123+456)*2等于多少?")
2.2 能力优化(微调/蒸馏)
场景示例:新闻分类Agent
微调步骤:
- 准备训练数据(1000条新闻+分类标签)
- 使用LLaMA-Factory微调DeepSeek R1
- 导出优化后的模型
数据格式:
[
{
"instruction": "对新闻进行分类",
"input": "苹果公司发布新款iPhone...",
"output": "科技类"
}
]
阶段3:工程化落地
3.1 搭建智能体平台(MCP架构)
技术栈组合:
- 模型层:Ollama部署的DeepSeek R1
- 工具层:自定义Function Calling
- 前端层:LobeChat可视化对话
LobeChat集成步骤:
# 1. 克隆项目
git clone https://github.com/lobehub/lobe-chat.git
# 2. 配置环境变量
echo "OLLAMA_BASE_URL=http://localhost:11434" > .env
# 3. 启动服务
npm install && npm run dev
3.2 多Agent协作编排(LangGraph)
金融分析项目示例:
from langgraph.graph import StateGraph
# 定义Agent节点
def data_collector(state):
"""数据采集Agent"""
stock_data = fetch_stock_data(state["symbol"])
return {"stock_data": stock_data}
def analyzer(state):
"""分析Agent"""
analysis = run_technical_analysis(state["stock_data"])
return {"analysis": analysis}
def reporter(state):
"""报告Agent"""
report = generate_report(state["analysis"])
return {"report": report}
# 构建工作流
workflow = StateGraph()
workflow.add_node("collector", data_collector)
workflow.add_node("analyzer", analyzer)
workflow.add_node("reporter", reporter)
workflow.add_edge("collector", "analyzer")
workflow.add_edge("analyzer", "reporter")
app = workflow.compile()
阶段4:部署与运维
4.1 高可用集群部署
Higress网关配置:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: agent-gateway
spec:
rules:
- host: agent.example.com
http:
paths:
- path: /
backend:
service:
name: ollama-service
port: 11434
4.2 资源方案选择
| 部署规模 | 推荐方案 | 硬件要求 |
|---|---|---|
| 个人开发 | Ollama单机 | 16GB内存+RTX 3060 |
| 小团队 | Kubernetes+GPU | 3节点+A100×2 |
| 轻量部署 | llama.cpp CPU | 32GB内存 |
三、关键技术工具
3.1 LLaMA-Factory(微调工具)
核心能力
- 支持100+主流大模型(DeepSeek、Qwen、ChatGLM等)
- 覆盖SFT、DPO、PPO全流程微调
- Web UI低门槛操作
使用流程
# 1. 安装
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -r requirements.txt
# 2. 启动Web UI
python src/train_web.py
# 3. 浏览器访问
# http://localhost:7860
# 选择模型→上传数据→点击"开始训练"
微调配置示例
model_name: deepseek-r1-7b
dataset: news_classification
finetuning_type: lora
lora_rank: 8
learning_rate: 5e-5
num_epochs: 3
3.2 模型蒸馏工具
Hugging Face Transformers
特点:内置DistilBERT等预训练蒸馏模型
代码示例:
from transformers import DistilBertForSequenceClassification
# 加载教师模型
teacher = BertForSequenceClassification.from_pretrained("bert-base")
# 加载学生模型
student = DistilBertForSequenceClassification.from_pretrained("distilbert-base")
# 执行蒸馏训练
train_distillation(teacher, student, train_data)
AutoDistill
优势:自动化端到端蒸馏工作流
使用场景:
- 边缘设备部署(将GPT-3.5蒸馏到7B模型)
- 云服务成本优化
DeepSpeed
适用:大规模模型压缩(GPT-3级别)
关键特性:
- 支持蒸馏+量化+剪枝组合
- 多GPU分布式训练
- ZeRO优化器减少显存占用
3.3 蒸馏方案对比
| 方案 | 参数压缩率 | 速度提升 | 性能保留 |
|---|---|---|---|
| DistilBERT | 40% | 60% | 97% |
| TinyBERT | 86% | 9.4× | 96.8% |
| LLaVA-KD | 50% | 3× | 95% |
四、实战解决方案
案例1:新闻分类智能体
需求
自动将新闻分为科技/财经/体育/娱乐四类
解决方案
- 模型选择:DeepSeek R1-7B
- 微调:使用LLaMA-Factory,准备5000条标注数据
- 部署:Ollama单机部署
- 接口:FastAPI提供REST服务
完整代码:
from fastapi import FastAPI
from ollama import Client
app = FastAPI()
client = Client(host='http://localhost:11434')
@app.post("/classify")
async def classify_news(text: str):
response = client.generate(
model='news-classifier:latest',
prompt=f"对以下新闻分类:\n{text}"
)
return {"category": response['response']}
案例2:金融分析多Agent系统
架构设计
用户查询 → 数据采集Agent → 分析Agent → 报告Agent → 输出结果
↓ ↓ ↓
股票API 技术指标 生成PDF
技术实现
- 编排工具:LangGraph
- 模型:DeepSeek R1-14B(分析)+Qwen-7B(报告)
- 工具:yfinance(数据)、pandas_ta(指标)、reportlab(PDF)
核心代码:
from langgraph.graph import StateGraph
import yfinance as yf
class FinanceAgent:
def __init__(self):
self.workflow = StateGraph()
self._build_workflow()
def _build_workflow(self):
self.workflow.add_node("fetch_data", self.fetch_stock_data)
self.workflow.add_node("analyze", self.technical_analysis)
self.workflow.add_node("report", self.generate_report)
self.workflow.add_edge("fetch_data", "analyze")
self.workflow.add_edge("analyze", "report")
def fetch_stock_data(self, state):
ticker = yf.Ticker(state["symbol"])
data = ticker.history(period="1y")
return {"data": data}
def technical_analysis(self, state):
# 调用DeepSeek R1进行分析
analysis = call_llm_analysis(state["data"])
return {"analysis": analysis}
def generate_report(self, state):
# 调用Qwen生成报告
report = call_llm_report(state["analysis"])
return {"report": report}
案例3:轻量级客服Agent(CPU部署)
挑战
- 没有GPU资源
- 需要快速响应(<2秒)
解决方案
- 模型蒸馏:将Qwen-14B蒸馏到Qwen-2.5-3B
- 部署工具:llama.cpp(CPU优化)
- 量化:使用Q4_K_M量化(内存<4GB)
部署命令:
# 1. 编译llama.cpp
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && make
# 2. 转换模型
python convert.py /path/to/qwen-3b --outtype q4_k_m
# 3. 启动服务
./server -m qwen-3b-q4.gguf -c 2048 --host 0.0.0.0 --port 8080
性能测试:
- CPU:Intel i7-12700(16核心)
- 内存占用:3.2GB
- 响应延迟:1.5秒/次
总结
开发路径选择
场景A:快速原型验证
→ Ollama部署 + ReAct模式 + Function Calling
场景B:企业级应用
→ Kubernetes集群 + 多Agent协作 + LangGraph编排 + Higress网关
场景C:资源受限环境
→ 模型蒸馏 + llama.cpp部署 + 量化优化
关键成功要素
- 选对模型:根据任务复杂度选择7B/14B/70B参数规模
- 工具适配:通过微调让Agent学习特定领域知识
- 工程优化:使用蒸馏/量化降低部署成本
- 流程编排:复杂任务拆解为多Agent协作
进阶资源
- LLaMA-Factory文档:https://github.com/hiyouga/LLaMA-Factory
- LangGraph教程:https://langchain-ai.github.io/langgraph/
- Ollama模型库:https://ollama.ai/library
- DeepSpeed优化指南:https://www.deepspeed.ai/
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)