KwaiAgents 是快手科技 KwaiKEG 团队开源的一系列 Agent 相关工作的集合,定位为基于大语言模型(LLM)的通用信息检索智能体系统。
用途
该项目面向智能体(Agent)研究与开发,提供从模型、数据、评测到可运行系统的完整开源内容,用于构建和评估具备信息检索能力的 LLM 智能体。
主要能力与开源内容
KwaiAgents 包含以下四部分:
-
KAgentSys-Lite:论文中 KAgentSys 的轻量版本。在保留原系统部分功能的同时,与完整版相比存在一定差异和限制,例如:工具集更有限;缺少记忆机制;性能略有降低;代码库不同,它由 BabyAGI、Auto-GPT 等开源项目演化而来。尽管如此,KAgentSys-Lite 在众多开源 Agent 系统中仍能提供可比的性能。
-
KAgentLMs:一系列具备规划、反思和工具使用等智能体能力的大语言模型,通过论文提出的 Meta-agent tuning 获得。
-
KAgentInstruct:论文提出的超过 20 万条 Agent 相关指令微调数据(部分经人工编辑)。
-
KAgentBench:超过 3000 条人工编辑的自动化评测数据,用于测试智能体能力,评测维度包括规划、工具使用、反思、总结和画像(profiling)。
使用方式
环境准备
需先安装 miniconda 构建环境,然后创建构建环境。推荐使用 vLLM 和 FastChat 部署模型推理服务,需先安装相应包(具体用法参考这两个项目的文档)。针对 Qwen-7B-MAT 和 Baichuan-13B-MAT 分别有对应的安装命令。
部署 KAgentLMs
部署时需先在一个终端启动 controller;然后在另一个终端进行单 GPU 推理服务部署,其中 $model_path 为下载模型的本地路径,若 GPU 不支持 Bfloat16,可在命令行添加 --dtype half;接着在第三个终端启动 REST API 服务器;最后可使用 curl 命令以 OpenAI 调用格式调用模型,将 kagentlms_qwen_7b_mat 替换为所部署的模型。
llama-cpp-python 提供 Web 服务器,可作为 OpenAI API 的替代,使 llama.cpp 兼容模型可用于任何 OpenAI 兼容客户端。转换后的模型可在 kwaikeg/kagentlms_qwen_7b_mat_gguf 找到。
使用 KAgentSys-Lite
下载并安装 KwaiAgents,推荐 Python>=3.10。
ChatGPT 用法:声明一些环境变量。WEATHER_API_KEY 非强制,但询问天气相关问题时需要配置,可从指定网站获取 API key(本地模型用法相同)。
本地模型用法:需按前文部署相应模型服务。
完整命令参数见项目文档。若需使用 browse_website 工具,需在服务器上配置 chromedriver。若搜索多次失败,可能是网络无法访问 duckduckgo_search,可通过设置 http_proxy 解决。自定义工具用法可参考 examples/custom_tool_example.py。
使用 KAgentBench 评测
只需两行即可评测智能体能力,命令会输出结果,更多细节参考 benchmark/ 目录。
适用场景
适用于智能体研究、信息检索任务、LLM 智能体能力评测,以及基于开源模型构建具备规划、反思和工具使用能力的智能体应用。
限制
KAgentSys-Lite 相比完整版存在工具集有限、无记忆机制、性能略低、代码库不同等限制。使用 browse_website 工具需配置 chromedriver;搜索功能依赖 duckduckgo_search 的网络访问。天气相关问题需配置 WEATHER_API_KEY。
更新记录
2024.4.19 发布 Qwen1.5-14B-MAT 模型;2024.4.9 刷新基准结果;2024.1.29 发布 Qwen-14B-MAT 模型;2023.1.5 发布训练数据;2023.12.27 KwaiAgents 被多家网站报道;2023.12.13 发布基准与评测代码;2023.12.08 发布技术报告;2023.11.17 首次发布。