GUI-Agent阶跃星辰GUI-MCP命令解析和工具映射如何?
摘要:【GUI-Agent】阶跃星辰 GUI-MCP 解读 (5) 命令解析和工具映射 目录【GUI-Agent】阶跃星辰 GUI-MCP 解读 (5) 命令解析和工具映射0x00 摘要0x01 MCP 命令解析流程1.1 功能层级1.1.1 低
【GUI-Agent】阶跃星辰 GUI-MCP 解读---(5)---命令解析和工具映射
目录【GUI-Agent】阶跃星辰 GUI-MCP 解读---(5)---命令解析和工具映射0x00 摘要0x01 MCP 命令解析流程1.1 功能层级1.1.1 低层 MCP1.1.2 高层 MCP1.2 命令执行链路1.3 FastMCP 框架0x02 工具注册机制2.1 工具注册2.2 具体工具实现2.2.1 list_connected_devices2.2.2 ask_agent2.3 协议交互模式2.4 扩展机制0x03 业务逻辑层3.1 层次细分3.1.1 功能定位层3.1.2 架构集成层面3.2 execute_task3.3 gui_agent_loop3.4 不同层级MCP的处理3.4.1 低阶 MCP 原子操作参数约束3.4.2 高阶 MCP 操作任务描述标准化任务描述格式规范任务描述内容标准化0xFF 参考
0x00 摘要
25年底,阶跃星辰升级发布了全新的AI Agent系列模型Step-GUI,包括云端模型Step-GUI、首个面向GUI Agent的MCP协议:GUI-MCP(Graphical User Interface - Model Context Protocol),这是首个专为图形用户界面自动化而设计的 MCP 实现,兼顾标准化与隐私保护。
因此,我们就来解读这个MCP协议,顺便看看端侧Agent的实现架构。本文是第五篇,主要是介绍GUI-MCP 的命令解析和工具映射。
因为是反推解读,而且时间有限,所以可能会有各种错误,还请大家不吝指出。
0x01 MCP 命令解析流程
1.1 功能层级
GUI-MCP 采用分层设计,将功能划分为两个不同层级:低层 MCP 与高层 MCP。
1.1.1 低层 MCP
低层 MCP 专注于原子级设备操作,提供细粒度控制接口。该层级公开以下类别的原语:
设备管理:接口 get_device_list() 获取所有已连接设备,实现多设备编排。
状态感知:接口 get_screenshot() 捕获当前设备屏幕状态,为决策提供视觉反馈。
基本操作:如下图所示的完整交互原语集合。
这些原子接口为主语言模型提供最大灵活性,使其能够根据当前状态和任务需求进行细粒度规划与控制。适合需要逐步规划的场景。
1.1.2 高层 MCP
高层 MCP 专注于抽象任务执行,通过封装完整任务执行逻辑实现。其主要接口为:execute_task(task_description)。该接口接受自然语言任务描述,并自动完成任务。例如:
execute_task("点击第一个元素")
execute_task("买一杯咖啡")
execute_task("搜索白色帆布鞋,37 码,100 元以内,并把第一个结果加入收藏")
注意:实际上在代码中,高层 MCP的主要接口为 ask_agent。execute_task 只是中间管理层。
1.2 命令执行链路
客户端请求处理如下
MCP 协议解析:FastMCP 框架解析 MCP 协议请求
工具匹配:根据请求中的工具名称匹配注册的工具函数
参数映射:将请求参数映射到函数参数
执行调用:调用相应的工具函数
工具执行流程
参数解析:将 MCP 请求参数转换为 Python 函数参数
函数调用:执行注册的工具函数
结果封装:将函数返回值封装为 MCP 响应格式
1.3 FastMCP 框架
FastMCP框架会自动提取所有@mcp.tool装饰的函数及其文档字符串,然后将这些信息作为系统提示提供给LLM,使LLM知道有哪些工具可以,即如何使用它们。当LLM需要执行某个操作时,它可以根据这些工具描述选择合适的工具并生成相应的调用参数。
