多想、多做、边试、边学
我已经有一段时间没写博客了,这段时间对我来说是比较忙、比较累,但也收获颇丰的三个月。写这篇博客,主要是记录我这段时间的所思所想和所做,谈谈自己的收获、教训和感悟。
我是华工28届的一名本科生,现在处于大二下。这是一个很特殊的时间段,说早不早说晚也不晚,有很多事可以去做,也有很多选择留给自己去探索。
一、为什么选了算法
我并不是从一开始就确定走算法这条路的。
大一有两门课考得很不理想(60 多 70 左右),那时候我意识到一个问题:我得尽早想清楚自己以后到底要做什么。开发是一个相对稳妥的选项,对本科生也友好,但我没有选。
转折点发生在我大量使用 AI coding 工具的那段时间。我切身感受到,所谓功能应用层的代码对 AI 来说太轻松了(当然这是指大代码库的整体架构能力,现阶段 AI 还稍弱——也有可能是我没试过最好的模型,网上确实有人让 AI 重构代码库在极短时间内取得极好的效果)。一个方向如果 AI 能极快地完成大部分工作,那它对人的核心价值就所剩无几了。
我不想把时间赌在一个 AI 越来越擅长的方向上。
算法不一样。算法本质是数学与计算机的巧妙融合,很多原理根源于数学,也移植了不少计算机领域的宝贵思想。它对人的逻辑、抽象、创造、辩证这些能力要求更高,而这些恰恰是 AI 短期还难以替代的。
就这样,我决定把接下来一段时间的重心放在大模型算法相关方向上。
二、这段时间我在做什么
这三个月我主要在三个方向上推进:agent harness、uni recommendation framework、post training pipeline。接下来具体讲讲。
Agent harness
我理解的 agent harness,就是为 agent 设计一个运行时系统——怎么编排上下文、怎么注入提示词和记忆、怎么管理工具的使用,是它的核心。往更全了说,还有规划能力的体现、子 agent 或集群的调度、skills/mcp 这些相对工程的模块。
我一开始几乎什么都不懂。大部分思路源于我以前做小程序时积累的一些系统感,加上模仿主流 agent(Claude Code、OpenHands、DeerFlow 等)。我会看它们的主架构,结合真实应用场景揣摩每一部分设计的初衷和效果。
不过说实话,刚开始那阵子,“wow 这个模块看起来很高级,直接接上试试” 是我的真实状态。最典型的就是我直接模仿 DeerFlow 的中间件模式,搞了七八个中间件,拦截每轮对话看沙箱还在不在、记忆需不需要读写、上下文需不需要压缩——对于一个内核部分来说,这纯属又慢又复杂,华而不实。
后来想清楚了:在 ReAct 里面加一些 try…except 不就完了吗?
从堆功能到砍功能
第一阶段踩完坑后,我进入"形成层次化结构"的阶段:什么是底层原子级能力、上下层之间的依赖关系、一次对话一轮任务需要经过哪些点。我开始把模块一个个搭起来,memory 那里我参考了 Karpathy 大神很火的 LLM Wiki,把记忆设计成简单分层(对话级、摘要级、扁平记忆、检索)。功能越来越完善,但跑起来又慢又复杂,轻中度任务给到的时候,处理得通但耗时长得离谱。
这个时候我才回想起导师很早之前说过的一句话:要有一个 target 指引着你的整个设计流程。 当时听了没感觉,觉得堆功能的过程中能用到更多能力,越全面越好。
走到后面发现完了,成屎山了。
那就要爆砍,思考哪些是必要、哪些是非必要。这个取舍的过程我觉得才是核心中的核心。我会经常让 AI 给出方案,看它的思路,但最后拍板的是我——AI 的检索能力和学识广度肯定要强我千倍万倍,但它不知道我现在这个项目最需要什么。这个反复"让 AI 提方案 → 自己判断取舍 → 砍掉冗余 → 再来一遍"的过程,让我对整体架构设计有了更深的体感。
重新和 AI 讨论核心运行时、必要的状态、必要的工具、主链路等等之后,整个系统清爽了很多。也渐渐积累了一些系统架构设计的经验——踩坑才出来的,重构的过程还是很痛苦的。
三、几个真实的教训
回过头看,这段时间我做对了什么、做错了什么,大概有这么几条。
第一,"先跑起来"和"做对"是两件事。 我前期花了太多时间在模仿 DeerFlow 的中间件上,本质上是在用"看起来高级"代替"真正需要"。大道至简不是一句空话,是被屎山教育出来的。
第二,AI 是好工具,但别让它替你做判断。 我会让 AI 提方案,但判断的尺子必须在我自己手里。AI 给的方案可能正确但不必要,可能技术上漂亮但工程上冗余。我现在养成一个习惯:AI 输出方案后,我会先问自己——“这个方案是不是真的解决了我当前的问题?”
第三,导师说的"要有 target" 真的是金玉良言。 当时没听进去,栽了跟头才懂。target 不是空想出来的,是边做边明确、边砍边收敛的。下次再开新项目,我会先把 target 写下来贴在屏幕上。
第四,"复刻式实战"和"0→1 实战"是两回事。 我这三个月严格说是站在 Claude Code、OpenHands、DeerFlow 这些巨人的肩膀上做的复刻式实战,过程中学到了很多,但离真正的 0→1 还有距离。这一点我会时刻提醒自己。
