GUI-MCP与HITL:大模型操作图形界面的工程化落地

最近圈子里聊得最多的就是GUI-Agent——让大模型直接操纵桌面、网页和办公软件。过去我们做自动化,要么靠OCR识图,要么靠坐标点屏幕,界面一改脚本就崩。现在实践方向变成了把图形界面变成一种标准协议,再配上HITL(Human In The Loop,人在环路)机制,让模型既能“看见”界面,又能“动手”操作。这篇就围绕我实测后对GUI-MCP方案的理解,把三个关键问题讲透:图形界面怎么被结构化成模型能读的数据、操作链路怎么设计才算稳、以及为什么HITL不是人工兜底而是整个GUI-Agent架构里不可省掉的一环。适合正在做Agent应用、自动化流程,或者想给办公场景接入大模型能力的朋友参考。

1. 为什么GUI-Agent一定要等一个协议

1.1 大模型眼里的界面:从“看图说话”到“指哪打哪”

大模型本身是有视觉能力的,给它一张截图,它能描述出“右上角有一个搜索框,左侧有菜单栏,中间是一张表单”。但描述归描述,模型没法真的把鼠标移过去、点下去、把字输进去。早期我试过让模型输出“click at (x, y)”这样的动作,模型给出的坐标经常不准,因为分辨率一变、页面一滚动,坐标就全废了。

这就像给一个人发了一张地图,却没告诉他当前站在哪里,地图再清晰也容易走错路。要让模型完成一个多步骤的界面任务,比如“打开设置、找到网络配置、修改DNS”,它光靠截图脑补步骤远远不够,它需要一种方式去“抓取”界面上的真实控件,并且通过一个稳定的接口去执行动作。

1.2 MCP恰好补上了“手和眼”的标准接口

这时候MCP(Model Context Protocol,模型上下文协议)的价值就体现出来了。MCP做的事情其实很朴素:把外部工具和数据结构化地暴露给大模型,模型不需要为每一个软件写一套私有API,而是通过统一协议调用工具函数。MCP之于Agent,有点像是USB-C之于外设——把以前一堆乱七八糟的接口收敛成一个标准。

GUI-MCP可以理解为MCP在图形界面操作这个垂直领域的具体化。它不是简单的截图识别,而是把屏幕上的界面抽象成“节点”,把用户操作抽象成“动作函数”。模型拿到的是一个声明式的、可执行的界面操作工具箱,而不是一堆像素。这也是它和传统RPA最大的区别:RPA是写死的录制流程,GUI-MCP则让模型在运行时根据当前界面动态规划下一步动作。

1.3 一次接入、多处复用带来的工程收益

一旦协议稳定,接入成本会被大幅摊薄。我们的模拟项目X里,同一套GUI-MCP服务端可以同时服务表单填写、桌面整理、网页操作三个场景,模型侧只需要加载一次工具列表。以前RPA是“每个场景写一套脚本”,现在则是“统一接口+模型规划”,改一个场景不影响另一个场景,这对我这种需要维护多套自动化的团队来说,效率提升非常明显。

2. GUI-MCP的核心设计:结构化的界面与原子化的动作

2.1 界面不是截图,是带语义的UI树

GUI-MCP最关键的一个设计思路,是把界面从“一张图”变成“一棵树”。常见的界面框架底层都有控件树的概念,比如浏览器的DOM树、桌面软件的辅助功能树,这些树里记录了每个控件的类型、文本、坐标、层级关系和是否可操作。

协议层通常会把整棵UI树通过一个类似get_ui_tree()的工具返回给模型。以下面这段简化的伪代码为例:

{ "root": { "type": "window", "title": "系统设置", "children": [ { "id": "btn_network", "type": "button", "text": "网络与共享中心", "rect": [120, 80, 210, 120], "enabled": true }, { "id": "edit_dns", "type": "textbox", "text": "8.8.8.8", "rect": [300, 200, 450, 230], "enabled": true } ] } }

模型拿到的是这种带语义的节点,而不是一张密密麻麻的像素图。它能判断“这个按钮文本是什么、在哪个位置、是否可以点”,不需要靠视觉去猜。实际调试中,我发现UI树的数据质量直接决定Agent成功率,越是规范的原生控件,树信息越完整,而某些自绘界面的控件树可能大量缺失,这时候才需要回退到截图辅助识别。

2.2 原子化操作集合:把人类操作翻译成模型能调用的动作

有了节点信息,下一步是定义“模型能做什么”。GUI-MCP通常会暴露一组原子化的动作工具,下表是我在一个项目里常用到的操作集合:

动作函数作用关键参数
click(节点ID)单击目标控件节点ID,替代坐标
double_click(节点ID)双击,常用于文件夹节点ID
input_text(节点ID, text)在输入框中写入文本节点ID、文本内容
scroll(方向, 距离)滚动页面或列表方向、滚动量
wait_for_condition(描述)等待某个状态出现再继续等待条件、超时时间
screenshot()截取当前屏幕无
keyboard_shortcut(组合键)执行快捷键按键组合

这套动作设计的核心是:以节点ID代替坐标。坐标是漂移的,节点ID是稳定的。同一个按钮,无论窗口怎么缩放、页面怎么滚动,只要它还在树里,ID就能定位到它。模型执行动作后,还需要有能力“确认结果”,所以状态回读也必不可少。

2.3 状态回读:让Agent知道“这一步到底成没成”

很多人低估了GUI操作里“回读状态”的难度。网页点了按钮之后,可能弹出了确认框,也可能正在加载,也可能完全没有反应。模型不能闭着眼睛执行完所有步骤,它需要在每步动作后获取新的UI树,判断当前界面是否符合预期。

我常用的方式是让模型遵循“动作→观察→决策”的小循环:

  • 调用动作函数;
  • 再次调用get_ui_tree()或screenshot();
  • 对比当前状态和目标状态是否一致;
  • 一致则进入下一步,否则尝试纠错或请求人工介入。

这个循环很短,但极其重要。没有状态回读,Agent就是在“盲操作”,一步错、步步错,可能到最后失败了都不知道问题出在哪里。

3. HITL不是“人工兜底”,而是Agent安全落地的关键设计

3.1 GUI-Agent最容易翻车的位置:误操作不可逆

GUI-Agent有一个特性是“动作看起来无害,但后果不可逆”。删除文件、提交订单、发送消息、修改配置,这些动作在界面上都只是“点击一下按钮”,但在真实世界里,后果是永久的。我在模拟项目X里就出现过一次典型事故:Agent本来要移动某个目录下的文件,因为界面刷新导致节点错位,它把另一个同名文件夹拖进了回收站。

这类问题靠“模型更聪明”无法彻底解决,因为界面状态的不确定性永远存在。这时候需要的是一个机制:让关键节点上的人能够踩一脚刹车。这也是HITL在这个场景下被重视的根本原因——它处理的是“自动化不确定性”带来的风险,而不是单纯为了让人审批。

3.2 HITL的三种介入形态:预授权、阶段确认、异常接管

根据我自己的实践,GUI-Agent里HITL基本有三种形态,它们解决的是不同层面的问题。

第一是预授权。任务开始前,先由用户划定Agent可以操作的范围。比如只允许Agent操作桌面上的某个专用文件夹,其他盘符一律禁止触碰。这种授权是在任务执行之前完成的,Agent在受限环境中操作,误伤范围被控制住。

第二是阶段确认。在任务执行到某个关键节点时,Agent必须暂停,向用户报告“下一步我将执行以下操作”,等用户批准后才继续。这尤其适合删除、覆盖、下单、发送消息这类高风险动作。

第三是异常接管。Agent遇到它搞不定的情况时,主动把控制权交给人。典型场景包括:需要输入验证码、遇到弹窗不知道怎么处理、重复重试仍然失败。异常接管和阶段确认的区别在于,阶段确认是“动作前请示”,异常接管是“过程中求助”。

三种形态对比如下:

形态触发时机典型场景用户角色
预授权任务开始前限定操作目录、允许访问的应用划定边界
阶段确认高风险动作前删除、提交、发送、购买审批动作
异常接管执行失败或无法决策时验证码、异常弹窗、多次失败接管操作

3.3 实现要点:把“人工确认”也变成协议内动作

HITL要真正落地,不能靠模型自觉。更好的做法是:在GUI-MCP协议层增加一个类似request_user_confirm(操作描述)的工具,模型在执行敏感动作前必须先调用这个工具,服务端收到请求后弹窗给用户,用户点击“允许/拒绝”后,把结果作为工具返回值交给模型。

以下是一个简化的工作流示意:

  1. 模型解析任务,生成操作序列;
  2. 在执行“删除文件”动作之前,调用request_user_confirm;
  3. 服务端弹出确认对话框,用户点击“允许”;
  4. 工具返回{"result": "approved"};
  5. 模型继续执行删除动作。

这样做的意义在于,人工确认不是游离在协议之外的额外环节,而是Agent执行链路里的一个标准工具。模型必须经过这个工具才能拿到“许可”,这比在提示词里写一句“请你谨慎操作”要可靠得多。

4. 从接入到跑通:GUI-MCP工程链路的实测记录

4.1 环境准备:最容易被忽略的显示会话问题

第一次做GUI-Agent的人,大概率会在这里卡住。代码写好了、协议跑通了,结果Agent一动就报错,原因往往不是代码问题,而是运行环境里没有一个真正的图形会话。

Linux服务器上跑GUI自动化,基本都需要虚拟显示服务兜底,否则控制器连“屏幕”都没有,更别说点击按钮。桌面版Windows和macOS相对省心,但也要注意权限设置,尤其是屏幕录制、辅助功能授权这两项。如果权限没开,界面树信息会被系统屏蔽,留给模型的只是一层空壳节点。

我踩过的坑还有:跑GUI-Agent的进程不能以systemd服务方式偷偷跑,它必须存在于一个有用户的会话中,否则系统根本不会给它投递鼠标键盘事件。之前为了省事把Agent挂在后台服务里,结果它一直“看见”界面却“点不动”任何东西,排查了一下午才发现是这个原因。

4.2 服务端搭建与工具注册

GUI-MCP的服务端本质上是把一个GUI控制器包成MCP协议暴露出来。配置上,我倾向于让每个工具保持“小而专”,这样模型理解和调用都更准确。下面是一个常见的服务配置片段,字段含义是工具名和对应动作:

{ "tools": [ { "name": "get_ui_tree", "description": "获取当前窗口的控件树信息" }, { "name": "click", "description": "点击指定ID的控件" }, { "name": "input_text", "description": "在指定输入框写入文本" }, { "name": "scroll", "description": "按方向滚动页面" }, { "name": "wait_for_condition", "description": "等待界面出现指定条件" }, { "name": "request_user_confirm", "description": "请求用户确认操作" } ] }

工具注册好之后,建议先做一轮“工具回归测试”——不要急着跑真实任务,而是用脚本模拟调用每个工具,确认它们都能正常返回。我习惯用一个最简单的测试用例:打开记事本,让Agent输入一行字,再关闭窗口。这个链路虽然简单,却能一次性验证界面树读取、文本输入、按钮点击、状态回读这几项核心能力是否工作正常。

4.3 任务提示词与HITL提示词设计

模型在GUI-Agent里的表现,很大程度取决于提示词怎么约束它。用GUI-MCP不是简单告诉模型“帮我操作一下XX软件”,而是要给它一套可执行的任务拆解规则。我自己在提示词里固定写了几条约束,效果很直接:

  • 每一步动作前,必须调用get_ui_tree()确认当前界面状态;
  • 遇到界面变化、弹窗、加载状态,先调用wait_for_condition等待稳定;
  • 执行删除、覆盖、发送、支付等敏感动作前,必须调用request_user_confirm;
  • 同一个操作重试两次仍然失败,停止执行并申请人工接管。

其中第三条特别值得强调。模型天然倾向于“把活干完”,如果没有提示词约束,它可能绕过确认工具直接执行敏感操作。后来我发现提示词只是第一道防线,最可靠的还是服务端策略拦截——在服务端配置高危动作白名单,未经过用户确认的动作请求直接拒绝。提示词负责引导,策略负责兜底,两层都不可少。

5. 三个真实复盘的实验场景

5.1 场景A:自动填写表单并提交预约

这个场景是在一个内部模拟网页上做的:Agent读取表格里的信息,把内容填进预约表单,最后提交。体验最舒服的是中间过程——以前用RPA脚本,页面里某个输入框的ID变了,脚本就要停工排查;在GUI-MCP方案里,模型自己会根据界面文本找到对应的输入框,不需要依赖固定选择器。

HITL在这次任务中的作用出现在提交前。Agent填完表单之后,暂停下来,向用户弹出了一条确认信息:“我将提交预约申请,请确认信息无误”。这时候用户可以肉眼检查一遍填好的内容,如果发现填错可以中断,避免了一次错误的预约提交。这个“提交前看一眼”的习惯,后来我全部保留到了其他流程里。

5.2 场景B:桌面文件分类整理

这个实验我用了两层HITL:预授权和阶段确认。预授权把Agent的权限限制在“桌面/工作素材”目录内;阶段确认则针对移动操作——因为“移动文件”如果目标位置判断错了,很可能造成文件覆盖或丢失。

执行过程中模型的表现基本符合预期,但也暴露了一个问题:桌面上有两个文件名非常相近的文件夹,模型在读取UI树之后,把目标文件夹判断错了,幸好阶段确认的弹窗让用户及时发现,没有造成数据丢失。这个案例让我更加确信——在文件系统这类高风险操作上,HITL不仅是一个安全开关,它本身就是保证结果正确性的必要环节。

5.3 场景C:网页端商品比价与加购

比价和加购的场景相对安全,Agent的体验也更“连贯”。模型打开网页、读取商品列表、跳转详情页、把选中的商品加入购物车,这些步骤基本不需要人工介入。真正需要HITL的是登录环节——模拟账号登录时遇到了图形验证码,模型尝试了几次都无法通过。

这时异常接管机制起了作用:Agent检测到验证码尝试多次失败,自动挂起并弹出提示“需要人工协助完成验证码识别”。用户手动完成验证后,Agent从挂起点继续执行,而不是从头开始。这次实验让我体会到,异常接管做得好,能把“流程中断”变成“暂时挂起”,对用户体验的影响会小很多。

6. GUI-Agent落地中最容易踩的坑

6.1 节点错位:界面刷新导致UI树信息过期

GUI-Agent最容易出问题的不是模型能力,而是“界面状态变了但Agent不知道”。我在实验中多次遇到:模型读取了UI树,认为某个按钮还在,实际上页面已经刷新,按钮的位置和ID都变了,再点击就会点到错误的元素,甚至点到完全无关的位置。

解决这个问题的核心思路是:每次执行动作前,重新获取UI树,不要复用旧的节点ID。有时候为了性能,模型会把一个节点ID保存下来连续使用,但在GUI场景里,这个优化非常危险。宁可慢一点,也不要让Agent拿着过期的“地图”行动。

6.2 异步加载:固定等待时间不靠谱

网页和现代桌面应用大量使用异步加载,点了按钮之后,内容可能经过几百毫秒甚至几秒钟才出现。如果Agent固定等待两秒钟,有时候页面还没加载完,它就继续操作,往往就会失败;页面加载快了,又白白浪费时间。

正确做法是实现一个“轮询等待”的机制:调用wait_for_condition之后,周期性读取界面状态,直到目标元素出现或超时。这个机制相当于让Agent“等它准备好再动手”,而不是凭经验猜测一个时间。实测下来,整体任务完成速度反而更快,因为大部分延迟是动态的,等待函数可以做到“页面一准备好就立即继续”。

6.3 模型对人工确认的“敷衍”

还有一个比较隐蔽的问题:部分模型在提示词的指挥下,只会在第一个敏感动作前调用一次确认,后续同类动作就默认跳过。比如让Agent删除十个文件,它可能在删第一个之前问用户,后面九个就不问了。这并不是模型故意“偷懒”,而是它在做“第一动作确认后,后续动作视为同类操作已授权”的泛化推断。

解决这个问题,不能只靠提示词。我采用的是服务端强制策略:在服务端配置高危动作清单,凡是清单内的操作,无论模型是否调用确认工具,服务端都会弹出确认请求。只有用户明确点击“允许本次操作”之后,这一次动作才会被真正执行。这也是我反复强调“策略兜底”的原因——GUI-Agent落地的可靠性,必须建立在系统约束之上,而不能建立在模型的自觉性之上。

7. 个人想法:GUI-MCP与HITL的适用边界

做了几轮实验之后,我对这个方向的看法是:GUI-Agent的价值不是“全自动”,而是“可受控的半自动”。它最适合的场景,是那些重复度高、流程固定、风险相对可控、量又特别大的工作——我粗略估了一下,光是把“填表单、查数据、导文件、发通知”这类流程交给Agent,一个普通业务人员每天就能省下两三个小时。

反过来,凡是涉及高金额支付、不可逆删除、敏感信息发送的任务,我建议宁可让Agent做一半,剩下的一半由人类接管,也不要去追求所谓的“全程无人化”。成本上算账也很简单:一次误操作造成的事故代价,可能比自动化的收益高一个数量级。HITL从来不是技术妥协,它是业务风险控制的底线。

后续我觉得值得继续探索的方向有两个:一是把GUI-MCP和沙箱环境结合,尽量让Agent在隔离的可回滚环境里先“预演”一遍高风险操作,确认无误后再执行到真实系统;二是把每次操作日志和用户确认记录完整留存,形成一套可审计的轨迹。这样即使出了问题,也能快速回溯原因,而不是对着一个“黑盒”干着急。

回到开头那个问题:GUI-Agent能不能直接落地?我的回答是,能,但前提是先想清楚哪些步骤可以自动,哪些步骤必须让人拍板。GUI-MCP把“操作”这个动作变成了可调用的工具,HITL把“判断”这个能力留给了人类,两者配合,才是现阶段最稳妥的一条路。

相关新闻

DSH Desktop:把桌面壳做成插件的开源AI客户端

DSH Desktop:把桌面壳做成插件的开源AI客户端

桌面端 AI 客户端这两年多得有点离谱,但我发现大多数都有同一个毛病:你装上去是什么样,用三个月还是什么样。顶多换个主题色、调个侧边栏宽度,然后就没有然后了。今天要聊的这个项目偏偏反着来——它把整个桌面壳本身都做成插件&a…

2026/10/20 10:02:44 阅读更多 →
降AI率实用指南:从AI检测原理到工具与工作流

降AI率实用指南:从AI检测原理到工具与工作流

前几天一个学弟突然找我,说他用AI辅助写的实习报告被学校查出来“疑似AI生成”,整个人都慌了。我一看那份报告,通篇“首先、其次、最后”,每段结尾都来一句“综上所述”,措辞工整得像新闻联播——这确实不怪检测系统&a…

2026/10/20 10:02:44 阅读更多 →
Vue+Spring Boot小区水电费收费系统毕业设计全流程指南

Vue+Spring Boot小区水电费收费系统毕业设计全流程指南

做管理系统类的毕业设计,最难的不是写出能跑的代码,而是把业务逻辑真正捋清楚。很多同学拿到“基于Vue的小区水电费收费系统wfhj4”这类题目,第一反应是去搜源码、改页面,结果调了两天环境连登录都进不去,最后答辩时支…

2026/10/20 10:02:44 阅读更多 →

最新新闻

为什么一降重AI率就升高?手动降重越改越像AI,降重降AI一起做才是正解!

为什么一降重AI率就升高?手动降重越改越像AI,降重降AI一起做才是正解!

为什么一降重AI率就升高?手动降重越改越像AI,降重降AI一起做才是正解! 为什么一降重AI率就升高?不少同学都碰到过:查重报告上的红色总算改少了,再送去做AIGC检测,AI率反而比改之前还高。明明每…

2026/10/20 10:44:37 阅读更多 →
基于Springboot大学生就业服务平台【附源码+文档】

基于Springboot大学生就业服务平台【附源码+文档】

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:44:37 阅读更多 →
Node.js部署实战:从环境配置、PM2进程守护到日志排错的完整指南

Node.js部署实战:从环境配置、PM2进程守护到日志排错的完整指南

开头:真香的是开发,想砸电脑的是部署我当初也是冲着 Node.js 那套开发体验去的,写接口、做工具脚本、甚至给团队搭个内部面板,简直行云流水。直到第一次正儿八经把服务部署到服务器上,才发现前端的爽和后端的痛之间&am…

2026/10/20 10:44:37 阅读更多 →
论文AI率和重复率怎么一起降下来?降重降AI几分钟就能一起完成!

论文AI率和重复率怎么一起降下来?降重降AI几分钟就能一起完成!

论文AI率和重复率怎么一起降下来?降重降AI几分钟就能一起完成! 论文AI率和重复率怎么一起降下来,是很多同学交稿前最头疼的事。论文AI率和重复率两个数字同时摆在报告上,先压哪个都不对:刚把AI率压下去,查…

2026/10/20 10:44:37 阅读更多 →
AgentScope实践:用标准化Msg协议搭建多智能体协作系统

AgentScope实践:用标准化Msg协议搭建多智能体协作系统

上周我在重构一个内部客服项目的时候,终于体会到“多智能体”和“多个会说话的模块”之间那条天堑。单机脚本里我写了三百多行状态机,让一个主管Agent给三个执行Agent派活,结果一个Agent因为提示词里写了句“你继续分析”,就带着上…

2026/10/20 10:44:37 阅读更多 →
如何 5 步把游戏手柄映射为键盘鼠标?AntiMicroX 完整指南

如何 5 步把游戏手柄映射为键盘鼠标?AntiMicroX 完整指南

如何 5 步把游戏手柄映射为键盘鼠标?AntiMicroX 完整指南 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcode.com/Gi…

2026/10/20 10:43:36 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →