由清华大学与智谱 AI 联合推出的开源端到端视觉语言模型驱动的 GUI 智能体,基于 GLM-4V-9B 双语开源 VLM 基座模型,通过屏幕截图与自然语言指令实现跨平台(Windows/macOS/Android)图形界面自动化操作与推理。
项目概述#
CogAgent 是基于 GLM-4V-9B 视觉语言模型的开源端到端 GUI 智能体,能够"看懂"屏幕截图,理解自然语言任务指令,并预测下一步的交互动作(如点击、输入、滚动)。它不仅能返回动作描述,还能输出精确的像素级坐标和结构化操作指令。
核心能力#
感知与推理#
- 双语视觉理解:支持中英文自然语言指令与屏幕截图交互
- GUI 元素定位:预测交互元素的 Bounding Box(边界框),提供精确坐标
- 多模态推理:结合历史操作步骤进行上下文感知的推理
动作空间#
支持完整的 GUI 交互原语:
- 鼠标操作:
CLICK,DOUBLE_CLICK,RIGHT_CLICK,HOVER - 文本输入:
TYPE(支持变量引用__CogName_xxx__) - 滚动操作:
SCROLL_UP,SCROLL_DOWN,SCROLL_LEFT,SCROLL_RIGHT - 键盘/组合键:
KEY_PRESS,GESTURE(支持KEY_DOWN/UP序列) - 系统/应用:
LAUNCH(启动应用或 URL),END(任务结束) - 高级/上下文:
QUOTE_TEXT(含 auto_scroll),QUOTE_CLIPBOARD,LLM(调用内部 LLM 能力处理子任务)
输出格式#
提供 5 种预设输出格式以适应不同下游需求:
Action-Operation-SensitiveStatus-Plan-Action-OperationStatus-Action-Operation-SensitiveStatus-Action-OperationAction-Operation
注:Sensitive 标签用于标识操作是否涉及敏感数据(<<敏感操作>> / <<一般操作>>)
平台支持#
- Desktop:Windows 10/11, macOS 14/15
- Mobile:Android 13/14/15
性能表现#
在 Screenspot、OmniAct、CogAgentBench-basic-cn、OSWorld 等基准上达到 SOTA(相较 GPT-4o-20240806、Claude-3.5-Sonnet、Qwen2-VL、ShowUI、SeeClick 等模型)。
应用场景#
- 跨应用流程自动化:邮件客户端与日历协调、自动发送节日祝福、电商购物筛选
- 端侧智能助手:集成于 PC 或手机端,作为系统级 Copilot 执行复杂多步任务
- GUI 智能体研究:作为基座模型或基准,用于开发基于视觉的 Agent 架构
- 无障碍辅助:辅助视障人士或老年用户操作复杂的图形界面
示例场景#
- 标记所有邮件为已读(Mac 平台)
- 自动发送圣诞祝福
- 在线购物搜索与筛选
架构特性#
- 基座模型:GLM-4V-9B(双语 VLM),参数量约 9B(BF16)
- 模型格式:Image-Text-to-Text (Transformers + Safetensors)
- 视觉编码:图像被编码为约 1600 个 Token
- 推理后端:支持 HuggingFace Transformers 和 vLLM(OpenAI API 兼容)
资源需求#
- BF16:至少 29GB 显存
- INT8:约 15GB 显存(性能损失)
- INT4:约 8GB 显存(显著性能损失,不推荐)
硬件适配#
- NVIDIA GPU:主流支持
- Ascend NPU:已适配(需
torch_npu,测试环境为 Atlas800 集群)
快速开始#
CLI 推理#
python inference/cli_demo.py --model_dir THUDM/cogagent-9b-20241220 --platform "Mac" --max_length 4096 --top_k 1 --output_image_path ./results --format_key status_action_op_sensitive
Web Demo 推理#
python inference/web_demo.py --host 0.0.0.0 --port 7860 --model_dir THUDM/cogagent-9b-20241220 --format_key status_action_op_sensitive --platform "Mac" --output_dir ./results
Agent APP 实战部署#
服务端启动:
python openai_demo.py --model_path THUDM/cogagent-9b-20241220 --host 0.0.0.0 --port 7870
客户端启动:
python client.py --api_key EMPTY --base_url http://127.0.0.1:7870/v1 --client_name 127.0.0.1 --client_port 7860 --model CogAgent
输入格式规范#
必须按以下顺序拼接:
Task: {task}
History steps:
{history}
(Platform: {platform})
(Answer in {format} format.)
微调支持#
- SFT:Vision Encoder 冻结,batch_size=1,8×A100
- LoRA:Vision Encoder 不冻结,batch_size=1,1×A100
- 支持断点续训
实际应用#
已在智谱 AI GLM-PC 产品中应用。