[{"data":1,"prerenderedAt":442},["ShallowReactive",2],{"page-/post/posts/ai-agent-16w":3,"surrounding-page":433},{"id":4,"title":5,"author":6,"body":7,"date":423,"description":13,"extension":424,"group":425,"lastmod":425,"meta":426,"navigation":427,"path":428,"rawbody":429,"seo":430,"showTitle":425,"stem":431,"tags":425,"versions":425,"__hash__":432},"content/post/posts/ai-agent-16w.md","一个月内围绕 AI Agent 写了16w+ 行代码后，我得到了什么","aatrox",{"type":8,"value":9,"toc":414},"minimark",[10,14,21,28,31,34,38,41,48,56,59,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,119,122,125,128,134,137,140,143,146,149,152,155,158,161,168,173,176,179,184,187,190,194,197,200,203,206,212,217,220,225,228,233,236,241,244,247,250,256,259,272,275,278,281,284,287,290,293,300,316,319,326,330,333,338,341,344,351,354,357,362,365,368,371,376,382,396,399,402,405,408,411],[11,12,13],"p",{},"这个月，不完全统计，不覆盖所有项目，不考虑 git 变更历史，只看新写的最终文件里的代码——",[11,15,16,17],{},"大概是 ",[18,19,20],"strong",{},"16w+ 行代码",[11,22,23],{},[24,25],"img",{"alt":26,"src":27},"","./_inline-assets/img1.png",[11,29,30],{},"当然，实际要比这多得多。",[11,32,33],{},"为了防止自己忘记曾经产出的垃圾项目，特意在这篇文章按时间线顺序简单汇总一下。",[35,36,37],"h2",{"id":37},"早期项目",[11,39,40],{},"最早时，我主要资产分布在：一个 Nuxt 全栈博客、一个基于 Tauri2 + Nuxt4 的多端笔记类应用、一个理念超前的命令行工具。",[11,42,43,44,47],{},"在 OpenClaw 把 Agent 彻底带火之前， SKILL 刚开始兴起的时候，我发现",[18,45,46],{},"命令行工具无比契合 SKILL","。",[11,49,50,51,55],{},"拥有极短的描述（",[52,53,54],"code",{},"--help","）、极短的执行命令、完全确定的执行结果。",[11,57,58],{},"于是 z-cli 很好地帮我把大部分散落在 SKILL 里的 scripts 抽离并管理了起来。",[11,60,61],{},[24,62],{"alt":26,"src":63},"./_inline-assets/img2.png",[11,65,66],{},"直到今天， CLI 的这个设计也没有「塌房」！",[11,68,69],{},"为了迎合 Agent 的潮流，我先是把所有调用和脚本在 z-cli 里整合了起来，然后再手搓几个 skill——skill 里就只写 CLI 实际调用方式。",[11,71,72],{},"然后通过 OpenClaw 作为触发的入口，把要发的内容写好再让 OpenClaw 发出去。",[11,74,75],{},"有时候用聊天的方式发布指令，再微调文案、配图等，都让我有些厌倦了。",[11,77,78],{},"我就会再掏出自己的 zotepad 来直接手写并点击发送到草稿箱——",[11,80,81],{},"有一种从核武器直接回到冷兵器时代的神奇新鲜感。",[11,83,84],{},"但是 Agent 已经会帮我把写作产物管理起来了， zotepad 还不行，也接不进去。最终还是会回到聊天窗口上来。",[35,86,87],{"id":87},"痛苦的更新和适配",[11,89,90],{},"OpenClaw 的安装和更新都是一种折磨，要不然也不会有这么多上门安装服务。",[11,92,93],{},"想用新功能，就要接受它的新 bug。",[11,95,96],{},"这还好。",[11,98,99],{},"重点是把传统项目结合到 Agent 上，也是个比较庞大的工作量，仅靠分析和研究无法得出一个合理的架构。",[11,101,102],{},"但是不合理的架构，销售也能包装成 XXClaw 卖给老板——要不怎么说写代码的赚不到钱呢，离真正的商业化行为太远了。",[11,104,105],{},"此时，我几乎每天都会优化一次 skills ，每周都要推倒重做一次。",[107,108,109,113,116],"ul",{},[110,111,112],"li",{},"要么是因为有流程卡住了",[110,114,115],{},"要么是觉得消耗 token 太大，还能优化",[110,117,118],{},"要么是同样的流程，换一个大模型，得到了完全不同的效果",[11,120,121],{},"而且早期的 OpenClaw 响应速度非常慢，工具调用不透明， WebUI 都不是实时刷新的。",[11,123,124],{},"我从飞书发送消息过去，然后去看 WebUI 里它创建了哪些 sub-agent、调用了哪些工具、哪些环节兜了好几个圈子才绕回来。",[11,126,127],{},"然后再马上修改提示词、修改 skill ，按相同的指令开始测试。",[11,129,130,131],{},"如此循环，直到提示我：",[18,132,133],{},"你的额度为 0%",[35,135,136],{"id":136},"两套新玩具项目",[11,138,139],{},"OpenClaw 早期是不能接入微信的，但微信机器人、微信记录年度总结这种项目不是新东西了。",[11,141,142],{},"我也一不小心涉猎了一下，和 Opus 促膝长谈后，学到了很多知识。",[11,144,145],{},"除了不能说的，能说的是： Codex 在 GPT5.4 出来之后，操作 GUI 的能力强了很多。如果你让它操作你电脑上的某个 App ，点击什么输入框，再点击什么按钮，它是可以轻松实现的。",[11,147,148],{},"有了这一前提，你想给谁发送什么消息就变得很简单了——因为各种 web-search 工具以及指纹浏览器的免费 API 额度足够一个正常人使用。",[11,150,151],{},"于是，我搭建了一套从搜索到发送的服务，用于把每天自己关注的新闻定时收集、整理、汇报。这一套东西现在还在用，刷新闻热点还是很方便的。",[11,153,154],{},"第二个玩具项目，来源于内容管理上。",[11,156,157],{},"信息源我有了，那我还缺一个整理的笔记 App。",[11,159,160],{},"笔记大部分都是草稿，我需要从草稿中筛选出待办，待办关联的草稿就会作为我写作的素材。",[11,162,163,164,167],{},"所以这个 App 最关键的就是",[18,165,166],{},"关联性","，类似这样：",[11,169,170],{},[24,171],{"alt":26,"src":172},"./_inline-assets/img3.png",[11,174,175],{},"我能从一个草稿找到其他关联的草稿，也能从待办找到所有有用的草稿——而不是完全结构化地存储起来，再也不打开看了。",[11,177,178],{},"这个项目耗时 1 周左右， 47844 行代码。",[11,180,181],{},[24,182],{"alt":26,"src":183},"./_inline-assets/img4.png",[11,185,186],{},"完成到 70% 左右就先暂停了，耽误了我很多打磨 Agent 工作流的时间。",[11,188,189],{},"其实搞完时发现， Obsidian 可能够用了……",[35,191,193],{"id":192},"不断重建的-agent-设计","不断重建的 Agent 设计",[11,195,196],{},"中途还搞了点别的。",[11,198,199],{},"比如微信公众号的接口直接写在博客项目里了，用 Bun 单独重写了一套服务，可以用于单独部署。",[11,201,202],{},"Zotepad 里把 MD 格式导出带有样式的 HTML ，这个功能也用 Bun 重写了一遍，但是废弃了。",[11,204,205],{},"针对推特抓取数据，也用 Bun 写了一套服务，直接管理起来⬇️",[207,208,209],"blockquote",{},[11,210,211],{},"从 OpenClaw 自己抓数据总结汇报给我 → OpenClaw 写定时任务定期调脚本然后总结汇报给我 → 改写定时任务变为 OpenClaw 直接去拿数据库里已经过滤了一遍的推文再汇报给我 → 直接 Bun 服务把抓到的数据用 webhook 汇报给我",[11,213,214],{},[18,215,216],{},"成功优化了 100% 的 token。",[11,218,219],{},"针对记忆和幻觉，消耗了大量的脑细胞，得出一个结论：",[207,221,222],{},[11,223,224],{},"SKILL 里凡是涉及到脚本的、状态的，都别让 LLM 阅读理解和维护了。全靠自己的代码实现一个类似状态机的 CLI 形态。",[11,226,227],{},"以前是命中 SKILL ，去读什么能做、什么不能做、怎么做。发现需要其他 SKILL ，再去调其他 SKILL ；发现需要一个隔离的上下文环境（换个便宜的 LLM ），再去 spawn sub-agent。",[11,229,230],{},[24,231],{"alt":26,"src":232},"./_inline-assets/img5.jpg",[11,234,235],{},"讲真的，最初编排好这套机制时，它有一个很大的好处：",[11,237,238],{},[18,239,240],{},"一套执行链的状态锚点，从「我」变成了一个 JSON 文件。",[11,242,243],{},"如果你想问这是什么意思，那你问到问题的核心了，我会稳稳地接住你，不绕，一次给你讲明白（如果你需要，下一句我就给你讲明白，饶命）：",[11,245,246],{},"以前发指令给 Agent ，它碰到问题需要去问发出指令的人，导致会来回拉扯才能执行完。",[11,248,249],{},"现在从我的指令发出开始，马上交给 JSON 文件管理状态——现在是哪一步、缺什么、下一步是什么、什么时候走 handoff ，全部去看 JSON 文件。只要状态齐全，条件满足，一定会直接发送到草稿箱里。",[11,251,252,253,47],{},"甚至，因为 Agent 是靠 JSON 文件分析这整套流程缺什么的，所以可以做到",[18,254,255],{},"事先备好参数值（素材），让 Agent 从中间态开始执行，或者多 Agent 并行跟进多个 JSON 文件",[11,257,258],{},"然后只需要打磨两个地方：",[260,261,262,267],"ol",{},[110,263,264],{},[18,265,266],{},"初始化指令是否完备",[110,268,269],{},[18,270,271],{},"handoff 及 review 设计",[11,273,274],{},"第一点初始化指令，就是给上边的笔记 App （ Connect ）留的口子。",[11,276,277],{},"它完全可以内置提示词模板，然后选择了几篇草稿后，拼接到提示词模板里。点击一个按钮，通过命令调用 OpenClaw / Hermes 等等，然后开启一个写作 + 发布的流程。",[11,279,280],{},"然后它就能走完整个流程吗？",[11,282,283],{},"是的，因为现在进度由 JSON 文件控制了。",[35,285,286],{"id":286},"再重构",[11,288,289],{},"后续的代码重构，也全部因为这套机制——我觉得挺好用。",[11,291,292],{},"于是我把所有 SKILLS 进一步整合成了一个新的 CLI ，把这条工作流上所有零散的脚本、插件全都给它装上，把一切会让 LLM 理解出幻觉的部分全部变成代码实现。",[11,294,295,296,299],{},"包括以前需要调用 z-cli 走公众号发布、需要调 zotepad 走 HTML 导出、需要走 imgx skill 生成配图，都变成了新 CLI 的一个 provider——",[18,297,298],{},"强的可怕"," 😄",[107,301,302,309],{},[110,303,304,305,308],{},"重构前：系统提示词 + 搜索内容 + 十几个 skills ，消耗 ",[18,306,307],{},"300k - 600k tokens","（取决于 LLM 中间有没有出错）",[110,310,311,312,315],{},"重构后：大概在 ",[18,313,314],{},"60k - 200k"," 左右，但也要看是否进行了大量的 web search",[11,317,318],{},"砍掉之后的 skills 还剩 2-3 个（还在调整中）：一个必须的编排器 SKILL 用于让 Agent 理解我的 CLI 设计，一个 handoff。",[11,320,321,322,325],{},"还有一个 ",[18,323,324],{},"Editor Agent","——作为资深编辑的身份，只用于内容的编写 + 审核，并给到 Primary Agent 固定产物。",[35,327,329],{"id":328},"agent-harness-的变更史","Agent / Harness 的变更史",[11,331,332],{},"从最初的 OpenClaw ，我逐步尝试了 UKUDS/Nanobot、UKUDS/Openharness、Hermes Agent。",[11,334,335],{},[24,336],{"alt":26,"src":337},"./_inline-assets/img6.png",[11,339,340],{},"Nanobot 本身机制不全，尤其是多 Agent、sub-agent 上，最早也是从 OpenClaw 那里得来的灵感然后复刻的。",[11,342,343],{},"Openharness 是个很好的胚子。如果为企业搭建的话，很值得考虑， MIT 开源。该有的机制像是 MCP、SKILL、Agents、Channels 都给做好了，就是 sub-agent 还有代码没写完。",[11,345,346,347,350],{},"Channels 的指令好像几乎没有，飞书里用 ",[52,348,349],{},"/new"," 这种指令都是我自己二开的；源码里（ v0.3.0 ）有 bug ，不会真的切 session。",[11,352,353],{},"哦对，中间我还试图放弃这种 Agent ，转向 OpenCode 作为底层，用 oh-my-openagent （ oh-my-opencode ）编排 Agent ，用 UU 远程作为我的大型聊天窗口，也成功走通了！",[11,355,356],{},"最后筋疲力尽， token 用尽，试了试 Hermes。",[11,358,359],{},[18,360,361],{},"真香。",[11,363,364],{},"虽然昨天刚写文章说这玩意的两个特点一点不吸引我，今天就用上了，也不能算打脸吧——它那俩功能真一般……真的……",[11,366,367],{},"由于我的 skills 层比较薄了，都收进了 CLI 里，所以迁移也比较好搞，就直接让它自己给我去 Openharness 那边复制 skills 过来就行了。",[11,369,370],{},"由于对话了多轮，触发了它的机制，直接给我搞了个从 Openharness 到 Hermes 的迁移 skill 出来——我就说没用吧！！",[11,372,373],{},[24,374],{"alt":26,"src":375},"./_inline-assets/img7.png",[11,377,378,379],{},"迁移过来的直观感觉：",[18,380,381],{},"丝滑",[107,383,384,387,390,393],{},[110,385,386],{},"安装便捷，一行命令搞定",[110,388,389],{},"配置简单，支持从 OpenClaw 直接迁移过来，会直接告诉你哪些能迁、哪怕配置不兼容等等（但是我没用）",[110,391,392],{},"TUI 好看，就是有股子宗教味",[110,394,395],{},"这次接的 Channel 是 Discord ，可用指令太多了，很幸福",[11,397,398],{},"实际使用上，在调试工作流时，我发现它的主观能动性比 cc 和 Codex 这种编程 CLI 裸奔要强得多！",[11,400,401],{},"有问题它是真去解决啊——而且是写完自己测，需要界面的它就自己截图，然后去问 LLM 图里有什么、位置对不对。",[11,403,404],{},"有点 OpenCode 挂满 skill 再开了 ultrawork 的感觉……",[11,406,407],{},"——",[11,409,410],{},"回顾这一个月做过的、能想起来的，以及真正落地的事，已经远远超过了我以前一年能做的 😂",[11,412,413],{},"期待下个月～",{"title":26,"searchDepth":415,"depth":415,"links":416},2,[417,418,419,420,421,422],{"id":37,"depth":415,"text":37},{"id":87,"depth":415,"text":87},{"id":136,"depth":415,"text":136},{"id":192,"depth":415,"text":193},{"id":286,"depth":415,"text":286},{"id":328,"depth":415,"text":329},"2026-04-11T00:00:00.000Z","md",null,{},true,"/post/posts/ai-agent-16w","---\ntitle: \"一个月内围绕 AI Agent 写了16w+ 行代码后，我得到了什么\"\ndate: 2026-04-11\ndescription: \"这个月，不完全统计，不覆盖所有项目，不考虑 git 变更历史，只看新写的最终文件里的代码——\"\nauthor: aatrox\n---\n\n\n这个月，不完全统计，不覆盖所有项目，不考虑 git 变更历史，只看新写的最终文件里的代码——\n\n大概是 **16w+ 行代码**\n\n![](./_inline-assets/img1.png)\n\n当然，实际要比这多得多。\n\n为了防止自己忘记曾经产出的垃圾项目，特意在这篇文章按时间线顺序简单汇总一下。\n\n## 早期项目\n\n最早时，我主要资产分布在：一个 Nuxt 全栈博客、一个基于 Tauri2 + Nuxt4 的多端笔记类应用、一个理念超前的命令行工具。\n\n在 OpenClaw 把 Agent 彻底带火之前， SKILL 刚开始兴起的时候，我发现**命令行工具无比契合 SKILL**。\n\n拥有极短的描述（`--help`）、极短的执行命令、完全确定的执行结果。\n\n于是 z-cli 很好地帮我把大部分散落在 SKILL 里的 scripts 抽离并管理了起来。\n\n![](./_inline-assets/img2.png)\n\n直到今天， CLI 的这个设计也没有「塌房」！\n\n为了迎合 Agent 的潮流，我先是把所有调用和脚本在 z-cli 里整合了起来，然后再手搓几个 skill——skill 里就只写 CLI 实际调用方式。\n\n然后通过 OpenClaw 作为触发的入口，把要发的内容写好再让 OpenClaw 发出去。\n\n有时候用聊天的方式发布指令，再微调文案、配图等，都让我有些厌倦了。\n\n我就会再掏出自己的 zotepad 来直接手写并点击发送到草稿箱——\n\n有一种从核武器直接回到冷兵器时代的神奇新鲜感。\n\n但是 Agent 已经会帮我把写作产物管理起来了， zotepad 还不行，也接不进去。最终还是会回到聊天窗口上来。\n\n## 痛苦的更新和适配\n\nOpenClaw 的安装和更新都是一种折磨，要不然也不会有这么多上门安装服务。\n\n想用新功能，就要接受它的新 bug。\n\n这还好。\n\n重点是把传统项目结合到 Agent 上，也是个比较庞大的工作量，仅靠分析和研究无法得出一个合理的架构。\n\n但是不合理的架构，销售也能包装成 XXClaw 卖给老板——要不怎么说写代码的赚不到钱呢，离真正的商业化行为太远了。\n\n此时，我几乎每天都会优化一次 skills ，每周都要推倒重做一次。\n\n- 要么是因为有流程卡住了\n- 要么是觉得消耗 token 太大，还能优化\n- 要么是同样的流程，换一个大模型，得到了完全不同的效果\n\n而且早期的 OpenClaw 响应速度非常慢，工具调用不透明， WebUI 都不是实时刷新的。\n\n我从飞书发送消息过去，然后去看 WebUI 里它创建了哪些 sub-agent、调用了哪些工具、哪些环节兜了好几个圈子才绕回来。\n\n然后再马上修改提示词、修改 skill ，按相同的指令开始测试。\n\n如此循环，直到提示我：**你的额度为 0%**\n\n## 两套新玩具项目\n\nOpenClaw 早期是不能接入微信的，但微信机器人、微信记录年度总结这种项目不是新东西了。\n\n我也一不小心涉猎了一下，和 Opus 促膝长谈后，学到了很多知识。\n\n除了不能说的，能说的是： Codex 在 GPT5.4 出来之后，操作 GUI 的能力强了很多。如果你让它操作你电脑上的某个 App ，点击什么输入框，再点击什么按钮，它是可以轻松实现的。\n\n有了这一前提，你想给谁发送什么消息就变得很简单了——因为各种 web-search 工具以及指纹浏览器的免费 API 额度足够一个正常人使用。\n\n于是，我搭建了一套从搜索到发送的服务，用于把每天自己关注的新闻定时收集、整理、汇报。这一套东西现在还在用，刷新闻热点还是很方便的。\n\n第二个玩具项目，来源于内容管理上。\n\n信息源我有了，那我还缺一个整理的笔记 App。\n\n笔记大部分都是草稿，我需要从草稿中筛选出待办，待办关联的草稿就会作为我写作的素材。\n\n所以这个 App 最关键的就是**关联性**，类似这样：\n\n![](./_inline-assets/img3.png)\n\n我能从一个草稿找到其他关联的草稿，也能从待办找到所有有用的草稿——而不是完全结构化地存储起来，再也不打开看了。\n\n这个项目耗时 1 周左右， 47844 行代码。\n\n![](./_inline-assets/img4.png)\n\n完成到 70% 左右就先暂停了，耽误了我很多打磨 Agent 工作流的时间。\n\n其实搞完时发现， Obsidian 可能够用了……\n\n## 不断重建的 Agent 设计\n\n中途还搞了点别的。\n\n比如微信公众号的接口直接写在博客项目里了，用 Bun 单独重写了一套服务，可以用于单独部署。\n\nZotepad 里把 MD 格式导出带有样式的 HTML ，这个功能也用 Bun 重写了一遍，但是废弃了。\n\n针对推特抓取数据，也用 Bun 写了一套服务，直接管理起来⬇️\n\n> 从 OpenClaw 自己抓数据总结汇报给我 → OpenClaw 写定时任务定期调脚本然后总结汇报给我 → 改写定时任务变为 OpenClaw 直接去拿数据库里已经过滤了一遍的推文再汇报给我 → 直接 Bun 服务把抓到的数据用 webhook 汇报给我\n\n**成功优化了 100% 的 token。**\n\n针对记忆和幻觉，消耗了大量的脑细胞，得出一个结论：\n\n> SKILL 里凡是涉及到脚本的、状态的，都别让 LLM 阅读理解和维护了。全靠自己的代码实现一个类似状态机的 CLI 形态。\n\n以前是命中 SKILL ，去读什么能做、什么不能做、怎么做。发现需要其他 SKILL ，再去调其他 SKILL ；发现需要一个隔离的上下文环境（换个便宜的 LLM ），再去 spawn sub-agent。\n\n![](./_inline-assets/img5.jpg)\n\n讲真的，最初编排好这套机制时，它有一个很大的好处：\n\n**一套执行链的状态锚点，从「我」变成了一个 JSON 文件。**\n\n如果你想问这是什么意思，那你问到问题的核心了，我会稳稳地接住你，不绕，一次给你讲明白（如果你需要，下一句我就给你讲明白，饶命）：\n\n以前发指令给 Agent ，它碰到问题需要去问发出指令的人，导致会来回拉扯才能执行完。\n\n现在从我的指令发出开始，马上交给 JSON 文件管理状态——现在是哪一步、缺什么、下一步是什么、什么时候走 handoff ，全部去看 JSON 文件。只要状态齐全，条件满足，一定会直接发送到草稿箱里。\n\n甚至，因为 Agent 是靠 JSON 文件分析这整套流程缺什么的，所以可以做到**事先备好参数值（素材），让 Agent 从中间态开始执行，或者多 Agent 并行跟进多个 JSON 文件**。\n\n然后只需要打磨两个地方：\n\n1. **初始化指令是否完备**\n2. **handoff 及 review 设计**\n\n第一点初始化指令，就是给上边的笔记 App （ Connect ）留的口子。\n\n它完全可以内置提示词模板，然后选择了几篇草稿后，拼接到提示词模板里。点击一个按钮，通过命令调用 OpenClaw / Hermes 等等，然后开启一个写作 + 发布的流程。\n\n然后它就能走完整个流程吗？\n\n是的，因为现在进度由 JSON 文件控制了。\n\n## 再重构\n\n后续的代码重构，也全部因为这套机制——我觉得挺好用。\n\n于是我把所有 SKILLS 进一步整合成了一个新的 CLI ，把这条工作流上所有零散的脚本、插件全都给它装上，把一切会让 LLM 理解出幻觉的部分全部变成代码实现。\n\n包括以前需要调用 z-cli 走公众号发布、需要调 zotepad 走 HTML 导出、需要走 imgx skill 生成配图，都变成了新 CLI 的一个 provider——**强的可怕** 😄\n\n- 重构前：系统提示词 + 搜索内容 + 十几个 skills ，消耗 **300k - 600k tokens**（取决于 LLM 中间有没有出错）\n- 重构后：大概在 **60k - 200k** 左右，但也要看是否进行了大量的 web search\n\n砍掉之后的 skills 还剩 2-3 个（还在调整中）：一个必须的编排器 SKILL 用于让 Agent 理解我的 CLI 设计，一个 handoff。\n\n还有一个 **Editor Agent**——作为资深编辑的身份，只用于内容的编写 + 审核，并给到 Primary Agent 固定产物。\n\n## Agent / Harness 的变更史\n\n从最初的 OpenClaw ，我逐步尝试了 UKUDS/Nanobot、UKUDS/Openharness、Hermes Agent。\n\n![](./_inline-assets/img6.png)\n\nNanobot 本身机制不全，尤其是多 Agent、sub-agent 上，最早也是从 OpenClaw 那里得来的灵感然后复刻的。\n\nOpenharness 是个很好的胚子。如果为企业搭建的话，很值得考虑， MIT 开源。该有的机制像是 MCP、SKILL、Agents、Channels 都给做好了，就是 sub-agent 还有代码没写完。\n\nChannels 的指令好像几乎没有，飞书里用 `/new` 这种指令都是我自己二开的；源码里（ v0.3.0 ）有 bug ，不会真的切 session。\n\n哦对，中间我还试图放弃这种 Agent ，转向 OpenCode 作为底层，用 oh-my-openagent （ oh-my-opencode ）编排 Agent ，用 UU 远程作为我的大型聊天窗口，也成功走通了！\n\n最后筋疲力尽， token 用尽，试了试 Hermes。\n\n**真香。**\n\n虽然昨天刚写文章说这玩意的两个特点一点不吸引我，今天就用上了，也不能算打脸吧——它那俩功能真一般……真的……\n\n由于我的 skills 层比较薄了，都收进了 CLI 里，所以迁移也比较好搞，就直接让它自己给我去 Openharness 那边复制 skills 过来就行了。\n\n由于对话了多轮，触发了它的机制，直接给我搞了个从 Openharness 到 Hermes 的迁移 skill 出来——我就说没用吧！！\n\n![](./_inline-assets/img7.png)\n\n迁移过来的直观感觉：**丝滑**\n\n- 安装便捷，一行命令搞定\n- 配置简单，支持从 OpenClaw 直接迁移过来，会直接告诉你哪些能迁、哪怕配置不兼容等等（但是我没用）\n- TUI 好看，就是有股子宗教味\n- 这次接的 Channel 是 Discord ，可用指令太多了，很幸福\n\n实际使用上，在调试工作流时，我发现它的主观能动性比 cc 和 Codex 这种编程 CLI 裸奔要强得多！\n\n有问题它是真去解决啊——而且是写完自己测，需要界面的它就自己截图，然后去问 LLM 图里有什么、位置对不对。\n\n有点 OpenCode 挂满 skill 再开了 ultrawork 的感觉……\n\n——\n\n回顾这一个月做过的、能想起来的，以及真正落地的事，已经远远超过了我以前一年能做的 😂\n\n期待下个月～\n",{"title":5,"description":13},"post/posts/ai-agent-16w","n9oCdI6-GCzgf9OqeGuh2HF7rKly8kYvglMPWGaSxE0",[434,438],{"title":435,"path":436,"stem":437,"children":-1},"无需额外软件，MacOS 缩小托盘图标间隔","/post/tips/apple/reduce-space-of-items","post/tips/apple/reduce-space-of-items",{"title":439,"path":440,"stem":441,"children":-1},"OpenClaw 安装入门（macOS）","/post/zzao/openclaw/openclaw-install-macos","post/zzao/openclaw/openclaw-install-macos",1775923790924]