<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>AI编程 - Tag - 傲来说的博客</title><link>https://aolaishuo.cc/tags/ai%E7%BC%96%E7%A8%8B/</link><description>AI编程 - Tag - 傲来说的博客</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Thu, 02 Jul 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://aolaishuo.cc/tags/ai%E7%BC%96%E7%A8%8B/" rel="self" type="application/rss+xml"/><item><title>我用 AI 搓了一个跨平台便签工具：NeoPad</title><link>https://aolaishuo.cc/posts/neopad/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0800</pubDate><author>傲来说</author><guid>https://aolaishuo.cc/posts/neopad/</guid><description><![CDATA[<h1 id="我用-ai-搓了一个跨平台便签工具neopad">我用 AI 搓了一个跨平台便签工具：NeoPad</h1>
<blockquote>
<p>全文约 2000 字，阅读需要 5 分钟</p></blockquote>
<p>最近杂事多，公众号断更了一阵子。不过我没闲着——零零碎碎的时间凑起来，用 AI 搓了个小工具。名字叫 <strong>NeoPad</strong>，一个跨平台桌面便签。</p>
<p>它不是知识库，不做双向链接，也不塞 AI 聊天框。就一件事：脑子里冒出一句想法、一个待办、一段临时信息，怎么用最快的速度记下来。</p>
<p>项目地址：https://github.com/trevanzhang/neopad</p>
<h2 id="从-flashpad-说起">从 FlashPad 说起</h2>
<p>NeoPad 致敬的是一款叫 <strong>FlashPad</strong> 的小工具。</p>
<p>我用了 FlashPad 很多年。界面朴素，功能简单，但特别适合随手记：按一下快捷键，窗口弹出；写几句，再按一下，隐藏。没有启动仪式，不用操心文件放哪个目录。开会时记个临时待办，写代码时顺手记个想法，下班前记个明天要跟进的事——它就在那里，按一下就出来，按一下就消失。</p>
<p>FlashPad 的作者持续维护了将近 20 年。说实话，在软件行业做出一个工具不稀奇，但二十年如一日地修补一个小工具，很难。不怎么赚钱，也上不了技术新闻，但就是一直在。这种事，我打心底佩服。</p>
<p>不过，FlashPad 主要面向 Windows。随着我使用的设备和系统越来越多，我希望有一个相似的工具，能够同时运行在 Windows、Linux 和 macOS 上；同时保留那种“随叫随到、写完就走”的轻便感。</p>
<p>这就是 NeoPad 的起点。</p>
<h2 id="它不是大而全笔记软件">它不是&quot;大而全&quot;笔记软件</h2>
<p>现在的笔记软件越来越重。标签、数据库、双向链接、关系图谱、团队协作、云同步、AI 问答……功能当然有价值，但它们解决的是知识管理的问题。随手记两行字，完全是另一回事。</p>
<p>我想要的更像桌面上的一张便签纸：</p>
<ul>
<li>常驻后台，需要时用全局快捷键唤出；</li>
<li>支持多个标签页，不同临时事项可以分开放；</li>
<li>输入后自动保存，不需要惦记 <code>Ctrl+S</code>；</li>
<li>关闭窗口只是隐藏，而不是退出；</li>
<li>可以把剪贴板内容快速追加到固定页面；</li>
<li>全文搜索，过几天还能把那句话找回来。</li>
</ul>
<p>所以 NeoPad 一开始就给自己划了界：不做云同步，不做账户，不做 RAG，不做向量数据库，不做知识图谱。</p>
<p>小工具最重要的品质——你需要它的时候，它马上出现。从不添乱。</p>
<h2 id="本地优先笔记就是-markdown-文件">本地优先，笔记就是 Markdown 文件</h2>
<p>NeoPad 是本地优先。所有笔记都以普通 Markdown 文件存在用户目录下的 <code>~/.neopad/notes/</code>，配置和标签页信息也在本地。你的文字不会被锁在某个数据库里——就算哪天不用 NeoPad 了，随便开个文本编辑器照样能读。这种&quot;数据自有&quot;的感觉，用惯了云端笔记的人可能觉得无所谓，但我自己在经历了几次&quot;平台关停、笔记迁移&quot;的折腾之后，对这一点非常在意。</p>
<p>删除也不直接抹文件，先移到 <code>trash/</code>。写入走原子保存，程序崩了也不至于把原文搞坏。对一款天天挂在桌面上随手写的工具来说，这些小事比花哨功能要紧得多。</p>
<h2 id="三种写作方式以及真正的沉浸模式">三种写作方式，以及真正的沉浸模式</h2>
<p>NeoPad 用 CodeMirror 6 做 Markdown 编辑器，目前三种视图：编辑模式——专心写；混合模式——一边写一边看渲染；预览模式——只读排版效果。</p>]]></description></item><item><title>别装错了！Superpowers 和 OMO 只该选一个</title><link>https://aolaishuo.cc/posts/superpowers-vs-omo/</link><pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate><author>傲来说</author><guid>https://aolaishuo.cc/posts/superpowers-vs-omo/</guid><description><![CDATA[<h1 id="别装错了superpowers-和-omo-只该选一个">别装错了！Superpowers 和 OMO 只该选一个</h1>
<h2 id="一个你一定经历过的场景">一个你一定经历过的场景</h2>
<p>你给 Agent 一个需求：「帮我加个用户认证模块」。</p>
<p>然后你泡了杯咖啡回来，发现它已经写了 800 行代码——但用的是你项目里根本没有的 JWT 库，认证逻辑跑在错误的中间件层，而且完全跳过了你上周刚定的 session 过期策略。你问它为什么不用项目里已有的认证中间件，它振振有词地解释了一通&quot;JWT 的优势&quot;，好像它才是这个项目的架构师。</p>
<p>这不是模型蠢。模型聪明得很。问题在于：<strong>它太急着动手了。</strong> 在它看来，写代码就是它的使命，而你那句模糊的需求指令，它选择用自己最擅长的方式去&quot;填补空白&quot;——用代码。至于你的真实意图、项目的技术栈约束、已有的代码规范，这些都是它主动跳过的&quot;障碍物&quot;。</p>
<p>或者另一个场景：你让它重构一个有 47 个文件的服务层。它改了 15 个文件就告诉你「已完成」，剩下的要么忘了，要么上下文窗口溢出，改到一半就开始编造已经不存在的函数签名。你打开代码一看，新调用的方法在旧文件里根本没有定义，而旧文件里被删除的方法还有三个地方在引用。整个项目跑不起来了。</p>
<p>这两种失败，看起来都是&quot;Agent 不够好&quot;。但实际上，它们指向的是完全不同的两个问题。</p>
<p>第一种——<strong>急着写代码</strong>——是纪律问题。模型有能力做对，但它没有足够的约束去保证每次都做对。</p>
<p>第二种——<strong>一个 Agent 干不完</strong>——是产能问题。单个 Agent 的上下文窗口和并行能力有物理上限，任务超过这个上限，再守纪律也没用。</p>
<p>这两个痛点，恰好是今天 AI 编程领域最值得关注的两套解法各自瞄准的靶心。一个叫 <strong>Superpowers</strong>，一个叫 <strong>OMO</strong>。</p>
<p>而你可能正打算把两个都装上——千万别。</p>
<hr>
<h2 id="superpowers给-agent-立规矩">Superpowers：给 Agent 立规矩</h2>
<p>先说清楚一个背景。Superpowers 的作者是 Jesse Vincent——RT（Request Tracker）的创始人，现在运营 Prime Radiant 公司。这是一个写过大型工程软件、吃过流程管理苦头的人。GitHub 上 <code>obra/superpowers</code> 已经攒了 236K+ stars，MIT 协议，完全开源。</p>
<p>它的核心思路一句话就能说清：<strong>Agent 不是不够聪明，是太自由了。</strong></p>
<p>Superpowers 做的事情，是通过一种叫 <code>SKILL.md</code> 的文件，给 Agent 注入强制性的行为约束。不是建议，不是提示词技巧，是约束——Agent 每次响应之前，都会自动检查有没有匹配的 Skill，有就必须执行，不可跳过。</p>
<p>它的标准流程是四个字：<strong>先想后做。</strong></p>
<p>具体来说，Agent 收到你的需求后，不会直接写代码，而是走这样一条路：</p>
<ol>
<li><strong>Brainstorm</strong>：先跟你讨论方案，澄清模糊需求</li>
<li><strong>Git Worktree</strong>：拉一个隔离的工作分支，不碰你的主干</li>
<li><strong>Plan</strong>：输出结构化执行计划</li>
<li><strong>TDD Execute</strong>：测试驱动开发，写一个测试跑一个测试</li>
</ol>
<p>注意，这不是 Agent 的&quot;建议流程&quot;，而是 Skill 文件强制规定的。你见过那种「让 Agent 先做计划再做」的 prompt 技巧吧？Superpowers 的区别在于，它是硬编码到执行循环里的，Agent 绕不过去。</p>]]></description></item></channel></rss>