芥末
发布于 2026-01-22 / 0 阅读
0
0

AgentCPM-Explore:4B 端侧 Agent 的架构、能力与本地部署

AgentCPM 是清华大学、中国人民大学、面壁智能与 OpenBMB 开源社区联合开源的智能体项目。它的核心模型叫 AgentCPM-Explore,目标不是做一个普通聊天模型,而是让一个 4B 参数量的小模型能够处理长周期、多步骤、需要反复调用工具的复杂任务。

这里的关键点有两个:

  • 参数量小:4B 模型更适合本地工作站、私有服务器或边缘设备部署,推理成本比 30B、70B 级模型低很多。
  • Agent 能力强:它不只是回答问题,还要拆解任务、调用工具、观察结果、修正策略,并在多轮交互中保持稳定。

AgentCPM-Explore 基于 Qwen3-4B-thinking-2507 做深度后训练,在 GAIA、Xbench、BrowserComp 等多个高难度智能体评测中表现突出。公开结果显示,它在不少任务上超过同尺寸 SOTA(State of the Art,当前最优水平)模型,也能接近甚至超过部分更大规模模型在特定 Agent 任务上的表现。

端侧 Agent 到底解决什么问题

普通大语言模型更像“问答引擎”:用户输入问题,模型直接生成答案。Agent 的工作方式更接近“带工具的研究助手”:遇到复杂问题时,它不会只凭已有参数记忆回答,而是会主动搜索、浏览、计算、验证信息来源,再根据工具返回的结果继续行动。

一个典型 Agent 循环是这样的:

flowchart TD
    A[用户给出任务] --> B[模型理解目标]
    B --> C[拆分子任务并制定计划]
    C --> D[选择工具]
    D --> E[调用搜索、浏览器、代码执行等工具]
    E --> F[读取工具返回结果]
    F --> G{任务是否完成}
    G -- 否 --> H[修正计划或更换策略]
    H --> D
    G -- 是 --> I[生成最终答案]

长程任务的难点在于,模型要在几十轮甚至上百轮工具交互中保持目标一致,不能重复搜索同一个无效方向,也不能因为中间结果不完整就提前给出结论。AgentCPM-Explore 的重点能力就在这里:它支持超过 100 轮的稳定环境交互,能够持续探索直到任务完成。

这类能力适合处理:

  • 需要多源验证的研究问题;
  • 需要访问网页、搜索资料、核对数据来源的任务;
  • 需要多步推理和工具组合的复杂问答;
  • 需要在失败后调整检索词、换数据源、重新组织计划的任务。

AgentCPM-Explore 的能力特点

AgentCPM-Explore 不是靠把答案背下来解决问题,而是把“如何探索”训练成一种稳定策略。它在任务执行中会表现出几个典型行为:

能力具体表现
主动核查不轻信单个工具结果,会继续查找更原始或更可靠的数据源
多源验证对同一个结论尝试从不同网页、文档或结果中交叉确认
策略调整搜索不到结果时,会改写关键词、换查询路径或缩小问题范围
长程保持在多轮工具调用后仍然围绕最初目标推进
减少重复不容易陷入反复调用同一个工具、查询同一个无效问题的循环

公开评测把 AgentCPM-Explore 放到多个 Agent 任务集上与不同规模模型对比。重点不是单个分数,而是 4B 模型在长程深度探索任务中能维持较高完成率。

AgentCPM-Explore 在多个 Agent 评测集上的对比结果

这组结果说明,Agent 能力不能只看参数量。对于需要工具交互的任务,后训练数据、环境反馈、工具调用稳定性和评测框架都会影响最终表现。AgentCPM-Explore 在 Xbench-DeepResearch 等任务上的公开成绩显示,小模型经过专门的 Agent 后训练后,可以在某些深度研究场景中追上更大模型。与此同时,评测成绩仍然会受到工具环境、题集版本、网络可访问性和重复尝试次数影响,复现时需要固定配置。

在允许重复尝试的设置下,AgentCPM-Explore 对 GAIA 文本任务的覆盖率可以达到很高水平。这个结果适合说明模型的探索能力,但生产环境不能无限重试,通常需要设置最大轮数、最大工具调用次数和超时策略。

项目整体架构

AgentCPM 不只开源模型权重,还把训练、工具沙盒和评测相关基础设施一起开放出来,方便复现、二次开发和私有化部署。

核心组件可以分成四层:

flowchart LR
    U[用户任务] --> M[AgentCPM-Explore<br/>4B Agent 模型]
    M --> D[AgentDock<br/>工具沙盒与调度]
    D --> T1[搜索工具]
    D --> T2[浏览器工具]
    D --> T3[代码执行工具]
    D --> T4[其他工具节点]

    R[AgentRL<br/>异步强化学习框架] --> M
    E[AgentToLeaP<br/>评测平台] --> M
    E --> D
组件作用适用阶段
AgentCPM-Explore执行长程探索任务的 4B Agent 模型推理、部署
AgentDock统一管理工具调用、工具节点和沙盒环境推理、评测
AgentRL强化学习(Reinforcement Learning,RL)后训练框架训练、复现
AgentToLeaP一键式 Agent 能力评测平台评测、对比

AgentDock 很关键。Agent 需要调用外部工具,如果每个工具都由模型进程直接管理,环境依赖、权限隔离、错误恢复都会变得复杂。AgentDock 把工具调用抽象成统一服务,模型只需要通过 HTTP 接口(API,应用程序编程接口)请求工具,工具执行过程由沙盒负责。

适合用 AgentCPM-Explore 的场景

AgentCPM-Explore 的优势来自“小模型 + 长程 Agent 后训练 + 工具沙盒”。它适合的不是所有大模型任务,而是那些确实需要自主探索的任务。

场景是否适合原因
本地或私有环境部署 Agent适合4B 模型部署成本较低,数据更容易留在内网
长程资料检索、深度研究适合能多轮调用工具并根据结果修正计划
自动浏览网页、核查信息源适合AgentDock 可以统一管理浏览、搜索等工具
大规模开放域闲聊不一定适合聊天体验更多取决于通用对话能力,不一定需要 Agent 循环
极低延迟在线问答不一定适合多轮工具调用会增加耗时
需要强数学、强代码竞赛能力的任务需要单独评估Agent 能力强不等于所有基础能力都强
无 GPU 的轻量设备需要谨慎4B 虽小,稳定推理仍需要足够内存和推理后端支持

端侧不等于只能跑在手机上。这里更准确的理解是:模型规模足够小,可以在本地工作站、私有 GPU(图形处理器)服务器或边缘计算节点上部署,不必完全依赖闭源云端模型。

本地部署 AgentCPM-Explore

部署主要分成两部分:

  1. 启动 AgentDock 工具沙盒;
  2. 在预置 Docker 环境里运行 AgentCPM-Explore。

环境建议:

依赖说明
Git拉取项目代码
Docker / Docker Compose启动 AgentDock 和评测容器
NVIDIA GPU 与驱动使用 --gpus all 运行推理容器
NVIDIA Container Toolkit让 Docker 容器访问 GPU
Linux 环境--network host 在 Linux 上行为最稳定

1. 克隆项目

git clone https://github.com/OpenBMB/AgentCPM.git
cd AgentCPM/AgentCPM-Explore

2. 启动 AgentDock 工具沙盒

进入 AgentDock 目录:

cd AgentDock

启动管理面板、数据库和工具节点:

docker compose up -d

确认容器是否正常运行:

docker ps

AgentDock 默认监听在本机 8000 端口,可以用健康检查接口验证:

curl http://localhost:8000/health

如果返回 JSON(JavaScript Object Notation,常用结构化数据格式)格式的健康状态信息,说明工具沙盒已经启动。常见失败原因包括端口被占用、Docker Compose 版本过旧、某个工具节点镜像拉取失败。

3. 拉取并进入预置评测环境

回到 AgentCPM-Explore 项目根目录,再拉取官方预置容器:

cd ..
docker pull yuyangfu/agenttoleap-eval:v1.0

启动容器,并把当前目录挂载到容器内:

docker run -dit \
  --name agenttoleap \
  --gpus all \
  --network host \
  -v "$(pwd)":/workspace \
  yuyangfu/agenttoleap-eval:v1.0

进入容器:

docker exec -it agenttoleap /bin/bash
cd /workspace

如果使用 Windows PowerShell,目录挂载通常要改成类似写法:

docker run -dit `
  --name agenttoleap `
  --gpus all `
  --network host `
  -v ${PWD}:/workspace `
  yuyangfu/agenttoleap-eval:v1.0

Docker Desktop 对 --network host 的支持和 Linux 不完全一致。如果容器访问不到宿主机的 localhost:8000,可以尝试把 AgentDock 地址改成 host.docker.internal:8000,或者使用显式端口映射。

4. 配置 quickstart.py

项目根目录下的 quickstart.py 有一个 [USER CONFIGURATION] 配置区,运行前需要确认几类信息:

配置项作用
任务描述要让 Agent 完成的具体任务
AgentDock 地址通常是 http://localhost:8000
模型路径或推理后端指向 AgentCPM-Explore 权重或对应服务
最大交互轮数控制工具调用和思考循环上限
输出目录保存完整执行轨迹

可以先定位配置区:

grep -n "USER CONFIGURATION" quickstart.py

配置逻辑可以理解成这样,实际变量名以仓库文件为准:

# quickstart.py 中 [USER CONFIGURATION] 区域的配置思路

task = "查找并核对某个问题的可靠答案,要求给出信息来源"
tool_sandbox_url = "http://localhost:8000"
max_turns = 100
output_dir = "outputs/quickstart_results"

复杂任务不要写得太含糊。Agent 可以自己探索,但任务边界越清晰,工具调用越容易收敛。例如,与其写“研究某个项目”,不如写“查找某个项目的开源许可证、核心功能、最新版本,并给出来源链接”。

5. 运行任务

配置完成后直接运行:

python quickstart.py

运行时通常会看到模型的计划、工具调用、工具返回结果和最终答案。长程任务可能会持续较久,因为 Agent 会多次调用搜索、浏览器或其他工具节点。

任务结果会保存在:

outputs/quickstart_results/

其中 dialog.json 记录完整执行轨迹,包括中间计划、每次工具调用请求、工具响应和最终输出。可以直接查看:

cat outputs/quickstart_results/dialog.json

如果安装了 jq,可以更方便地检查结构:

jq . outputs/quickstart_results/dialog.json

运行时容易踩的坑

AgentDock 必须先启动

AgentCPM-Explore 依赖工具沙盒。如果 quickstart.py 运行后一直报工具连接失败,优先检查:

curl http://localhost:8000/health
docker ps

端口 8000 被其他服务占用时,需要修改 AgentDock 端口或停止冲突进程。

GPU 容器不可用

--gpus all 报错通常不是项目代码问题,而是 Docker 没有正确接入 NVIDIA GPU。可以检查:

nvidia-smi
docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi

第二条命令如果失败,需要安装或修复 NVIDIA Container Toolkit。

长程任务要设置上限

Agent 支持超过 100 轮交互,但生产环境不能无限循环。建议设置:

  • 最大轮数;
  • 单个工具调用超时;
  • 最大重复尝试次数;
  • 最大输出长度;
  • 失败后的兜底返回策略。

这样可以避免网页不可访问、搜索结果变化或工具异常导致任务长时间挂起。

评测结果不等于所有业务结果

GAIA、Xbench、BrowserComp 等基准能衡量模型在标准任务上的表现,但真实业务环境会多出很多变量:内部数据格式、权限系统、网络隔离、工具稳定性、网页反爬、任务描述质量都会影响结果。把 AgentCPM-Explore 接入业务流程前,应该用自己的任务集做小规模评测。

输出轨迹可能包含敏感信息

dialog.json 会保存完整交互记录。如果任务里包含内部链接、搜索关键词、工具返回内容或用户输入,输出目录要按敏感数据处理。私有化部署时尤其要注意日志权限、备份策略和清理周期。

二次开发思路

如果只是体验模型能力,quickstart.py 足够。要把 AgentCPM-Explore 接入自己的系统,通常会从三个方向改:

改造方向具体做法
自定义工具在 AgentDock 中增加内部搜索、数据库查询、文档读取等工具节点
自定义任务模板把业务任务改写成稳定提示词,明确目标、约束和输出格式
自定义评测用 AgentToLeaP 跑自己的任务集,统计成功率、平均轮数、工具失败率

AgentCPM 的价值不只是提供一个 4B 模型,而是把模型、工具沙盒、强化学习训练和评测流程放在同一个体系里。对于希望在本地或私有环境部署 Agent 的团队,AgentDock 负责工具隔离和调用,AgentCPM-Explore 负责长程探索,AgentToLeaP 负责验证效果,AgentRL 则用于继续训练和能力复现。


评论