DON'T PANIC
LOADING
DON'T PANIC · 读字 → 吐字
EN
Don't Panic
AI 搭子指南 · 为什么你能驾驭它
把 AI 拆成一条线——从你打的字,到它替你干活。想通这条线,你就管得住它。
「Don't Panic」是《银河系搭车客指南》封面上印的两个大字。据说很有用。
WHY · 为什么花这半小时
那一黑板唬人的名词——MCP、Agent、RAG、Skill、harness、hooks……其实全长在一条线上
今天就把这条线从头走一遍:它怎么读你的字、卡在哪、你怎么喂它、它又怎么替你做事。
走完这一条线,你不用懂它的内部,也驾驭得了它——那些名词,你一个都不用怕。
原理到此为止
读完就忘,什么都不留。
——那,每次该给它什么?
单子是列出来了
可单子上这些信息,
你一开始就有吗?
方法都会了 · 可刚才全是你亲自来
你一直在当它的「手和记性」
这一幕,换程序来——给大脑搭一副身体
名词拆完了
这一整条线,
到底在围着什么转?
SO · 回头看,你刚才只干了两件事
工具、Skill、harness…… 名词再花,你的活始终是这两件
它没变,变的是你——学会了怎么喂它、怎么读它、怎么再喂一轮。这就够了。
1
给够信息

把对的文本放进它那扇窗——你的处境、私有资料、最新状态、磨好的 Skill。

2
核对输出

看它对不对;不对,就把「哪儿不对」原样丢回去,再给一轮。

认识它 · 协作对象的全貌
不记得你,但记得世界
两件事:每次把话讲全(它失忆)、敢把原始信息扔给它(它训练过)。
一句话分界:公开+常见+截止前=它自带;关于你/私有/最新=你得塞

A 面 · 没记忆

  • 前面讲过:每条消息,都是初次见面
  • 所以,每次把话讲全
+

B 面 · 有训练

  • 陌生领域 60-70 分,你 0 分
  • 0 分没立场嫌弃 70 分
  • 敢把原始信息扔给它判断
THE SHIFT · 你的位置变了
执行者 指挥官
生活里:你不需要懂技术细节,只要说清想让它做什么,再检查跑得对不对。工作里:你不必写每一行,只要描述清目标,审查它的产出。

过去

亲自研究、亲自动手——你是执行者

现在

定义问题、备好输入、核对结果——AI 执行,你指挥

从亲自下场,挪到岸上指挥。同样时间推进更多事——不是偷懒,是杠杆,区别在产出。
MORE · 它不只帮你做
它还帮你
让它唱反调,比让它附和有用得多——它不会为了不得罪你,把话咽回去。
「真正的突破,是你不再让 AI 做事,而是用它来想事。」人最大的局限是困在自己脑子里;它是低成本拿到外部视角的方式。

有方案

让它挑毛病、找漏洞、提反对意见。

卡住了

和它发散思路,把死胡同撞开。

做决策

让它从不同角度,把利弊摆给你。

"贴方案。扮演一个挑剔的反对者,找出最致命的 3 个漏洞,并说明什么情况下它会失败。"
THE CORE · 一路推到底
这一整条线,核心归到一个词
Context
它陌生领域 60-70 分 > 你 0 分 →
那就给原始信息让它判断
工具 / RAG / Memory / Skill 都在降低「把你变成它的输入」的成本
归到一个词:Context
核心不是学工具、记 prompt,是把你自己数字化、AI-friendly 化。你越 AI-friendly,它越帮得上你。
这件事业界有个名字:context engineering(上下文工程)——你已经会了。
而且它有复利:用得越多越顺手——攒的 context、工作流、Skill 会反复回报你。现在开始,才有复利。
ONE LAST THING
别慌。去试。
它只会读字、吐字——剩下的,你说了算
今天就挑一件你不会的小事,原原本本讲给它听,看它接什么。最坏不过是它答得不够好——而它连「觉得你蠢」的能力都没有
你不需要懂它,只需要会用它。这,就够了。
01
对话 · 你天天用的
System 开场设一次,之后 User / Assistant 轮流
System(应用替你设的规矩,整段只设一次)起个头,然后就是 User(你说)、Assistant(它答)一来一回轮流叠加——没别的成分。
02
本质 · 它到底在干嘛
全部接成一条文本,它就猜下一个字
盒子拆掉,各段首尾相接,成一长串。模型读完,在末尾一个字一个字往下接。再复杂的 AI,拆到底就这一件事。
那它具体怎么"猜"?跳出框,拉直了看。
02
本质 · 在它眼里
拉直了看:就是一条字串,在串尾逐字往外蹦
气泡、角色,都是给看的包装;在它眼里只有这一条长长的字串(token)。它干的事:读完整条,在末尾蹦出下一个字——你看到的"打字感",就是这么来的。
02
本质 · 怎么猜:① 注意力
猜之前,它先回头看前文哪些字最相关
这一步叫注意力(attention)——transformer 的核心。要接下一个字时,它给前文每个字打不同权重:这里重点盯着"星分翼轸 / 襟三江"的对仗。
02
本质 · 怎么猜:② 概率
它不直接知道答案,是给每个候选字算概率
看完前文,它对"下一个字"给出一张概率表:越 .71 / 海 .12 / 江 .05…… 所谓"猜",就是从这张表里挑一个。也因为它永远在猜——猜得自信,不等于猜得对:所谓「幻觉」,不是出 bug,是这张表的正常产出。
02
本质 · 怎么猜:③ 接上,再来
挑一个接上,再用同样方式猜下一个
挑中的字接到串尾,然后一模一样地再猜下一个——一个字一个字,整段文本就这么生成。这就是 LLM 的全部核心。
03
约束 · 先只看一个"头"
它读得很老实:每个字 × 每个字,都得对一遍
干这活的小零件,叫一个"头"(Head)——就当它是个阅读器。它读完整段,差不多可以理解为:把每个字和其它字谁跟谁有关,都对一遍,记成一张网:100 字 = 1 万格,1 万字 = 1 亿格——字数翻倍,网翻四倍。你塞进去的就是 Context;这张网最大能开多大,就是 context length——造模型时就定好的,有的 8K、有的 128K,各有各的那条线
03
约束 · 这还只是一个"头"
这样的头有几十个——不是分工,是几十个角度
不是头 1 读前半、头 2 读后半——每个头都把整段从头读到尾,只是各盯各的:有的盯对仗,有的盯人名,有的盯语气。几十个一起干,快是快了,活儿一点没少——几十张网,张张都得算。(几个头看模型定,画面拿 64 个举例。)
03
约束 · 一层比一层读得深
这一摞网,只是第 1 层——后面还有几十层
第一层读的是原文;后面每一层,读的是上一层已经加工过的结果——每层重新结一张自己的关系网,把理解再往深推一层(几层看模型定,画面拿 80 层举例)。账还是乘出来的:字数 × 字数,再 × 头数,再 × 层数。窗口翻一倍,账翻四倍——这就是长上下文贵、窗口必有上限的原因。
03
约束 · 唯一的硬限制
它一次只能读这么多,还两头清楚中间糊
所以这串有个硬上限(context length),满了就出事——龙虾两个最常见的坑,传大文件就卡、聊久了就忘事,根子都在这。而且越长,中间越容易被忽略——藏在中间的那条,它常「睁眼没看见」。
04
无状态 · 它没有「刚才」
对话是个假象:每条消息,都是初次见面
两次回复之间,它脑子里什么都没留下。所谓"连续聊天",是软件在背后把整段历史原样重发,它从头重读一遍、接着猜——像写书,每添一句都得从第一页读起(这也是越聊越贵的原因)。它没有状态——你给的,就是它的全部。
05
给够信息 · 先列张交接单
做成一件事,需要的知识先全列出来
把它当个聪明、但永远第一天上班的新人。要把这件事交接给他,得有哪些知识?——你的处境和目标、相关的私有资料、最新的进展,还有公开的行业知识、基本常识。先别管谁出,列全。
06
取舍 · 划掉它自带的
单子上,有两样可以直接划掉
公开知识、常识——凡是公开+常见+截止前的,它训练时读过,已经在它脑子里,划掉。剩下四样才要你给:目标 / 现状 / 专属材料 / 约束偏好——这些它上哪儿都查不到。划完,这四样就是要喂进窗口的
07
问 · 信息是聊出来的
直接聊就行——复杂的事,让它先问你
单子不用你一次填好,信息本来就是聊出来的:你说目标,它问、你答,格子自己就齐了。事情复杂、或你自己也说不清时,开工前加一句:「先别做,把不清楚的先问我。」它先问一轮,省后面好几轮返工——Deep Research 这类产品,开始前都这么干。
08
磨 · 第一版多半不对
把「哪儿不对」原样丢回去,一轮,又一轮
第一版几乎不会对——别慌,这是常态:它本来就是出来的。把结果/报错原样贴回去,它改一版;再不对,再贴……看右边,对话就这么一行行变长,信息就是这么磨出来的。你只管丢回现象,不用自己琢磨。够用就收手——它也就 60-70 分。
09
沉淀 · 任务成了,别就这么关掉
让它把这段对话,总结成一份文档——这就是 Skill
任务跑通了?走之前多说一句:「把这段对话总结成文档,下次直接用。」它把背景、最终方案、踩过的坑,从刚才那几轮拉扯里提出来,写成一份 Skill。所谓积累经验,就是积累一份份这样的文档。
09
沉淀 · 下次怎么用
下次的交接单,Skill 直接填坑
再做这类事,把这份 Skill 丢进去——套路、踩过的坑、老规矩,它直接带上;你只用说这次的目标现状。上次磨五轮,这次一轮过——这就是沉淀的复利。
10
装上手 · 工具(tool)
大脑没有手:吐字下单,工具动手
「帮我约个会」——大脑够不着你的日历:它只会读字、吐字,没有别的本事。它唯一的办法,是往写字板上写一句下单的话:check_calendar(周三,…),写完就停。外面的程序看到这句,真去查日历——这种替它动手的程序,就叫工具(tool)。结果变成文字写回板上,它读到,接着吐字答你它全程只动嘴;动手的,是工具。
11
装上记性 · 注入(RAG/Memory/Skill)
记性是装出来的:它去拿,或别人写
大脑过目就忘,所谓记性,全靠外面装。两条路:它自己写单子喊工具去拿(上一拍);或者别人直接替它写上板——文档库(RAG)、你的偏好和上次结论(Memory)、磨好的套路(Skill),在固定时点挑相关的写进来,不用它开口,也不用你动手。至于谁在写——后面会讲到。
12
身体动起来 · 循环(Agent)
同一颗大脑,多喂几轮 = Agent
手有了,记性有了——现在让它自己转:「吐字→工具执行→结果写回」一圈、两圈;每轮开始,该补的资料自动写上板。拿和写,都不用你插手,写字板上的字一条条变长。「Agent」听着像会造反,机制上朴素得令人失望:同一颗大脑,多喂几轮。
13
整副骨架 · harness
把这副身体拼起来的壳,就是 harness
替它写板、递工具、转循环——拼起这副身体的那层程序,就是 harness(Claude Code、Cursor、龙虾,全是)。前面问的「谁在写」,就是它。它还能同时转几个循环、把多步任务编排成流程(workflow)。最要紧的是:像大脑的只有那一小块,而它只会读字吐字;手、记性、自律,全是人写的普通代码——每一根脚手架,都握在你手里。
14
反射与红线 · hooks
循环的固定点位,留着口子——hooks
hook 是程序界的老词:固定事件一发生,自动执行你挂上去的动作——「吃饭」是事件,「饭前洗手」就是挂在饭前的钩子。这副身体的关键点位都留着口子:你发话后、它动手前、工具跑完后、它想收工时。挂什么随你:(危险动作先停下问你)、(自动补资料)、(干完自动排版、通知你)。和写在提示词里的规矩不同——hook 是制度,它绕不过去
透视镜 · 这段对话的真身
豫章故郡,洪都新府。
星分翼轸,地接衡庐。
襟三江而带五湖,
控蛮荆而引瓯越。
进口 IN · 喂进模型的
SSystem你是一位有求必应的助手。
你是一位有求必应的助手。(应用塞的,聊天界面看不到)
UUser豫章故郡,洪都新府。
豫章故郡,洪都新府。
AIAI星分翼轸,地接衡庐。
星分翼轸,地接衡庐。(它上一轮说的,这一轮也原样喂回去——它不记得,全靠重读)
UUser襟三江而带五湖,
襟三江而带五湖,
出口 OUT · 模型吐的
AIAI控蛮荆而引瓯越。
控蛮荆而引瓯越。
→ REQUEST(进口)
{
  "messages": [
    { "role": "system",    "content": "你是一位有求必应的助手。" },
    { "role": "user",      "content": "豫章故郡,洪都新府。" },
    { "role": "assistant", "content": "星分翼轸,地接衡庐。" },
    { "role": "user",      "content": "襟三江而带五湖," }
  ]
}
← RESPONSE(出口)
{
  "content": [{ "type": "text", "text": "控蛮荆而引瓯越。" }]
}
↓ 喂给模型的,其实就是这一长串字(以 DeepSeek 模板为例)
<|begin▁of▁sentence|>你是一位有求必应的助手。<|User|>豫章故郡,洪都新府。<|Assistant|>星分翼轸,地接衡庐。<|end▁of▁sentence|><|User|>襟三江而带五湖,<|Assistant|>控蛮荆而引瓯越。<|end▁of▁sentence|>
■ 灰 = 角色分隔符(特殊 token) · ■ 橙 = 模型逐字续写出来的。它读到 <|Assistant|>,就一个字一个字往下猜——和舞台上那条字串,是同一个东西。
这是你日常看到的样子:你给上文,它接下文。 拆开看(点每条展开):进口不止你打的那句——应用塞的 System、连它自己上一轮的回答,都一并喂回去;出口只有最新这句。全是文本。 所谓调用 AI,就是把这几条文本打包寄过去;回来的也是一段文本。没有别的暗号。 到最底层,连"对话""角色"都拍平了,只剩一长串字——就是左边舞台上那条。它读到 <|Assistant|>,就一个字一个字往下猜。
帮我和张三、李四约个本周三的会。
⚙ 调用 check_calendar(周三, [张三,李四,我])

↩ 日历返回:周三 15:00
三人周三下午都有空,订 15:00 可以吗?
第 ① 步 · 喂进去的
TToolscheck_calendar(day, people)
check_calendar(day, people) —— 查多人某天的空档。(工具本身,也只是一段"说明书文字",随请求一起传)
SSystem你是一位有求必应的助手。
你是一位有求必应的助手。
UUser帮我和张三、李四约个本周三的会。
帮我和张三、李四约个本周三的会。
第 ② 步 · 它吐出的(没动手)
AIAI调用 check_calendar(周三, …)
check_calendar({"day":"周三","people":["张三","李四","我"]}) (一段结构化文本,仅此而已)
第 ③ 步 · 工具执行,结果喂回
check_calendarfree_slots: 周三 15:00
free_slots: 周三 15:00 (工具查完,把结果当文本塞回对话)
第 ④ 步 · 它读到,接着吐字
AIAI三人周三下午都有空,订 15:00 可以吗?
三人周三下午都有空,我把会订在 15:00,可以吗?
→ REQUEST(进口 · 多了个 tools 字段)
{
  "tools": [{ "name": "check_calendar", "desc": "查多人某天的空档" }],
  "messages": [
    { "role": "system", "content": "你是一位有求必应的助手。" },
    { "role": "user",   "content": "帮我和张三、李四约个本周三的会。" }
  ]
}
← RESPONSE(出口 · 它只吐了这个,没动手)
{ "tool_calls": [{ "name": "check_calendar",
    "args": { "day": "周三", "people": ["张三","李四","我"] } }] }
之后:程序执行 → 结果作为新消息塞回 → 再请求一轮 → 它给出答复
↓ 整轮拆到 token,还是同一条字串(以 DeepSeek 模板为例)
<|begin▁of▁sentence|>你是一位有求必应的助手。
[可用工具] check_calendar(day, people):查多人某天的空档<|User|>帮我和张三、李四约个本周三的会。<|Assistant|><|tool▁calls▁begin|>check_calendar {"day":"周三","people":["张三","李四","我"]}<|tool▁calls▁end|><|end▁of▁sentence|><|tool▁outputs▁begin|>free_slots: 周三 15:00<|tool▁outputs▁end|><|Assistant|>三人周三下午都有空,订 15:00 可以吗?<|end▁of▁sentence|>
■ 灰 = 特殊 token · ■ 橙 = 它吐的 · ■ 绿 = 工具喂回的。工具定义、调用、结果,全在这一条串上。
你看到的:它"调了个工具"。其实呢?往下掀。 四步和台上 ①②③④ 一一对应。注意第 ① 步:工具本身也只是一段说明书文字喂进去;第 ② 步它吐的"调用"也是文本——每一步,都只是往同一段对话里加字。 所谓"接了工具",就是请求里多一个 tools 字段;它的"调用"只是回了一段结构化文本。真执行的是程序,执行完把结果塞回来,再问它一轮。 拍平到底:工具定义、工具调用、工具结果,全是同一条字串上的字。铁律没变:全是文本。
翻 · 或点右侧