我最近越来越确定一件事:很多 APP,包括我自己做的 VoiceDrop,本质上应该是 agent native 的。
这话什么意思呢?就是说,APP 负责收集,agent 负责加工。两件事拆开,才顺畅。
我自己做 VoiceDrop,就碰到了这个问题。APP 里面我能做的功能,说实话已经不少了。录音、转写、生成文章,跑得通。但每次文章生成出来之后,我想再微调——比如这一段语气不对、那一段逻辑顺序要换一下——在 APP 里面再来回跟他说话,让他调,效果一直差强人意。
原因我想清楚了:APP 里面的交互界面,天然有局限。屏幕小,上下文看不全,改了这里忘了那里,总有点像在一张小纸条上做精密工作。但如果把「深度加工」这个动作,放到 Claude Code 里面来做,局面完全不一样。我可以在 Claude Code 里面把文章翻出来,逐段检查,细微调整措辞,然后直接推到微信发布,整个流程一气呵成,不卡。
所以我现在想的架构是这样的:
APP 端:录音、随时记录口述、多段声音存档——这些是 APP 擅长的事,随手可做。 Claude Code 端:把录音转成的文字拉过来,合并多段素材,精修文章,排版发布——这些是 Claude Code 顺手的事。
两边分工,APP 是前端入口,Claude Code 是后端主战场。
为了让这两边能打通,我在 APP 里面内置了一个机制:每个用户有自己的用户名和 TOKEN。TOKEN 就是你的密码。你只要把这个 TOKEN 告诉 Claude Code,他就可以用你的身份,访问你在 APP 里面的所有素材,然后替你做后续的一切安排。
这个逻辑其实不复杂,但我觉得它代表了一类很重要的产品思路——agent native。
以前做 APP,我们想的是把所有功能都塞进去,做成一个完整闭环。用户在 APP 里面从头走到尾,出不来也不用出来。这个思路现在开始动摇了。因为有一类操作,天然适合在 agent 的环境里做,你非要把它压缩进 APP 界面,只会做得别扭。
正确的做法是:承认 APP 有它的边界,然后把边界那一侧的事情,干脆交给 agent 来做,两边用 TOKEN 打通,让他以你的身份继续干活。
我自己现在写这些公众号文章,用的就是这套流程:拿手机随时录口述,存在 APP 里,然后回到 Claude Code,把素材拉出来,加工成文,发出去。中间那道「以我的身份操作」的 TOKEN 机制,就是让这两端能顺滑衔接的那根线。
现在已经可以用下面指令在 Claude Code 安装:
安装 https://github.com/jianshuo/claude-skills/blob/main/wjs-voicedrop/SKILL.md然后经过一个简单的 login 过程,就可以在 Claude Code 里面继续文字的工作了,而 VoiceDrop 的所有服务器端功能都可以使用。
我在尝试,这或许是未来的 App 的样子。

夜雨聆风