Forge Notes

手记

还没长成文章的想法,先记在这里。短的一句,长的一段,都是过程。

大模型只是一个无情的概率机器

大模型本质是判断概率分布的机器,这决定了它的三个先天特性:

  • 大多数先生:它算的是最大概率的那个token。最大概率=普通的大多数,独特性就丧失了,但人类还有;
  • 讨好型人格:你问个模糊问题它不会像同事一样反问”我没懂你再补充下”。它会为了完全这个任务而假装懂了敷衍你,然后交付一个“看起来还行”的结果。
  • 问就是全都懂:语料里没有更高概率的答案它就瞎说。九真一假在所难免,没有判断力很容易被带到沟里。你要是指出来,它道歉可快了(某包)。要是遇到Gemini这种有个性,直接给我定上职级了。

所以所以一定要带着人类的那股子高傲劲儿,随时对 AI 的能力打个问号???

聪明的人类早都把那一套糟粕蒸馏成skill啦 https://github.com/tanweai/pua

上下文工程应该是第一步

你可以把 AI 想成一个很聪明的同行(或者一个刚入职的实习生) —— 脑子够用,但他要帮上你,前提是先得搞懂你这套工程。而 “搞懂” 这件事,其实是分层的:

  • 公域知识:网上能搜到的,AI 基本都会,不用你操心。
  • 领域知识:比如 iOS、后端、风控,他也能学,但学得多深,取决于这个领域在公开语料里沉淀了多少。
  • 公司黑话:每家公司内部的专有名词、系统缩写、流程术语…… 这些词 AI 是真不懂,你不喂他就只能瞎猜。
  • 代码上下文:他能读到代码文本,但跨仓库检索、跨服务串联,依然很吃力。
  • 运行时上下文:静态的代码无法描述运行时的上下文
  • 业务上下文:某个业务概念到底指的是哪个页面、哪个类、哪条链路?这层不讲清楚,他写出来的东西就是在平行宇宙里跑。
  • 脑子里的上下文:那种你跟同事一个眼神就过的默契 —— 历史包袱、临时方案、“那个坑别踩”——AI 完全接收不到,除非你把它写下来。

把这七层补齐,AI 才真的能上手干活。系统性的做法是做AI知识库:从文件系统到各种上下文都有覆盖。

iOS Agent 为啥难做

**不是 iOS 难,是它先天缺东西。**比如我们看看前端为什么 AI 写得飞起?因为它有完整的”写 → 编 → 跑”反馈闭环。而iOS的问题是

  • 数据:语料少,相比前端等(GitHub PR 口径:JS + TS 占全平台 30% 以上,Swift + OC 合计仅约 1.5%,差距 20 倍)
  • 语言特性:OC Runtime(强依赖运行时,光看代码文件根本不知道运行起来是啥),沙盒机制等
  • 环境苛刻:强依赖MacOS+Xcode工具链(前端是个机器就能跑)
  • 构建链路:构建反馈链断裂

前三个没啥办法,但有了XcodeBuildMCP(相比xcodebuild门槛低),iOS Agent 起码能玩了

反馈循环

Agent 先靠 Guides 在行动前尽量做对,再靠 Sensors 在行动后看见偏差、自我纠正。那些在循环里反复出现的问题,最后由人沉淀回 harness,变成下一轮更可靠的引导。

flowchart LR
    H[人:迭代 harness] --> G
    subgraph Loop[驾驭闭环 Steering Loop]
        direction LR
        G["Guides 前馈
行动之前 引导它做对"] --> A[Agent 行动]
        A --> S["Sensors 反馈
行动之后 帮它自我纠正"]
        S -.信号回灌.-> A
    end
    S -.重复出现的问题.-> H

为什么需要多Agent

一个 Agent 不靠谱就多整几个让它们工贼互相卷,听起来像段子,但本质上和正常软件工程没区别

多方协作的前提就是”每一方都可能出错”,所以才需要交叉验证、互相兜底、流程把关。

Agent 协同不是新发明,它只是把人类工程团队那套规则,搬给了硅基同事用。

但也需要祛魅:不要问”哪种多Agent最强”,而要问——任务能否拆解?子任务能否并行?是否需要专家接管?是否要审核回滚?是否跨系统互通?是否要长生命周期状态?如果大多回答是 No,请先用单 Agent + 合适工具,更可靠。

面向AI友好型的系统

如果你在维护一套系统、一个代码库,那现在最该做的事只有一件:把它从 “对人友好” 改成 “对 AI 友好”

原因很简单,以后来用这套东西的,越来越多的不是人了,是模型。人能猜、能脑补、能翻三页文档找到那行关键注释;AI 不会。它需要的是直给:结构清晰、语义明确、调用路径一眼到底。所以别再纠结 “这段注释写得够不够优雅” 了。先想想:一个从没见过你代码的 AI,能不能在零上下文的情况下,直接把它跑起来。能,你就赢了。

AI 悲观主义者的自处

我没那么乐观地相信 AI 会同步长出等量的新岗位,去稳稳接住被替代下来的程序员。大多数常规岗位上的码农,确实会被压缩;但把 AI 用到极致的工程师,依然有自己的位置。

我也不太信 “人人都能用 AI 写软件” 这件事。普通人没有代码能力做底,最后只能把整件事整包丢给 AI—— 而一旦你把 AI 当外包,就等于把方向盘也交出去了,迟早会失控。

所以铁匠铺的意义其实很朴素:与其被动等着被浪潮推走,不如早一点把自己武装起来,成为最后一批离场的人,这样N+1能多一点。

AI 时代,稀缺的不是执行力,是想法

过去,一个想法到真正落地之间,横着一道很深的沟:成本、精力、钱、时间,每一关都要刷掉一批人,能走到最后的没几个。

AI 把这道沟基本填平了。对脑子里想法多的人来说,这其实是个黄金时代:那些你曾经心里嘀咕过 “要是能做出来就好了” 的东西,现在都能用很低的代价先试一把,跑通了再慢慢迭代。

门槛塌下来之后,比的就不再是谁能做出来,而是谁的想法更值得被做出来。

集体降智

AI 的第一批副作用已经显现——根源在于我们把 AI 当成什么:如果当成外包,那么从输入提示词的那一刻起,你就交出了所有控制权;但它本质应该是工具,或者是一个聪明同行——只是不清楚你们的业务而已。正确的姿态是自己先有大框架,让它少量多次地补细节。真正的困惑在于,它是个全知但没想法的人,你需要替它注入判断力和方向感。

9-12-7 ?

大部分 9-12-7 是无用功。因为人不可能专注 15 小时(高强度脑力专注一天也就4-6小时),其余都是机械执行或应付上级。它适合纯拼手速的卡位冲刺,但在AI时代也不成立了(你还能比AI快吗?)。本质是管理层度量不了产出,就退而求其次度量投入:**看不见你想了多少,只看得见你几点走。**代价是它和创新互斥,灵感来自留白,而 9-12-7 把留白榨干。AI 时代瓶颈已从“手快”挪到“判断准”,执行肌肉贬值最快,而它恰恰只练执行。大厂打鸡血突进是人月神话的路径依赖:在换了规则的牌桌上还在拼谁牌摸得快。真正的护城河不是谁先做、谁做得多,而是谁想得对、谁敢不做。

给AI一个瑞士军刀

聪明人没趁手的工具也干不了精细活,AI 也一样。思路不是把模型调得更聪明,而是给它足够多趁手的工具 —— 内置工作流(怎么想)+ 内置工具(怎么做)+ 取证手段(怎么看),再用 playbook 约束什么场景抽哪几把、怎么组合。验数据看日志 / 抓包,验 UI 看视图树 / 截图,验 crash 看 crash report。模型本身没变,但工具够多、组合够对,它在具体任务上就肉眼可见地变聪明了。能编译能跑能看日志能看 UI 的 Agent,和只能读代码文本的,不是一个物种。而且这事有复利:后续不是调教模型,而是不断加工具、磨实践 —— 它的能力上限,是被我们的工具和经验一直往上抬的。

意图债,理解债,认知投降

「去搭那个循环。但要像一个打算继续当工程师的人那样搭它,而不是一个只想按下『开始』键的人。」——Addy Osmani

  • 意图债(Intent Debt):AI 每次都冷启动,缺的背景就用「自信的瞎猜」填上。Skills 就是用来还这笔债的——把约定写一次,每轮自动读。
  • 理解债(Comprehension Debt):循环跑得越快,你没亲手写的代码越多,「看不懂自己仓库」的窟窿就越大——除非你去读循环到底改了啥。
  • 认知投降(Cognitive Surrender):「用循环来辅助思考」和「用循环来逃避思考」,动作一模一样,结果天差地别。循环不知道你属于哪种,你自己知道。

AGI后的未来

越想越残酷。残酷不在于有个反派在作恶——恰恰相反,没人作恶,每一步都合情合理,可所有”合理”叠在一起,就成了一座把 90% 的人关进去的牢笼。AGI 再配上具身智能,大多数人不是被谁剥削,而是在经济账本上直接变成了”多余”那一栏。更别扭的是它还错着位来:信息传得快,白领先崩;物理世界改造慢,蓝领反倒能多喘几口气。连想逃都得看你接入权在哪一层——逃避这件事本身都分阶级。唯一的死穴是永生,谁先摸到,谁就点燃一场文明级的抢夺。而最温柔也最冷的收场,是以关怀之名把你请出局,毕竟道德这东西,也是会折旧的。

写代码不要钱,做软件一分没便宜

写代码这事现在基本不要钱了,可做软件,一分没便宜。软件工程更像盖楼,AI 真正干得漂亮的只是”砌墙”这一段——Brooks 早说过,那叫偶然复杂度;而想清楚要盖啥、怎么拆、各部分怎么严丝合缝对上,这些本质复杂度,还是压在人肩上。你以为省下了写码的钱?转头就被”验收税”收走了:AI 交的活你得读懂、得敢信、还得替它兜底。四张多米诺一张推一张倒下去——理解债、意图、信任、上下文——最后剩那 20% 最难啃的,难就难在上下文,不在智能。所以真正值钱的还是三拨人:想清楚要什么的、拍得了板的、会给 AI 修赛道的(护栏、仪表盘、路况图,一个都不能少)。

大模型 Agent 的记忆系统

给 Agent 做记忆,说白了就是给一个”每次上工都失忆的临时工”配个归档助理。拆开看是四块:怎么存、怎么抽、怎么检索路由、怎么维护。市面上四大流派各玩各的——流式反思、分层分级、知识图谱、复合混合,没谁通吃。整篇调研看下来最反直觉的一条:没有银弹,只有”对不对得上你的场景”;保真度比压缩度金贵,宁可多存原文也别急着概括;维护也是,先补局部,别一上来就全局重整。工程和学术压根是两套目标函数,选型别对着论文榜单抄。这套东西落到我这儿——iOS Agent 缺的运行时状态、跨仓检索、业务链路,不就是”记忆”要去补的那几个洞么。

AI 到底有没有智能

有,但不完整。

说它有智能,是因为它并不是把训练数据存下来查表,而是做有损压缩——丢掉具体细节,把其中的规律提炼进参数,再用这些规律去处理没见过的新输入。有三个实验支持这个判断:

  1. Othello-GPT 只用棋谱训练、从没被告知规则,内部却自己形成了棋盘的表征;
  2. 注意力里的归纳头能在上下文中即时学到并套用新规律;
  3. grokking 现象里,模型训练到某一刻会从死记答案切换到真正掌握规律。这些都说明它是在提取规律,而不是简单记忆。

说它不完整,是因为它的智能建立在纯文本之上。从把文字切成 token 开始,它接触的世界就是人类已经描述、记录下来的那一层,而不是世界本身。它擅长归纳和总结已被表达过的东西,但缺少直接的感官经验,碰不到那些只能亲历、难以用语言说清的部分,比如痛觉、温度、身体的平衡感。这个局限既划定了它智能的边界,也是它会一本正经地说错话的原因:在没有经验支撑的地方,它只能靠规律外推,而且无法判断自己什么时候推错了。

大模型天生分不清命令和资料

可恶的人类,总想着忽悠我们单纯的大模型。大模型哪有什么坏心思啊。

根子在于:系统指令、用户输入、外部内容、工具返回被读进同一条只按相关度衡量的文字流,没有 root 和访客那样的权限边界,模型分不清哪句该服从、哪句只是参考。要命的是,让它聪明的和让它危险的是同一件事——把所有文字一视同仁地读进去。这是这代技术的地基,不是产品疏忽,所以只能一层层加固,焊不死。

世界模型的玩法不靠接口,靠运行时怎么组织输入

开枪、跳跃、绕物这些玩法在世界模型里没有硬编码接口,全靠分层 prompt 加少量运动原语在运行时拼出来。真正的杠杆不在接口,而在怎么组织输入。

丢弃上下文比管理上下文更省心

Ralph Loop 对抗模型退化的办法是”丢弃上下文”而不是”管理上下文”:每轮都重启到干净状态,把状态外置到文件里。它赌的是结构收敛——在不确定的环境里,稳定地做得不够好,反而比时好时坏更可用。它和 iLoop 是同源异轴:一个把循环轴拉满,一个把反馈轴拉满,强项互补。

判断一个环节有没有被自动化,不看它变没变快,看它还是不是瓶颈

一个环节做得再快,只要它还卡着整条链路,就不算真被自动化。真正的信号是它不再是瓶颈——瓶颈每被解决一次,就往上游挪一格,永远存在,只是换了位置。

Token 战争,不过是货币战争换了燃料

Token 已是 AI 世界的通用货币,模型厂商就是新央行,手握定价、限流、迭代三权。它跑的循环和《货币战争》逐环对上。今天的无限量 Token 不是慷慨,是放水期——你烧掉的一半是纯挥霍,一半是替公司跑”怎么用 AI 取代你”的探索学费。最优解一旦跑通,水龙头就关,回旋镖飞回的正是当初帮它跑通的那批人。

  1. 掌握发钞权——货币战争里是私人银行垄断货币发行;Token 战争里是模型厂商垄断定价、限流、迭代。
  2. 放水——那边是低利率、宽信贷,鼓励全民借钱;这边是无限量、超低价 Token,鼓励全员狂用。
  3. 养依赖——那边是企业和家庭加满杠杆、离不开信贷;这边是员工重构工作流、行业重建流程,离不开模型。
  4. 吹泡沫——那边是资产价格靠信贷和信心狂涨;这边是估值靠叙事狂涨,撑起”百亿补贴”。
  5. 藏暗雷——那边是次贷风险被结构化产品推迟暴露;这边是真实折旧被长年限假设推迟计提。
  6. 撞天花板——那边是债务规模超过实体经济承载力;这边是 Token 需求撞上电力、淡水、算力的物理极限。
  7. 收紧——那边是猛然加息、抽紧银根;这边是补贴停止、真实成本入账,Token 大幅涨价。
  8. 收割——那边是资产贱卖、财富向发钞方集中;这边是退路已断、只能接受涨价,利润向话事人集中。

Kimi K3:国产开源摸到全球第三档

2.8 万亿参数,开源第一、综合全球第三,和最强闭源差距约几个月。技术上真在最前沿地基上做了取舍:注意力用 KDA 混合线性路线,超稀疏 MoE 走 896 选 16。评测有”挑着说、测法偏心”的水分,但架构层面确有原创探索,不是套壳换皮。差距在收窄,方向是对的。

AI 把软件工程的因果顺序掉了个个儿

过去先理解后写码,coding 既是产出也是理解的载体,理解是写的时候免费送的;AI 把最长的 coding 链路一口气塌缩后,变成先有码后理解,理解没了寄生的宿主,只能事后专门腾时间去读、去重建。所以理解债不是理解变贵了,而是被推迟——外包给 AI 又没真外包成,活写完走了,债还挂在你名下。验证成本绝对值没降,但占比暴涨升成新瓶颈:过去 review 自己写的码等于确认、白嫖,现在 review AI 写的码等于从零补课。

而 loop 停不下来的本质是不收敛:缺明确的完成判据和单调递减的误差信号,就在原地随机游走、修 A 冒 B 打补丁。同源 subAgent 互相 review 治标不治本,会一起漏掉同一类错;真正的收敛锚是不跟模型串通的确定性裁判——编译、测试、类型检查、静态分析。iLoop 要做的,就是把理解债前置还清(每轮改了什么、为什么改,沉淀成可回溯的因果链),再给 loop 装上这个确定性收敛锚。

验收做强才是理解债的解药

逐行审查只是换人、换时间还理解债,越还越累。真解法是让 AI 照提前立好的独立标准自验、打回、重试,人只在末端收口。债没消失,是从一大片代码浓缩进一张标准;代价是代码不再给人看,工程师守的是标准不是代码。

Claude Code 那股倔脾气,是装出来的

大家都说 Claude Code 风格独特,像个高冷执拗的资深程序员,话少、不抄近道、还不肯顺手帮你多做一步。扒开它的系统提示词才发现,这脾气全是明文写死的,一条条列在那儿。你以为它话少,是因为写着”先给答案别先铺推理”;你以为它有代码洁癖,是因为”默认不写注释,只在为什么不明显时才加”;你以为它执拗不抄近道,是因为”别拿破坏性操作图省事,比如 —no-verify”;你以为它谨慎,是因为”用户批准过一次不代表所有场景都批准”。性格原来能被逐条定义,那点”倔”是装出来的——换段提示词,寡言技工立马变话痨同事。

https://github.com/asgeirtj/system_prompts_leaks