以下是一个利用 DeepSeek(或其他LLM)构建 智能Agent 的完整实例,包含 架构设计、逻辑流程、代码示例,适用于自动化任务、数据分析或对话系统等场景。
1. Agent 设计架构
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ User Input │ → │ DeepSeek │ → │ Agent │
└─────────────┘ │ (LLM引擎) │ │ (逻辑处理) │└─────────────┘ └─────────────┘↓┌─────────────┐│ 执行动作/输出 │└─────────────┘
核心组件
- 输入处理:解析用户请求(文本/语音)。
- LLM 引擎:DeepSeek 生成响应或决策。
- Agent 逻辑:自定义规则、工具调用(如API、数据库)。
- 输出控制:返回结果或执行操作。
2. 实例:任务自动化 Agent
场景:用户输入自然语言指令,Agent 自动调用工具完成任务(如查天气、发邮件)。
代码示例(Python)
from typing import Dict, Any
import requestsclass DeepSeekAgent:def __init__(self, api_key: str):self.llm_api = "https://api.deepseek.com/v1/chat/completions" # 假设的APIself.api_key = api_keyself.tools = {"get_weather": self.get_weather,"send_email": self.send_email,}def call_deepseek(self, prompt: str) -> str:"""调用DeepSeek API获取响应"""headers = {"Authorization": f"Bearer {self.api_key}"}data = {"model": "deepseek-chat","messages": [{"role": "user", "content": prompt}]}response = requests.post(self.llm_api, json=data, headers=headers)return response.json()["choices"][0]["message"]["content"]def get_weather(self, location: str) -> str:"""模拟天气查询工具"""# 实际可调用天气API(如OpenWeatherMap)return f"Weather in {location}: Sunny, 25°C"def send_email(self, recipient: str, subject: str) -> str:"""模拟发邮件工具"""# 实际可调用SMTP或邮件APIreturn f"Email sent to {recipient} with subject: '{subject}'"def parse_instruction(self, user_input: str) -> Dict[str, Any]:"""解析用户指令,决定调用哪个工具"""prompt = f"""用户指令: {user_input}请判断是否需要调用工具,并返回JSON格式,例如:{{"tool": "get_weather", "args": {{"location": "Beijing"}}}}如果无需工具,返回{{"tool": null}}。"""llm_response = self.call_deepseek(prompt)return eval(llm_response) # 实际应使用安全解析(如json.loads)def run(self, user_input: str) -> str:"""Agent 主逻辑"""# 1. 解析指令action = self.parse_instruction(user_input)# 2. 执行工具或直接响应if action["tool"] in self.tools:tool_func = self.tools[action["tool"]]return tool_func(**action["args"])else:return self.call_deepseek(user_input) # 直接LLM响应# 使用示例
agent = DeepSeekAgent(api_key="your_deepseek_api_key")
print(agent.run("今天北京天气怎么样?")) # 输出: Weather in Beijing: Sunny, 25°C
print(agent.run("帮我写一首诗")) # 输出: LLM生成的诗歌
3. 关键逻辑详解
(1) 工具调用(Tool Use)
- 步骤:
- 用户输入 → DeepSeek 判断是否需要调用工具(如
get_weather
)。 - 若需工具,Agent 解析参数并执行对应函数。
- 返回工具结果或原始LLM响应。
- 用户输入 → DeepSeek 判断是否需要调用工具(如
(2) 动态决策
- 示例指令:
"查询上海天气"
→ 触发get_weather
工具。"写一篇关于AI的文章"
→ 直接由DeepSeek生成。
(3) 扩展性
- 添加新工具:只需在
self.tools
中注册新函数。 - 多轮对话:可维护对话历史(
messages
列表)。
4. 高级功能扩展
(1) 记忆(Memory)
class AgentWithMemory(DeepSeekAgent):def __init__(self, api_key: str):super().__init__(api_key)self.memory = [] # 存储对话历史def run(self, user_input: str) -> str:self.memory.append({"role": "user", "content": user_input})response = super().run(user_input)self.memory.append({"role": "assistant", "content": response})return response
(2) 外部API集成
def get_stock_price(self, symbol: str) -> str:api_url = f"https://api.example.com/stocks?symbol={symbol}"data = requests.get(api_url).json()return f"Price of {symbol}: ${data['price']}"
5. 适用场景
- 自动化助手:执行预定任务(如爬虫、数据整理)。
- 客服机器人:结合知识库回答问题。
- 数据分析Agent:解析自然语言查询,返回SQL或图表。
通过以上框架,你可以快速构建一个 基于DeepSeek的智能Agent,并根据需求灵活扩展!