微信扫码
和创始人交个朋友
我要投稿
掌握Qwen-Agent智能体开发,从环境搭建到核心功能实现。 核心内容: 1. 环境准备:全功能与简约安装方法 2. 核心功能开发:工具定义与使用示例 3. 记忆功能实现:HistoryAssistant类的应用
# 全功能安装(RAG/代码解释器/GUI支持)
pip install -U "qwen-agent[rag,code_interpreter,python_executor,gui]"
# 简约安装版本
pip install -U qwen-agent
export DASHSCOPE_API_KEY='your-api-key'
from vllm import LLM, SamplingParams
llm = LLM(model="Qwen2-7B-Chat")
from qwen_agent.tools.base import BaseTool, register_tool
import json5
@register_tool('calculate')
class Calculator(BaseTool):
description = '基础运算计算器'
parameters = [{'name': 'formula', 'type': 'string'}]
def call(self, params: str) -> float:
return eval(json5.loads(params)['formula'])
# 调用示例
calc = Calculator()
print(calc.call('{"formula": "(3 + 5) * 2"}'))# 输出 16.0
from qwen_agent.agents import Assistant
class HistoryAssistant(Assistant):
def _postprocess_messages(self, messages):
return messages[-10:]# 保留最近5轮对话
assistant = HistoryAssistant(llm={'model': 'qwen-max'})
from qwen_agent.agents import Assistant
from qwen_agent.tools import BaseTool, register_tool
import requests
import json5
@register_tool('city_info')
class CityInfoTool(BaseTool):
description = "城市基础信息查询"
parameters = [{'name': 'name', 'type': 'string'}]
def call(self, params):
city = json5.loads(params)['name']
response = requests.get(f"https://api.example.com/cities/{city}")
return response.json()
# 配置助手
assistant = Assistant(
llm={'model': 'qwen-max'},
function_list=['city_info','code_interpreter'],
system_message="你是一个城市百科助手"
)
# 测试查询
response = assistant.run([{'role': 'user', 'content': '上海有多少个行政区?'}])
print(response[-1]['content'])
执行流程:
import urllib
from qwen_agent.agents import Assistant
assistant = Assistant(
function_list=['code_interpreter'],
system_message="图像处理专家"
)
def process_image(prompt):
messages = [{'role':'user', 'content': prompt}]
for resp in assistant.run(messages):
if 'function_call' in resp:
code = resp['function_call']['arguments']
exec(code)# 示例简化执行
return resp[-1]['content']
process_image('将https://example.com/image.jpg的水平宽度扩大1.5倍')
from qwen_agent import retrieve
# 构建知识库
retrieve.build_index('documents/')
class DocQA(Assistant):
def _preprocess(self, query):
contexts = retrieve.search(query)
return f"根据文档:{contexts}\n回答:{query}"
qa = DocQA(llm={'model': 'qwen-max-longcontext'})
from qwen_agent.gui import WebUI
WebUI(assistant).launch(server_name='0.0.0.0', server_port=7860)
class CustomerService(Assistant):def __init__(self):super().__init__(system_message="你是XX公司客服,回答范围限于产品功能和订单查询",function_list=[product_lookup, order_status])def _validate_query(self, query):if '价格' in query:return "具体产品价格请访问官网查询"return super()._validate_query(query)
@register_tool('data_analysis')
class DataAnalyzer:
def call(self, params):
df = pd.read_csv(params['file'])
return df.describe().to_markdown()
assistant = Assistant(function_list=['data_analysis', 'code_interpreter'])
工具生态系统
支持自定义工具注册机制,灵活扩展功能
动态流程控制
支持工具调用链、条件分支、循环处理等复杂逻辑
性能优化建议
✅ RAG 缓存机制提升高频查询响应
✅ 量化压缩降低部署资源消耗
✅ 设置执行超时保障系统稳定性
# 开启调试模式
assistant = Assistant(verbose=True)
# 性能监控
from qwen_agent.monitor import perf_counter
@perf_counter
def critical_function():
pass
项目生态:每日更新迭代,建议定期查阅官方 GitHub 获取最新特性,已有数百个开源应用案例。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-02-21
deepseekers 第一个全面拥抱 deepseek 的国产 AI Agent 框架
2025-02-19
LangMem 发布:任何人都能轻松构建智能体记忆!
2025-02-19
深入探究Langchain v0.3:全面解读
2025-02-18
走进Langchain:全面解析
2025-02-17
基于LangChain爬虫增强RAG应用
2025-02-13
LangChat实战DeepSeek-R1模型
2025-02-05
揭秘LangGraph!如何一步一步构建动态订单管理系统?
2025-01-22
LangChain实战 | OutputParser:让大模型输出从 “鸡肋” 变 “瑰宝” 的关键!
2024-10-10
2024-04-08
2024-06-03
2024-09-04
2024-08-18
2024-07-13
2024-04-08
2024-06-24
2024-07-10
2024-04-17
2025-02-05
2024-12-02
2024-11-25
2024-10-30
2024-10-11
2024-08-18
2024-08-16
2024-08-04