← 返回笔记列表
博客笔记2026-05-28

Vibe Coding开发手记:从重建网站到投研Agent

【网站用户通知】

网站(RiskMacro.com)所有用户数据均已迁移,可直接用原昵称和密码登录,微信登录同样支持。也可用邮箱登录——若此前未留过邮箱,请尝试以 原ID@riskmacro.com 登录后修改为正确邮箱。


晚上在家,对着 IB TWS 的风险预警系统做 Vibe Coding。敲着敲着,忽然想起多年前在某大行交易台搞 Eagleye 鹰眼系统的日子。

那时觉得很多规则难以落地,夜里九点拉着纽约、伦敦开三方电话会,散会已是精疲力尽。谁能想到,今天跟 AI 聊几句,那些东西就全跑起来了。

时代是真变了。

你到底想要什么

我是今年才开始用 Claude Code。一个念头挥之不去:如果 AI 能写代码,"不会写代码"还能当理由吗?

后来发现,这个问题问错了。对的问法是——你到底知不知道你想要什么?

所谓 Vibe Coding,不过是你描述,AI 实现。你不用管语法,不用碰框架,但你必须精确地知道,你想要的最终结果长什么样。

就像带一个智商极高但对金融一无所知的实习生。你跟他说"画条利率曲线",他愣在原地。你跟他说"SOFR 数据,Y 轴百分比,蓝色实线,3 个月和 2 年节点用虚线标注"——五分钟,图出来了。

你的描述有多精确,AI 的产出就有多精准。不多,不少。

VS Code + Claude Code + DeepSeek V4。16 天,524 次 git 提交。一个人。零手动写代码。

网站只是开始

RiskMacro 旧站在 WordPress 上跑了多年。PHP 一层层渲染,插件越堆越多,点一下等三四秒。飞书上攒了上万份文档,老站只能放一个周报链接,点开跳转到飞书端。

但这些都不致命。真正推了我一把的,是件微不足道的小事。

有个用户问我,充值能不能不按固定档位,自己填金额?比如 2210,一笔付清,不用拆成 2000、200、10 三次。我看着屏幕,半天没回。老站像一辆跑了十几年的二手车,能开,但你想加的功能它给不了,你不想操心的事它天天让你操心。

除非——我一个做全球宏观与衍生品交易的,自己变成技术工程师。

5 月 23 日,新站上线。首页加载从三四秒落到一秒以内,博客和手册合并成"笔记"。图表全部改用 ECharts 渲染,数据从远程 MySQL 迁到本地 SQLite,之前因为数据库挂掉而断更了大半年的那些图表,终于一个个修回来了。研报的中文笔记可以在线浏览了,近万份,按周报章节和机构筛选,全文中文搜索!

新站的兴奋劲还没过,一个更大的念头冒了出来。每天开盘看 IB 持仓、翻研报、跟数据、写日记——全是重复劳动。网站能用 AI 搭出来,这些是不是也能?

于是有了第二阶段的 Vibe Coding:搭一套 Agent 系统。

搭 Agent 系统

架构简单到几乎不叫架构:一个 Agent 只管一件事。IB Dashboard 盯持仓和希腊字母;研报摘要做 PDF 翻译和交叉分析;DM Bridge 负责远程遥控。没有 RPC,没有消息队列,没有数据库。Agent 之间靠 JSON 和 Markdown 通信,所有状态全是明文,出了任何问题,直接打开文件看。

这个设计不是我想出来的,是 AI 逼出来的。你每次都说"能不能再简单一点",最后剩下的,就是最朴素也最扛造的东西。

与 TWS 的三日战争

IB Dashboard 是第一个 Agent,也是最折磨人的那个。

需求清清爽爽:连上 TWS,把持仓、NAV、希腊字母拉下来,吐一个仪表盘。听着就是几十行 Python。

第一天,连不上。删掉配置文件让它重建——还是连不上。翻来覆去查日志,终于发现 TWS 10.34 新建的配置文件,竟然默认把 API 弹窗关了。删文件重建,不仅没修复,反而变得更糟。

第二天,换思路,把配置文件设成只读,锁死。结果 TWS 启动时要写权限做初始化,锁一卡,静默拒绝 API——不报任何错误,只是连不上。整整找了一个下午。

那个下午出奇地安静。窗外是五月的太阳,屋里只有键盘在响。一个做金融的,坐在那里调试交易软件的 XML 配置文件。荒谬极了。但你手上没停——直觉告诉你,就差那么一点了。

第三天,通了。方案叫 golden backup:保存一份已知可用的明文配置作安全网,每次启动前从备份恢复,拉完数据自动更新。整个过程最终封装成一个命令。

当第一个仪表盘在浏览器里刷出来——NAV 走势、希腊字母风险卡片、自研指标、账户保证金占比等等——我盯着屏幕,足足看了五分钟。不是因为它好看,是因为以前这些数字,每个都要打开 TWS 一个一个手动算。

现在呢?说一句"更新 IB Dashboard",三分钟后,全摆在面前。

研报摘要:从 PDF 到交易信号

三个 Agent 里,研报摘要的投入产出比最高。

做交易的都知道,投行研报海量、全英文、PDF 格式,每天哗哗地堆进文件夹。真正有空打开读的,不到十分之一。这个 Agent 干的事很简单:扫目录,调 DeepSeek 把英文研报翻成中文摘要,输出到 Obsidian 笔记库。增量处理——读过的不再调 API,新来的自动抓。

但摘要本身不算什么。真正有价值的,是之后的交叉分析

每处理完一份研报,Agent 会自动拉取我当前的 IB 持仓做比对。举一个真实的例子——前两周 BofA 出了份原油报告,认为 Brent 在 90 到 100 之间已经窄幅震荡超过两周,波动率曲面定价偏贵,建议卖出远端 OTM 期权吃 theta。Agent 摘要完,直接在笔记底部标了一行:"与你当前 CL 的 short vol 头寸方向一致,但 BofA 提示下行风险可能被低估,建议复查 short put 腿的行权价。"

它不是替你读研报。它是读完以后,帮你把该注意的地方跟你的仓位放在一起。

以前这个链条全靠自己:读完、记住、对照持仓、形成判断。现在 Agent 把前三步包了,你只做最后一步。

它还在后台维护一张跨会话的活跃主题表,追踪每家机构最近在咬什么方向。Goldman 连续三周谈中国政策刺激,JPM 反复讲美债曲线陡峭化——趋势不用你总结,自己浮出来。叠上持仓,Agent 会提示:"Street 一致看多 CNH,你当前有空头敞口,建议复查。"

交易员的注意力是有限资源。这个 Agent 不替你拍板,但它确保你不会漏掉不该漏的东西。而且,它把信息放在了它最该出现的地方——你的头寸旁边。

口袋里的同事

DM Bridge 是实用价值最高的 Agent。

场景朴素到不值一提:人在外面,想看眼持仓,或者让 AI 处理刚到的研报。没有它,你得赶回电脑前。有了它,在飞书上给自己发一条消息——"更新 IB Dashboard"——三分钟内,NAV、保证金、风险预警全推到你手机屏幕上。

实现方式也朴素。飞书 CLI 拉自聊 DM,比对时间戳,新消息丢给 Claude Code 执行,回结果。状态追踪不过一个 20 行的 JSON 文件。cron 每三分钟轮询一圈,半小时没动静自己休眠。没有常驻进程,每一次触发都是一次独立会话——读状态、查消息、处理、写回、退出。干净得像一张白纸。

第一次在手机上收到回复,心里动了一下。你不在电脑前,但你的助手还在跑。它不像工具,更像一个一直坐在那的同事。

AI 能做什么,不能做什么

与 TWS 缠斗那三天,让我想明白了一件事。

AI 能把你脑子里任何一个方案变成代码,但前提是——你得先把问题说清楚。那些藏在暗处的行为,TWS 默认关 API 弹窗、只读锁阻止初始化、端口探测消费握手字节——AI 怎么可能猜到?它没连过你的 TWS,没见过你这个版本。踩坑是你的事,诊断是你的事,形成判断也是你的事。

AI 彻底压低了实现的成本,但没有压低思考的成本。甚至,正因为它实现得太快了,你需要比以往任何时候都更清晰地驾驭它。就像一个交易员突然拿到了一套延迟接近零的执行系统——你面临的选择没有变少,而是急剧膨胀了,每一个反馈循环都在加速。

这对做金融的人反倒是天然的。我们每天都在不完整的信息、不确定的结果、不对称的风险里做有后果的判断——这不就是日常吗。指挥 AI 和做一笔交易决策,底层的逻辑是一样的:你得有自己的框架,工具才听你的。

但 AI 身上还有另一种毛病,比"不会思考"更隐蔽。

它会编。

有一次让它批量更新一批 PDF 的下载链接,规则交代得清清楚楚:把路径里的文件名字符数替换成新的。跑起来,全崩。一排查,发现它把几十个链接的字符数逐个"算"了一遍——但算得随心所欲,有的多一位,有的少两位,没有一个是准的。它不是在计算,它是在猜。而且猜得毫无愧色。

后来我发现,这毛病几乎遍布每一个角落。写部署脚本,凭空在路径里塞进一个不存在的文件夹。迁移数据库,无中生有地创造了一个从未定义过的字段。你每次问它"对吗?",它都说"对的"——直到跑崩了,才说"抱歉,我搞错了"。

所以 Vibe Coding 的第一条铁律是:AI 写的每一行,只要你看不懂,就必须亲手跑一遍。 流畅是它的出厂设置,不是正确性的担保。这个道理和看研报一模一样——券商写得再漂亮,数据你得自己抠。

换句话说,Vibe Coding 目前还做不到"全自动"。它只是把你的工作从"写代码"变成了"审代码"。写的时间省下来了,审的时间加上去。净赚多少,取决于你判断对错的速度——而判断力这东西,恰好是金融从业者被市场训练了十几年的肌肉。

还有一个容易忽视的麻烦:AI 每次新会话都是失忆的。你刚跟它讨论完半个小时持仓风险,敲定了一套调整方案。关掉窗口,再打开——白纸一张。

我给它建了个收工/开工 Skill。说一句"/收工",AI 会追着你问:这轮完成了什么、决定了什么、配置动了什么、还有什么悬着。全部写进一个桥接文件。下次开工,hook 脚本自动把桥接内容注入新的系统提示。忘了收工就关机?还有个兜底 hook,会在日记里悄悄标一句"本次未收工",下次开工提醒你。

桥接文件不长,五十行上下。打开读起来是这样的:"TWS 连接已彻底解决。P0:ZN short P1095 在 5/29 PCE 前评估减仓。下次开工:先 --fix-tws-xml → 启动 TWS → 拉数据。"

就这样,AI 从一个每次见面都要重新自我介绍的人,变成了一个记得昨天聊到哪的同事。

几条铁律

这段日子跑下来,几条土规律被反复验证,没翻过车:

文件系统是最好的数据库。 不搞 API 调用,不搞消息中间件。JSON 和 Markdown,够用了。出了事,直接打开文件看状态,比连数据库查表不知舒服多少。

一个 Agent 只做一件事。 独立开发,独立调试,死了不连累别人。这不是什么架构教条,是疼出来的教训——最早那版,我塞了个"全能 Agent",配置写到两百行,结果连最基本的持仓查询都稳不住。

脚本做机械活,AI 做判断活。 计算交给 Python,判断留给 AI。别反过来。

状态显式化。 轮询游标、会话桥接、配置备份——全部是看得见摸得着的明文。不藏内存,不锁数据库。随时能翻开看,随时能动手改。能看见,才觉得安全。

第一个 Agent 耗了我两天。第二个,半天。第三个,不到一小时。不是后来越做越简单,是每一个都在复用前面已经跑通的模式——状态文件怎么设计、错误怎么处理、cron 怎么调度、日志往哪写。但更重要的变化不在技术上:你不再问自己"值不值得做"了。以前想搞一个自动化,脑子里先过一遍 ROI。现在?直接做。成本已经从"值不值得"滑到了"为什么不"。

这个心理上的解绑,可能比技术本身更值钱。

感想

一个礼拜搓出新网站的原型。想什么,屏幕就出什么;看到原型,又能立刻改主意。那种反馈速度,以前没法想象。

做交易十几年,工具换了好几茬——从彭博终端到 Excel,从 Excel 到 Python。每一次升级,起点都是阵痛,路上都带着怀疑。但 AI 不一样。它不是让你去学一个新工具,它是让工具反过来学你。你用人话描述意图,它把代码交出来。门槛变了——从"你会不会"变成了"你想不想"。

对我这种技术底子不厚的人,这才是真正的解放。

回到晚上在家那个画面。当年做鹰眼,一条异常监控的规则,要拉上伦敦和纽约开三轮会,三周能落地已经算神速。现在我跟 AI 说:"如果 ZN 跌破 108.8,飞书给我推一条告警。"十分钟,跑起来了。

我毫不怀疑,从市场里量化赚钱,到现实里花钱消费,整条闭环,AI 终将接管那 99%。人类剩下来要做的,就是专注那 1%——那定胜负的、不可替代的判断。

人生嘛,到这步,真就变成了一场体验。


风险提示:本文提及的 Vibe Coding / AI 编程经验纯属个人体验,不构成任何投资建议。网站内容仅供参考,不构成投资建议。

评论 (0)

登录后参与评论

联系我们