Qwen-Agent es un marco de desarrollo de agentes inteligentes basado en el modelo de lenguaje grande Qwen, especializado en el desarrollo de aplicaciones LLM con capacidades de seguimiento de instrucciones, uso de herramientas, planificación y memoria. Este proyecto es desarrollado y mantenido por el equipo de Alibaba Qwen, y actualmente sirve como soporte backend para el servicio de chat Qwen (Qwen Chat).
reasoning_content
, ajuste de la plantilla de llamada a funciones predeterminadapip install -U "qwen-agent[gui,rag,code_interpreter,mcp]"
# O instalación mínima
pip install -U qwen-agent
git clone https://github.com/QwenLM/Qwen-Agent.git
cd Qwen-Agent
pip install -e ./"[gui,rag,code_interpreter,mcp]"
[gui]
: Soporte de interfaz gráfica Gradio[rag]
: Funcionalidad de aumento de recuperación RAG[code_interpreter]
: Funcionalidad de intérprete de código[mcp]
: Soporte del protocolo MCPllm_cfg = {
'model': 'qwen-max-latest',
'model_server': 'dashscope',
# 'api_key': 'YOUR_DASHSCOPE_API_KEY',
'generate_cfg': {
'top_p': 0.8
}
}
llm_cfg = {
'model': 'Qwen2.5-7B-Instruct',
'model_server': 'http://localhost:8000/v1',
'api_key': 'EMPTY',
}
import pprint
import urllib.parse
import json5
from qwen_agent.agents import Assistant
from qwen_agent.tools.base import BaseTool, register_tool
from qwen_agent.utils.output_beautify import typewriter_print
# Paso 1: Agregar una herramienta personalizada
@register_tool('my_image_gen')
class MyImageGen(BaseTool):
description = 'Servicio de pintura AI (generación de imágenes), ingrese la descripción del texto y devuelva la URL de la imagen dibujada en función de la información del texto.'
parameters = [{
'name': 'prompt',
'type': 'string',
'description': 'Descripción detallada del contenido de la imagen deseada, en inglés',
'required': True
}]
def call(self, params: str, **kwargs) -> str:
prompt = json5.loads(params)['prompt']
prompt = urllib.parse.quote(prompt)
return json5.dumps(
{'image_url': f'https://image.pollinations.ai/prompt/{prompt}'},
ensure_ascii=False)
# Paso 2: Configurar LLM
llm_cfg = {
'model': 'qwen-max-latest',
'model_server': 'dashscope',
'generate_cfg': {
'top_p': 0.8
}
}
# Paso 3: Crear el agente inteligente
system_instruction = '''Después de recibir la solicitud del usuario, debe:
- primero dibuje una imagen y obtenga la URL de la imagen,
- luego ejecute el código `request.get(image_url)` para descargar la imagen,
- y finalmente seleccione una operación de imagen del documento dado para procesar la imagen.
Muestre la imagen usando `plt.show()`.'''
tools = ['my_image_gen', 'code_interpreter']
files = ['./examples/resource/doc.pdf']
bot = Assistant(llm=llm_cfg,
system_message=system_instruction,
function_list=tools,
files=files)
# Paso 4: Ejecutar el chat del agente inteligente
messages = []
while True:
query = input('\nuser query: ')
messages.append({'role': 'user', 'content': query})
response = []
response_plain_text = ''
print('bot response:')
for response in bot.run(messages=messages):
response_plain_text = typewriter_print(response, response_plain_text)
messages.extend(response)
from qwen_agent.gui import WebUI
WebUI(bot).run()
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
},
"sqlite": {
"command": "uvx",
"args": [
"mcp-server-sqlite",
"--db-path",
"test.db"
]
}
}
}
El proyecto proporciona una solución RAG rápida, así como un agente inteligente competitivo para documentos súper largos, que supera a los modelos de contexto de crecimiento nativo en dos pruebas de referencia desafiantes y funciona perfectamente en una prueba de estrés de "búsqueda de aguja en un pajar" de un solo disparo que involucra un contexto de 1 millón de tokens.
BrowserQwen es un asistente de navegador construido sobre Qwen-Agent, que proporciona capacidades de navegación web, operación y extracción de información.
Qwen-Agent es un marco de desarrollo de agentes inteligentes potente y fácil de usar, que proporciona a los desarrolladores una cadena de herramientas completa para construir aplicaciones LLM complejas. Ya sea un simple chatbot o un asistente inteligente multifuncional complejo, se puede implementar y desplegar rápidamente a través de este marco.