青雲的工程笔记

关于 AI Coding Agent、源码解析,以及写代码过程中的思考。

最新文章

全部文章

Computer Use 每轮 40 个工具错误,都出在哪里

Orca computer use 真机验收复盘:15 项任务的 harness 怎么跑(PTY 里的真实 TUI、从渲染出来的面板读授权、独立核验、清理核查)、前五次运行为什么都死在 harness 自己身上、基线的 37 和 40 个工具错误分别来自 bash 绕路、没有 AX 窗口的窗口编号和系统设置的 AXRaise,可靠性修复(可用窗口、带下一步的错误、无窗口快捷键、AXRaise 回退、失败预算)把错误降到 8、9 个,以及为什么一个改动至少要跑两轮。

阅读文章

让 Agent 去开个文件夹,它用了我自己开着的 Finder 窗口

Orca v0.5.14 computer use 窗口边界复盘:窗口归属怎么判定(本轮第一个 computer 调用时拍快照)、逐窗口审批目标 bundle#window:<id> 和规则匹配、拒绝之后为什么让本轮继续、驱动层的四道过滤(托盘 app、桌面、Chrome 同尺寸窗口、辅助窗口)、作用于整个 app 的快捷键(包括 Quit and Keep Windows)、三次真机验收的结果,以及一句 Esc 的说明为什么改了三遍。

查一次系统版本要 14 秒:测试慢在 94 万个 .o 文件上

一次 macOS 测试变慢的排查:host_supported 调用 NSProcessInfo.operatingSystemVersion,CoreFoundation 为了本地化版本字符串去找主 bundle 的 .lproj 目录,裸可执行文件的主 bundle 就是它所在的目录;target/debug/deps 里有 94.7 万个条目(94 万个 .o,来自 macOS 上 dev 构建默认的 split-debuginfo=unpacked);用一个只调用一次 operatingSystemVersion 的小程序测出空目录 2 毫秒、30 万个文件 290 毫秒、真实目录 13.6 秒;以及前两次为什么都对上了症状却没找到原因。

100 万字还能流畅打字吗:给留白做一次性能体检

留白 0.6.3 对比 0.1.0 的性能复盘:在离屏 WKWebView 里端到端计时,两个版本交替多轮;以 EditorState 为键的 WeakMap 缓存让每次移动光标都整篇重算,改以 state.doc 为键后 30 万字富文稿从 16.5 ms 降到 2–3 ms;resolveInner 只看右侧,段落末尾打字走不上快路径;CodeMirror 只解析到可见区之后 10 万字,大纲缺标题;Markdown 增量解析的开销随顶层块数增长,同样 100 万字每字从 0.45 ms 到 12.4 ms;字数统计放进 Web Worker、Mermaid 等首帧画完再加载、esbuild 代码分割;以及 CI 里的性能预算。

我让 Codex 在 Windows 虚拟机里替我测了一晚上

留白与 Cleanzo Windows 版的真机测试复盘:Mac 上开发、Codex 在 Windows 11 云桌面里只测不改、每项配截图、Mac 上的测试与模拟 Win32 的浏览器测试不算 Windows 通过;单实例锁的 key 用了本地化的应用名导致中英文各占一把锁;向进程所有顶层窗口发 WM_CLOSE 让 LibreOffice 在保存询问前崩溃,改为只向用户能关的窗口发 SC_CLOSE;mygo 0.6.2 的 TrashItem 在文件超过回收站容量时直接永久删除,改回 SHFileOperationW 并预检 BitBucket 容量;以及把跑通的流程写成 skill。

状态栏显示还剩 33%,请求却超了上下文上限

Orca v0.5.5 上下文预算复盘:max_tokens 384K 与压缩阈值不一致造成的死区、pinned 通知让整轮无法压缩、对照 dsh 与 Codewhale 的做法、按思考强度设定回复预留并逐请求裁剪、以 API 用量为锚测量提示大小、按工具平衡单元切分当前轮、紧急压缩只采用真正变小的结果,以及实现中把同一份偏差扣了两次的弯路。

源码小册

沿着源码,读懂一个 Coding Agent。

全部小册

我开发的项目

把想法写成代码,持续打磨。

全部项目