字节 Agent 研发|开源 orca-agent / blade-code / Pilion-browser / blade-agent-sdk|Agent 工程、ToB 落地与开源实践 | 中转站站长

Joined December 2016
有人问做 agent 从哪开始,我一般不给书单。 我数过这些年真正能拿出来给人看的产出物,一共五样。说「卡在哪一关」其实不太准确——更常见的是五样都有,但都是半成品,然后到处漏水。 第一样最简单,也最容易糊弄过去,就是一段不会认错的描述。一个工具或一个 skill 只做一件事,「什么时候用它」要写进描述里。判断方法很土,把描述遮掉名字,还能不能一眼分清它和旁边那个。分不清,就是边界还没想清楚。 第二样是一份你愿意每次都照着跑的完成判据。把「做完了」翻译成可以核对的东西,命令、退出码、通过/失败/跳过计数、失败详情,缺一项就算未验证。再配几条禁止,不许把 skipped 计进通过、不许加 .skip 让测试变绿、失败时不许报 DONE。这一关刷掉的人最多,因为口号写起来实在太顺手了。 第三样,三段独立的校验。模型返回合法 JSON 只证明 schema_valid(格式类型对),内容跟任务对不对得上(semantic_valid)、这个动作能不能做(action_safe),是另外两件事。只有第一段通过,推不出后两段。多数项目只做了第一段,然后就当三层都过了。你那套链路里,第二段落在哪,说得出来吗。 第四样最难,也最容易被推到「以后再说」——一次能被回放的执行记录。写到某个时候你会发现,写在提示词里的约束不可靠,会被压缩、被遗忘、被绕过。约束得变成运行时里的一个阶段,失败了就跑不下去。判断标准就一句,出问题的时候,你能不能让当时的事件流重放一遍。 第五样,一份能定期清点的清单。工具、skill、规则都只会增不会减,你得知道哪个还在用、哪个已经死了、哪个在抢别人的机会。清单至少三列,上次真正被触发是什么时候、被检索到多少次、触发之后成功率多少。真记起来挺烦的。 这五样都能拿给别人看。如果你现在一样都拿不出来,大概率不是学得不够多。 适合已经在写 agent、但总觉得「它有时候不听话」的人。还没把一次完整工具调用跑通的话,先跑通再回来。
7
1,956
留白 Windows 版第一轮实测,Codex 在 Windows 11 虚拟机里从晚上 9 点跑到快凌晨 1 点,48 项用例:36 通过、3 失败、6 部分验证、3 未测。 最没想到的一个 bug:界面切成中文以后,再从资源管理器双击一个 .md,会多开一个英文的留白,两个进程同时跑。原因是单实例锁的 key 里带了应用名,而应用名是本地化的,中文叫「留白」,英文叫「Liubai」,两种语言各占了一把锁。这是把安装好的程序在 Windows 里真跑起来才抓到的。 现在我的做法是 Mac 上开发完,让 Codex 用它的内置浏览器连上 Windows 云桌面,自己去点: · 先核对系统版本、About 里的版本号、安装路径和进程。新版本从 GitHub 下载安装包,在 Windows 端校验 SHA-256 再覆盖安装 · 测重启、单实例之前先备份用户数据,测完把改过的设置恢复 · 每一项记 pass / fail / partial / not_tested,结论都配截图,最后出报告,写清复现步骤和源码里的可疑位置 · Mac 上的单元测试、模拟 Win32 的浏览器测试、以前的 CI 记录都不算 Windows 通过 · 它只测和诊断,不改代码,修不修我来定 修完发 0.6.1,再让它定向复测 16 项,全部通过,升级前后 6 份文稿的哈希、18 份草稿的正文都没变。 Cleanzo 的 Windows 版也是这么测的。0.2.0 测出一个 P1:在系统状态页点「退出」关 LibreOffice,LibreOffice 直接崩溃,没保存的测试文稿丢了。源码里的线索是关闭时给这个进程的所有顶层窗口都发了 WM_CLOSE,隐藏的窗口也会收到。0.2.2 复测这条过了。0.2.3 又测出一个:回收站容量调到 1 MB 后,128 MiB 的测试样本移到回收站,结果原路径没了,回收站里也是空的。 留白第一轮跑完,我把这套流程整理成了一个 skill,叫「Windows 虚拟机测试」。之后留白 0.6.1、0.6.2,Cleanzo 0.2.0、0.2.2、0.2.3 都是用它测的。 留白:liubai.echovic.com Cleanzo:cleanzo.echovic.com 你们做跨平台桌面应用,Windows 那边是怎么测的?
3
2
127
刷到一个挺有意思的项目:tsrs,把 TypeScript 编译器移植到 Rust。 Cloudflare、VoidZero 和 Owner.com 的 Max Schwenk 一起在做,跟 TypeScript 团队密切合作,放在 Oxc 工具链里孵化。博客里专门说明了不分叉 TypeScript,语言怎么设计还是 TypeScript 团队说了算。 几个我觉得有意思的点: - 早期基准里,同样数量的类型检查 worker 下,比 TypeScript 7.0 最多快 8 倍,内存少用约 70%。这组基准的配置是和 TypeScript 团队一起对齐过的 - 有些优化已经贡献回上游,TypeScript 7.1 beta 比 7.0 最多快 2.5 倍 - 选 Rust 主要是为了 Wasm。Go 编成 Wasm 得把垃圾回收器一起带上,Rust 没这个负担,内存占用小,整套开发环境就能放进浏览器里跑 - 跟上游保持同步交给 agent:每天拉 TypeScript 的改动开跟踪 issue,发现差异就让 agent 复现、移植测试、提修复 - 博客里还有一句挺值得琢磨:前沿模型现在几天内就能几乎独立完成大规模移植 目前还是实验版,和上游还有些小差异,比如诊断信息的输出顺序,他们打算在稳定版之前尽量抹平。想试的话 npm install tsrs,然后 npx tsrs。 blog.cloudflare.com/typescri… 你们项目跑一次 tsc 现在要多久?
74
In a measured run, Orca's first request was 10,517 prompt tokens, and part of that was tool descriptions sent twice: once in the tool schema, once again in the system prompt. v0.5.13 drops the duplicates and stops advertising tools that can't run where you are (no MCP server enabled, not in a git repo, headless exec). Same run now starts at 8,094. Also in this release: - cost estimates follow DeepSeek's current prices, including weekday peak hours in Beijing - prices refresh in the background from models.dev; [pricing] refresh = false turns that off - computer use keeps your selection and caret when it types into a field that already has focus - a broken project config no longer throws away your user config free & open source: github.com/echoVic/orca-agen…
2
2
85
实测 Orca 的第一个请求有 10,517 个 prompt token,其中一部分是重复的:工具描述在 tool schema 里发了一遍,又在系统提示里发了一遍。 v0.5.13 把重复的去掉了,当前环境跑不了的工具(没开 MCP、不在 git 仓库里、headless exec)也不再发给模型。同样的任务,第一个请求降到 8,094,固定前缀小了大约 24%。 这版还有: - 成本估算按 DeepSeek 官方最新价格算,工作日北京时间 9 到 12 点、14 到 18 点的高峰价也算进去了。新估算会更高,设了 max_cost_usd 的任务可能会更早停 - 价格在后台从 models.dev 刷新,刷新失败也不卡当前对话,不想联网可以设 [pricing] refresh = false - computer use 往已经聚焦的输入框里打字时,会保留原来的选区和光标位置 - 项目配置写错时,不会再连用户配置一起丢掉 Orca 是我维护的开源终端编程 Agent,免费开源: github.com/echoVic/orca-agen…
60
留白有 Windows 版了(内测)。 做 Windows 版时注意到一个小坑:Ctrl+Shift+F 在微软拼音和搜狗里是简繁切换。所以留白的专注模式放在 F8,跟 Typora 一样,不跟输入法抢键。 还有几处是专门给 Windows 做的: - Typora 里写的 C:\ 图片和文档链接,打开就能直接显示 - 文件被杀毒软件或 OneDrive 短暂锁住时,保存会自动重试 留白是一个打开就能写的 Markdown 编辑器,整页都是纸面,文件始终是你自己的 .md。支持 Win10/11,x64 和 ARM 都有,不用管理员权限,之后在 app 里自动更新。 安装包还没签名,SmartScreen 拦的话点「更多信息」→「仍要运行」。 免费开源 👇 liubai.echovic.com/ 用 Windows 写东西的朋友,帮我试试有没有坑?
1
86
用 Codex 桌面版的 Mac 用户,建议去看一眼这两个目录: ~/Library/Application Support/Codex/Crashpad ~/Library/Application Support/com.openai.codex/web/Crashpad Codex 会在这里一直写崩溃转储,app 里没有任何提示。有人测到一天涨大约 5GB。最近一位用户两个目录加起来 323GB、约 404 万个文件,占了硬盘的 35%。相关 issue 从 6 月开到现在,还没关。 github.com/openai/codex/issu… 所以 Cleanzo 0.1.14 加了崩溃转储清理: - 按 app 列出 Crashpad 占了多大、有多少文件,一键清掉 - 只清转储文件,目录和 settings.dat 都保留,正在用的文件会跳过 - 打开 Cleanzo 时,哪个 app 的转储超过 5GB 就提示你 - VS Code、Slack、各家浏览器这些 Chromium/Electron 应用也都能扫 免费开源,Apple 芯片的 Mac 可以用: cleanzo.echovic.com/ 你的 Crashpad 现在多大了?
1
2
119
发现一个挺有意思的小模型:qwen3-4b-deslop,作者把 AI 腔直接从 Qwen3-4B 的权重里训掉了。 不用加系统提示,它就不写破折号,也不会再写“不是 X,而是 Y”和三连排比。 几个点挺有意思: - 整个训练在一台 M2 MacBook Air 上跑完,LoRA 每轮一到三小时 - 作者自己写了一套 AI 腔检测规则,按每千字打分,原模型 121,微调后 12.5,人类写作一般在 15 以下 - 30 道常识题还是全对 - 量化版 2.5 GB,Ollama 一行命令就能本地跑 作者也写了不足:文风偏平,名字和地名还是会编。 博客里把三轮训练怎么踩坑写得很细,推荐看看 👇 100toolkit.com/blog/deslop-m… 模型:huggingface.co/erikkannike/q…
67
发现一个挺有意思的 Mac 小工具:Status Trio,把 Wi-Fi、电池、音量合成菜单栏里的一个图标,灵感来自 iPhone 的合并状态栏。 顺手翻了下仓库,比想象中硬核: - 能显示 iPhone、Apple Watch 和蓝牙耳机电量 - 外接显示器音量也能直接调 - 菜单栏充电动画专门做过性能优化,CPU 从 12.3% 降到 0.41% - 可以放菜单栏、Dock,或者两边都放 独立开发者做的,开源免费,Apache-2.0 👇 github.com/lingyired/status-…
2
82
Cleanzo 0.1.12:安全优先的 macOS 清理工具,这版多了一个「AI 技能」管理页。 - 一处看全 ~/.agents、Claude Code、Codex、Gemini CLI、OpenCode、Grok、Hermes、Pi 的技能,同一个技能只列一次,标出装在哪些工具里、是目录还是软链 - 从对话记录只读统计调用:最近用过哪些,满 14 天没调用才标「久未使用」 - 揪出失效软链、缺 SKILL.md 的、内容相同的重复副本;相同副本可一键换成指向 ~/.agents 的软链 - 移除一律先进废纸篓,确认弹窗逐项列出 - 垃圾清理结果拆开显示:发现多少、当前能清多少、正在运行暂不能动、读取失败几项,读不到的不再算成 0 DMG 已签名并经 Apple 公证,free & open source github.com/echoVic/cleanzo
1
2
134
腾讯云开源的 Octop,自托管的多用户多 Agent 助手,一个人管,全家都能用。 有意思的是两台 Octop 能连起来互用对方的专家,对话只在专家所在的那台机器上跑,发起方不落完整记录。 - 单进程一条 octop run,Web 控制台、CLI、定时任务一起起来,数据都在 ~/.octop/ - 飞书、钉钉、QQ、微信、企业微信都能直接跟 Agent 聊 - 远程桌面、无头浏览器、终端 AI 都内置,写代码可以委派给 Claude Code、Codex - 记忆跟着工作区走,v1.0.2 起手改记忆和已有记录打架时会先让你确认 MIT,Python,10 月 18 日刚发 1.0.2,GitHub 现在 1 万 star。 github.com/TencentCloud/Octo… 你敢把专家借给别人用吗?
3
2
183
Songti SC draws the radical ⼜ with the exact glyph it uses for 口. So my PDF text-layer fix, a static radical-to-ideograph table, quietly turned 门口 into 门又 whenever you copied text out of a PDF set in that font. liubai 0.5.0 drops the table and asks CoreText which character the installed font actually draws. Same release: Word (.docx) export with real heading styles, Word numbering, footnotes and editable equations. The DMG also shrank from 13.1 MB to 10.9 MB, because the frontend had been shipping twice. free & open source: github.com/echoVic/liubai
40
留白 0.5.0:极简轻量的 Markdown 写作桌,现在能直接导出 Word 了。 - 导出 .docx:标题用 Word 内置的「标题 1–6」样式,导航窗格和目录直接可用;正文宋体 / Times New Roman 11 pt、1.5 倍行距、A4 - 列表是真正的 Word 编号,表格跨页重复表头,脚注就是 Word 脚注 - 公式转成可编辑的 Word 公式,Mermaid 图表按 2 倍清晰度嵌入 - 安装包从 13.1 MB 降到 10.9 MB,应用从 42.9 MB 降到 34.9 MB(之前前端被打包了两遍) - 修了 PDF 文字层的一个坑:用宋体排版的 PDF,复制出来的「门口」不会再变成「门又」 free & open source github.com/echoVic/liubai
1
58
Grok Bot 越来越火了,所以整理了 10 种用法,大家可以看一看。
36
Until this week, one screenshot in a blade-agent-sdk session could look like hundreds of thousands of tokens. The estimator was tokenizing the base64, so a single image tripped emergency context truncation. Compaction was worse: it sent that base64 to the summary model and split one screenshot into many summary requests. 7.4.16 counts an image from its pixel size with the provider's formula, keeps image bytes out of the transcript, gives each request an image budget (newest first, older ones become placeholders), and retries a turn with fewer images when the provider refuses them. Free & open source: github.com/echoVic/blade-age…
1
58
留白:Mac 上的极简 Markdown 写作工具。昨天连发 4 个版本,从 0.1.6 到 0.4.0: - 块编辑:拖 ⋮⋮ 调顺序,空行输入 / 插入任意块 - 表格就地编辑,Tab 在单元格间移动 - 图片拖角缩放、对齐、加说明 - KaTeX 公式、Mermaid 图表、提示块、脚注 文件还是原样的 Markdown,每次块操作只改动涉及的那部分。 免费开源 github.com/echoVic/liubai
49