Agent Ⅱ 手搓一个Agent feat. Qwen-Agent
前言 上一篇文章介绍了关于Agent的一些相关内容,这篇文章来动手实现一个Agent。目前比较流行的Agent开发框架有很多,比如可视化的字节的扣子,还有代码实现的babyagi、AutoGPT,因为我用qwen用的比较多,正好我最近看到qwen也开源了一套框架,qwen-agents,封装了工具、助手和一些规划的方法,使用起来比较方便,那就用这套框架实现一个简单的Agent。 Agent设计开发 既然是Agent,那就让他做一个LLM不能直接实现的任务,我这边有一个北京的房价表格,我们可以让Agent帮我们分析一下房价,最后生成一个图标来展示每平米的价格。 因为这个任务需要多步骤才能实现,所以我们可以使用上篇文章中将的ReAct的思路,让模型自己规划任务,根据每一次的执行结果来调整任务,并且可以利用代码助手来帮助他实现目标。 先配置LLM,这里可以使用阿里的api,也可以使用第三方的api,只要与openAI库兼容就可以。我这里尝试了付费的qwen-max和免费的Qwen2-7B-Instruct。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 llm_cfg = { # 使用 DashScope 提供的模型服务: # 'model': 'qwen-max', # 'model_server': 'dashscope', # 'api_key': 'EMPTY', # 如果这里没有设置 'api_key',它将读取 `DASHSCOPE_API_KEY` 环境变量。 # 使用与 OpenAI API 兼容的模型服务,例如 vLLM 或 Ollama: 'model': 'alibaba/Qwen2-7B-Instruct', 'model_server': 'http://localhost:8000/v1', # base_url,也称为 api_base 'api_key': 'EMPTY', # (可选) LLM 的超参数: 'generate_cfg': { 'top_p': 0.8 } } 然后去定义我们的Agent,因为框架封装的很方便了,所以几行代码就可以实现。 ...