原野: 哎呀,你发现没,最近科技圈里是不是又冒出来一个特火的词儿,叫“上下文工程”?我跟你说,听说有篇文章刚一发到Hacker News上,直接就给它顶上去了,那讨论度简直了。很多人都说,这玩意儿吧,感觉就像我们一直都在干这事儿,就是没法儿用个词儿给它描述出来,现在可算是“名正言顺”了。
晓曼: 简直是!那种“哎呀妈呀,这不就是我吗”的相见恨晚,简直强烈到不行。你想想啊,咱们平时跟AI打交道,是不是早就发现,光给它蹦出一个“漂亮”的提示词,那根本不够用啊。尤其遇到那些个复杂的活儿,咱们是不是下意识地就得先给AI铺垫一大堆背景信息,就跟给它“做思想工作”似的,让它赶紧“进入状态”。嘿,这一套操作下来,原来就叫“上下文工程”啊!
原野: 以前啊,我们老是把“提示词设计”挂在嘴边,觉得那简直是跟AI沟通的“武功秘籍”。结果现在呢?感觉AI圈儿里对“核心能力”的理解,好像正在经历一场“乾坤大挪移”啊。你觉得这场“挪移”的核心到底是个啥?为啥它又突然变得这么重要了呢?
晓曼: 核心嘛,简单粗暴地说,就是从以前的“提示词工程”直接“升级”到了“上下文工程”。它为啥这么重要呢?你想啊,我们现在发现,一个AI智能体到底能不能成事儿,关键已经不是它自己有多“牛掰”,而是咱们给它的“背景故事”够不够充分。Shopify的创始人Tobi Lutke,那家伙可真是个明白人,他有个特别精辟的定义,他说上下文工程啊,就是“为语言模型提供足够背景信息,使任务具备可解性的艺术”。
原野: “使任务具备可解性”,哎,这个定义听着就特别有意思。那是不是说,以后AI要是“掉链子”了,我们可不能老是骂它“笨蛋”,而是得先反思一下,是不是我们自己没把问题“掰扯明白”,或者给它的“条件”压根儿就不够?这对于咱们这些整天跟AI打交道的“打工人”来说,有啥特别的启发吗?
晓曼: 最大的启发啊,我觉得就是咱们得彻底“换个脑子”了。不能再把自己当成一个只会“一键提问”的傻白甜“用户”,而是得摇身一变,成为一个“信息架构师”!你想想,在咱们给AI发号施令之前,是不是得先像个老谋深算的军师一样,系统地琢磨琢琢:它需要哪些“前情提要”?它现在扮演的是个啥角色?它得知道哪些“陈年旧事”?它又该按什么规矩来办事儿?把这些“上下文”都给它铺垫好了,我跟你说,AI的成功率简直是蹭蹭蹭地往上涨!
原野: 既然这“上下文工程”都这么“C位出道”了,那咱们就得好好掰扯掰扯了:到底什么是AI眼里的“上下文”啊?它都包含了哪些七七八八的信息维度呢?
晓曼: 哎,说到AI的“上下文”啊,估计好多人第一反应就是咱们敲进去的那个提示词。但实际上,AI这小脑袋瓜里理解的“上下文”,那可比我们想的要丰富太多了。它几乎就是模型在“开口”之前,所有能接触到的、能吸收的“营养”信息。
原野: “一切信息”?哇塞,这范围可就有点儿广阔无垠了吧!那它具体都装了哪些“宝贝”元素在里面呢?
晓曼: 我们可以把它想象成一个巨大的“信息百宝箱”。你看啊,它最底层是“系统设定”,这就像给AI穿上了一件“人设外衣”,规定了它的角色和行为规矩;再往上,就是咱们每次给它的“用户提示”,也就是那些个具体的任务指令;还有咱们跟它的“聊天记录”,也就是它的“短期记忆”;更厉害的是,它还有“长期记忆”,比如你之前悄悄告诉它的个人小癖好;甚至啊,它还能通过各种“小工具”去外面“打探”来的“外部信息”,以及咱们对它“输出格式”的各种“挑剔”要求。所有这些零零碎碎、大大小小的东西一加起来,才算是给它拼凑出了一个完整的“上下文”宇宙。
原野: 哎,我这儿有个不成熟的小比喻啊,如果咱们把AI想象成一个学生,那它的“上下文”是不是就跟它在做题之前,能翻到的所有课本、笔记、老师的“金玉良言”和以前的“错题本”一个意思?你觉得我这个比喻够不够形象啊?
晓曼: 哎呀,你这个比喻简直是“神来之笔”!太恰当了,而且一下子就把“上下文”的广度给打开了。你想啊,学生的课本,那不就是AI的基础知识库嘛,也就是那些海量的预训练数据。老师的谆谆教诲,那可不就是“系统设定”嘛,给它划定了做题的原则和边界。现在手里这道题,就是咱们的“用户提示”。而那些旧作业、错题本,就是它的“对话历史”了,能让它吃一堑长一智,少犯同样的傻错误。要是真遇到个“拦路虎”难题,它还能去图书馆“抱佛脚”查资料,那可不就是“外部检索”了嘛!你看看,这一下就把上下文这个多维度的、动态的“生态系统”给描绘得清清楚楚、明明白白了!
原野: 行,既然咱们把“上下文”的“疆域”都给摸清楚了,那接下来,咱们就得深挖一下,到底哪些“硬核”部分组成了这个“上下文帝国”。先从最最基础的“系统设定”和“用户提示”说起吧。
晓曼: 没问题!咱们就从AI的“脑回路”里最先被“刻录”进去的东西说起。那往往就是那些决定它“本性”和“脾气”的“系统设定”,以及咱们每次跟它“唠嗑”时给出的“用户提示”。说白了,这两块儿,就是搭建有效“上下文大厦”的“地基”啊。
原野: 那这两块儿“地基”——“系统设定”和“用户提示”,它们俩到底是怎么“手拉手”一起发挥作用的呢?
晓曼: “系统设定”,或者咱们叫它System Prompt,这就像是给AI量身定做了一个“初始人设”,或者说是一本“葵花宝典”式的“操作手册”。你看啊,现在好多AI应用都允许咱们自己去“写剧本”,你可以在里面写:“嘿,你现在是一位资深的法律顾问了啊,回答问题必须严谨、专业,而且得把法条给它搬出来!” 这一下子,就等于给AI的行为框定了一个“不能越界”的范围。而“用户提示”呢,那就是咱们每次“临场发挥”的具体问题了,它把当前的任务和背景都一股脑儿地给装进去了。
原野: 咱们普通用户啊,可能一直觉得AI的“系统设定”那都是“出厂设置”,改不了的。但原文里头提到了,现在咱们也能通过自定义功能去“插一脚”了。那从咱们想让AI“更好用”、“更听话”的角度来看,这些基础设定和用户提示,咱们到底该怎么好好“盘”它们呢?
晓曼: 那必须得好好“榨干”它们的价值啊!比如说,你可以在系统设定里,直接告诉AI你的“老本行”是啥,你平时喜欢用啥风格聊天,甚至可以把你的那些个“小秘密”——哦不,是固定的个人信息,都给它一股脑儿地塞进去。这样一来,你每次跟它提问的时候,就不用再像个老妈子一样,一遍遍地交代那些背景了。至于用户提示,原文里头那个写行政强拆案庭审答辩的例子,简直是教科书级别的操作!作者可没指望AI一下子就能“憋”出个完美的文稿来,而是用了那种“小步快跑,渐进明细”的策略,先给AI“喂”了海量的案件背景资料,然后通过一轮又一轮的“追问”和“调教”,才一步步地引导和修正,最后才“磨”出来一份让他拍案叫绝的答辩书。
原野: 听起来,系统设定和用户提示,就像是给AI的任务打了个“地基”。但话说回来,AI也不是每次都得从“零”开始啊。它也是有“记忆”的嘛!那这些“记忆”在咱们这个“上下文工程”里头,又扮演着个啥样的角色呢?
晓曼: 没错,AI它还真有“记性”!而且这在“上下文工程”里,简直是“举足轻重”啊。咱们可以把它分成两种:一种是“短期记忆”,这不就是咱们俩现在“唠嗑”的对话历史嘛。你跟它说了啥,它都乖乖地记在当前的对话框里,这才能保证咱俩聊天不“跑偏”。另一种呢,就是“长期记忆”了,就像现在ChatGPT也有的那个记忆功能,你可以大大方方地告诉它一些你希望它“刻骨铭心”的信息,它就给你永久记住了。
原野: 哎,那AI这个“短期记忆”,就是咱们说的“上下文窗口”呗,它是不是个“无底洞”啊,想记多少就记多少?
晓曼: 哪儿能是“无底洞”啊!这可是个“要命”的关键限制。不同模型的“记忆体”大小差异可大了去了,有的模型能处理几百万字,有的可能就只有几十万字。你想啊,当咱们的对话“滔滔不绝”地聊下去,一旦超出了这个“记忆窗口”的容量,AI它就会开始“选择性失忆”,把最开始的内容给“忘光光”了。这有时候就导致它后面“驴唇不对马嘴”,甚至开始“胡说八道”了,咱们管那叫“幻觉”。
原野: 既然AI的“记忆力”也不是无限的,那当咱们跟它“长篇大论”的时候,或者想让它把某些事儿“刻在脑子里”的时候,咱们可能会遇到哪些“坑”呢?又有哪些“神操作”能帮咱们“填坑”呢?
晓曼: 挑战嘛,就是聊天聊着聊着,它可能就“失忆”了,然后就开始“驴唇不对马嘴”了。应对的“秘籍”呢,主要就是好好利用它的“长期记忆”功能。比如说,你可以在设置里直接跟它讲:“喂,我的日常工作语言是简体中文啊!” 这样它就不会动不动就给你飙英文了,省心!还有一个特别逗的案例,有人发了张照片问ChatGPT这是哪儿,结果ChatGPT居然“神回复”准确地认出来了。但后来作者一琢磨,哎,不对劲儿啊,AI根本不是靠“火眼金睛”识别图片,而是它偷偷地“翻阅”了之前的聊天记录,因为作者 earlier 就提过这个地名!你看,AI这“记性”啊,有时候还真能给我们整出点儿意想不到的“幺蛾子”来。
原野: AI有了“记性”之后,确实能更“懂”我们了。但有时候吧,AI光靠自己的“脑子”还不够,它需要去外面“打探”点儿实时消息,或者干脆“撸起袖子”自己动手干点儿啥。这就不得不提“外部检索”和那些“可调用工具”了。
晓曼: 可不是嘛!你脑补一下那个画面:AI不仅能跟你“对答如流”,它还能实时查个天气、看看你的日程表,甚至还能给你分析个图片!这背后的“功臣”,就是“外部检索”和那些“可调用工具”了。它们俩啊,简直是“上下文工程”里头,给AI“开挂”拓展能力边界的“核武器”啊!
原野: 那它们到底是怎么给AI“开挂”的呢?具体是咋拓展能力的?
晓曼: 外部检索啊,现在最火的那个技术就是RAG,说白了,就是让AI在“开口”之前,先去一个咱们给它指定好的“图书馆”里头,把相关的资料“搜刮”一遍,然后再结合这些“新鲜出炉”的资料来给你答案。这对于减少AI“一本正经地胡说八道”简直是“救命稻草”!你想啊,在处理法律问题的时候,AI是不是老喜欢“瞎编乱造”法条?但如果你先把那些专业的法律文件一股脑儿地“喂”给它当“参考书”,嘿,它的回答质量那可真是“脱胎换骨”啊!
原野: 那“可调用工具”又是啥?它跟“外部检索”有啥不一样的地方吗?
晓曼: 这么说吧,如果“外部检索”是教会AI“察言观色”,让它“能看懂”更多的东西,那“可调用工具”就是直接让AI“撸起袖子干活儿”了,让它“能做”!它能让AI去调用外部的各种“小功能”或者API,去执行一个具体的动作。比如说,你问它“嘿,今天北京天气怎么样啊?”,它自己肚子里可没有实时的天气数据,但它能通过调用一个“天气查询小助手”,立马就给你把信息“扒拉”出来,然后告诉你。这一下子,AI就从一个只会“嘴上说说”的“回答者”,华丽转身变成了一个“说干就干”的“执行者”了!
原野: 哇,从以前光会“说学逗唱”,到后来能主动去外面“搜罗情报”,甚至还能“亲自动手”干活儿,AI这能力简直是“质的飞跃”啊!这种“飞跃”对咱们AI的应用场景来说,会带来哪些“天翻地覆”的变化呢?
晓曼: 这简直是“革命性”的颠覆啊!它意味着AI不再是那个只会“闭门造车”的“孤僻大脑”了,而是拥有了可以和咱们真实世界“亲密接触”的“手脚”!你想想,它能帮你提前把会议室给“占”了,帮你把那些个乱七八糟的文件“捋顺”了,还能帮你把那些“天文数字”般的数据报表给分析得“明明白白”。咱们跟AI的“搭档”模式,也从以前那种“你问我答,我问你答”的“老一套”,直接进化成了真正的“任务协同”了!
原野: 咱们聊了半天AI怎么去“搜集”和“消化”信息,但话说回来,它最后“吐出来”的东西,还得是咱们希望的那个样子才行啊。这就不得不提“上下文工程”里头,一个老是被大家“忽略”但又“要命”的关键环节了:那就是“输出格式要求”。
晓曼: 对头!咱们是不是经常光顾着看AI到底“说了啥”,却很少去琢磨它“怎么说”?它以什么形式“说”出来,这同样是“重中之重”啊!为啥说这“规范输出格式”在“上下文工程”里,是个决定AI到底“好不好用”的“隐形开关”呢?因为它直接决定了AI的回答是不是“有章可循”,是不是能跟咱们的其他系统“无缝对接”!
原野: 哎,我再来个比喻啊,如果咱们把AI“生产”出来的内容,看成一个马上要“交货”的产品。那这个“输出格式要求”啊,是不是就跟这产品的“说明书”和“接口标准”一个意思了?它到底是怎么保证这个“产品”能被咱们“吃透用好”,还能跟别的系统“完美配合”的呢?
晓曼: 你这个比喻简直是“一针见血”!太到位了。比如说,你想让AI帮你“扒拉扒拉”数据,你就可以直接跟它“下命令”:必须给我用JSON格式输出!这样咱们的程序就能“一键读取”,直接处理了,而不是它给你“洋洋洒洒”地输出一段只有人类才看得懂的自然语言,还得咱们自己去“翻译”。再举个翻译的例子,与其让AI一下子就给你个“最终版本”,不如咱们“步步为营”:第一步,你先给我个初稿;第二步,你再给我“诊断诊断”,这初稿可能有哪些“毛病”;第三步,结合你诊断出来的结果,再给我出个终稿。你看,这种对输出流程和格式的“精细化管理”,那可真是能把最终结果的质量和“好用度”给“拔高”一大截啊!
原野: 从咱们前面聊的那些“宏大叙事”的思维转变,到这会儿咱们抠的这些“小细节”——格式要求,可以说“上下文工程”的方方面面,都把咱们跟AI打交道的这个“深度”给彻底揭示出来了。那你说,所有这些加起来,对咱们和AI的未来,到底意味着点儿啥呢?
晓曼: 它意味着啊,咱们跟AI的“合作关系”正在迈向一个更“成熟稳重”、更“有章法”的阶段。这可就要求咱们不能再“死守”着那一个单一的提示词不放了,而是得开始用一种“运筹帷幄”的系统工程思维,去构建和管理信息。这玩意儿,绝对是一种“未来可期”的全新“硬实力”!
原野: 哎,这么一说啊,未来想真正把AI这玩意儿给“驯服”了,让它“好用”起来的“葵花宝典”,可能真就不是那个“惊天地泣鬼神”的提示词了,而是咱们为它“量身定制”、精心搭建的整个“上下文”体系啊!这才是真正能“打开”AI“隐藏技能”的“万能钥匙”!