Agent 为什么需要 CLI(agent为什么缓存命中率高) ypxx.net

我想离开电脑一会儿,Agent 却停在了浏览器门口

我一直想让 OpenCode、Codex 这样的外部 Agent 自动开发 Dora 游戏。

理想中的画面有点贪心:我把想法交代清楚,Agent 自己查资料、修改代码、构建和运行。即使我暂时离开,它也能根据结果继续调整。等我回来时,面对的不是一句“代码已经写好,请你手动测试”,而是一个已经走过几轮验证、把成功和失败都记录下来的项目。

<image="http://agito.cs5itt.com/zuqiunews/1431.html"

但最初的现实更像另一回事。

Agent 能读项目,也能把代码写进文件。然后它走到游戏引擎门口,发现后面的按钮都在浏览器里:构建要打开 Web IDE,运行要点击界面,日志和当前状态还需要人看过以后再转述。

像是请来一位会做家具的伙伴。木料切好了,桌腿也装上了,最后它却隔着玻璃门问你:“能帮我进去拧一下最后一颗螺丝吗?”偶尔一次当然没问题。可长程任务里每走几步都要等人回来,所谓自动开发就只剩下了自动写代码。

会写代码,和接过开发任务,还隔着一段路

游戏开发不是把源码填满就结束了。

一段修改至少还要经过构建、运行和反馈。构建告诉我们语法与类型是否成立;运行告诉我们引擎能不能真正加载它;状态和日志则让开发者知道当前跑的是哪个项目、程序有没有报错、下一步应该继续还是回头修正。

这些步骤对人来说可以靠记忆和界面完成,对 Agent 来说却必须成为可以调用、可以读取的明确接口。

如果每项能力散落在不同页面、脚本和内部服务里,Agent 就要反复猜测:该用哪个入口?浏览器是否已经连接?这次修改应该怎样验证?换成另一种 Agent,整套接入还可能重做一次。

我真正想补上的,就是这段路。

Agent 的工具不只有 tool call 和 MCP

<image="http://agito.cs5itt.com/zuqiunews/1409.html"

谈到给 Agent 增加能力,人们很容易先想到 tool call 或 MCP。它们确实很重要,但不是所有能力都必须做成同一种形状。

它们并不互相排斥。Skill 可以教 Agent 什么时候调用 CLI;MCP 工具也可以在内部复用同一套底层能力。

CLI 的特别之处在于它足够朴素。只要一个 Agent 可以执行命令,就有机会使用它,不必先为某个宿主开发专属适配。那些不常用的能力,也不一定要始终出现在每一轮 Agent loop 的工具列表里;需要时再从 Skill 或文档中找到命令即可。

而且,人类可以原样运行同一条命令。Agent 说自己完成了构建,我们不必只相信一段总结,也能复制它的步骤重新检查。

Dora 以前也有 CLI,但现在这套入口来自新的需求

这里需要先说明一件事:Dora 并不是到 2026 年才第一次拥有 CLI。

2026 年 4 月,项目已经加入过一套独立的 Python CLI,用来统一安装、构建和运行等操作。真正由外部 Agent 自动开发需求直接推动的,是两个月后开始形成的当前引擎原生 CLI。

2026 年 6 月 20 日,旧 Python 工具被移除,CLI 进入 Dora 可执行文件自身。命令行参数中出现 cli 时,引擎不会启动普通的游戏运行流程,而是进入一个轻量模式,只加载 CLI Lua 脚本和命令需要的最小辅助能力。

随后几天里,项目状态、环境诊断、多语言构建和 Yarn 检查被陆续接入;7 月又加入了 Dora API 与教程的搜索、读取能力。

这不是简单地把 Python 改写成 Lua。入口从一个外围工具变成了引擎自己能够解释和维护的公共接口,目标也更明确:让人和外部 Agent 都能沿着同一条路进入 Dora 的开发现场。

一次自动开发,可以怎样走完

假设现在请 Codex 或 OpenCode 修改一个 Dora 游戏,它可以先用 doc search 找到相关教程或 API,再用 doc read 读取需要的段落,不必凭印象猜引擎接口。