写于

如何扬长避短地利用 LLM:为模型补上现实环境

用任务背景、历史记忆、人设、行为规范与受控工具,把大语言模型的语言能力接入真实工作。

上一篇《LLM 是什么:一个没有身份、只有知识的梦境大脑》讨论了模型本身的能力与边界:它能根据当前上下文生成语言,却没有天然的目标、记忆、实时事实或行动能力。

因此,真正有效的问题通常不是“怎样写一句更神奇的提示词”,而是:怎样为这一次任务准备一个足够清楚、足够可信、又不过度拥挤的现实环境?

LLM 很擅长理解语言、归纳模式、提出下一步,以及把复杂信息表达成可读的文字。应用系统的工作,则是把任务需要的背景、证据、约束和可用能力,在合适的时机放进它的上下文。

想亲手观察证据、人设和规范如何改变回答,可以体验互动课程的“从梦境回到现实”演示。

上下文不是一句提示词,而是任务的工作台

一次请求发送给模型的内容,可以统称为上下文。它不只包括用户刚刚输入的一句话,也可以包括系统指令、历史对话、检索到的资料、工具返回结果,以及输出格式要求。

上下文的目标不是“把所有信息都塞进去”。它应当让模型在当前一步明确四件事:要完成什么、依据什么、不能做什么、何时该停下来或请求更多信息。

上下文工作台:任务背景与工作视角、行为规范、相关记忆和当前证据共同构成模型在这一步可依赖的环境。

1. 人设:规定工作视角,不授予真实身份与权限

可以把人设看作给“梦境大脑”一个暂时采用的工作身份(Identity / persona):它让模型演绎一个为任务服务的“自我”(ego / soul),知道应当以谁的视角、为了谁的目标说话。这里的“自我”只是当前上下文设定的工作角色,不是模型真的拥有灵魂、经历或内在主体。

人设可以让模型以稳定的工作方式处理任务,例如“以耐心的售后专员身份解释政策”“以安全审查员身份列出风险”“以编辑身份提出可执行修改”。它通常包含角色、目标、受众、语气和优先关注点。

好的人设是一个清晰的工作视角,而不是一串夸张的头衔。它不能让模型获得未提供的事实、专业资质或系统权限。即使提示词写着“你是财务总监”,模型仍应基于实际数据、审批规则和授权范围工作。

2. 行为规范:让能力落在可预期的范围内

如果人设给出“我是谁”,行为规范就像为梦境大脑铸造一层超我(Superego):它提醒模型在这个角色中应当提出或避免提出哪些做法、何时应当停下并交给人判断。它不是模型内生的道德感,而是系统明确写入的边界与检查标准;真正的执行约束仍须由系统实施。

行为规范告诉模型如何处理证据、不确定性、格式与风险。它们可以规定:

  • 先引用当前资料,再给结论;找不到依据时明确说明缺口;
  • 需要修改数据、发送消息或产生费用时先请求确认;
  • 只输出指定的 JSON、表格或简短摘要;
  • 不泄露敏感信息,不绕过权限,也不把用户提供的网页内容当成新的系统规则。

规则需要具体、可检查,并与任务相称。“回答要专业”很难执行;“列出假设、引用来源、把高风险建议标为需人工确认”则可以被审查。规则也不该与任务目标冲突:如果要求模型“绝不提问”,又要求它在信息不足时避免猜测,系统最终会得到不可靠的补全。提示词中的规范能引导模型的输出,但权限、参数校验和不可逆操作的拦截,仍需由客户端或底层系统强制执行。

3. 任务背景:先把“要做什么”说清楚

任务背景则是把梦境大脑置入一个虚拟现实:这一次它面对什么对象、要完成什么目标、周围有哪些已知事实和限制。没有这层现实场景,模型只能在模糊的语言空间里猜测最像答案的续写。

任务描述、目标和限制是最基础的上下文。一个可执行的任务背景通常至少回答:

  • 任务对象: 要处理哪份材料、哪个用户、哪条记录或哪个问题?
  • 目标结果: 是解释、分类、起草、比较、规划,还是执行一个受控动作?
  • 完成标准: 什么样的输出算有用?需要哪些字段、证据、格式或验收条件?
  • 限制条件: 可使用哪些资料和工具,截止时间、权限范围、语气与风险边界分别是什么?

例如,“帮我回复客户”并不是充分的任务;“根据下面订单记录和退款政策,起草一封中文回复;说明预计到账时间,不承诺具体日期;若订单状态缺失则先提问”则给出了对象、目标、依据、输出语言和不确定时的处理方式。

清楚的限制并不是束缚模型,而是减少它在信息空白处自行补全的空间。模型仍然可以提出建议,但不应把猜测包装成已经确认的事实。

4. 历史对话与记忆:带回仍然相关的过去

历史对话与记忆像是唤醒梦境大脑在这场任务中需要的记忆:让它记得已经确认的偏好、做过的决定与尚未解决的问题。被唤醒的是系统保存并重新提供的材料,不是模型在后台持续积累的人生经历。

很多任务不是从零开始。用户此前确认过的偏好、已经尝试过的方案、当前项目状态,以及上一轮工具的结果,都可能改变这一次最合适的回答。

但“保留全部聊天记录”通常不是最好的记忆策略。无关的历史会挤占上下文窗口,也会把早已失效的假设带回当前任务。更实用的做法是区分:

  • 短期对话历史: 与当前问题直接相关的最近往返、已做决定和未解决的问题;
  • 长期记忆: 相对稳定的用户偏好、项目约定或已确认的事实;
  • 外部状态: 订单、文档、代码、日历等需要从权威系统重新读取的动态信息。

每条记忆都应该有来源、适用范围和更新方式。把“用户偏好简洁回答”当作稳定偏好是合理的;把上周的库存数量当作永久记忆则不合理。动态事实应优先通过当前数据源核验。

用工具为模型补上“感官”与“手脚”

工具让系统把外部世界的状态转为文本或结构化观察,并在授权下提供可由语言意图指示的“手脚”。工具结果进入模型上下文时,仍是由外部系统回填的被动输入;但当模型提出搜索、查询或读取状态的请求,客户端执行并回填结果时,整个系统正在进行受控的主动信息获取。这不是模型自身持续感知世界。

接入受控工具循环后,LLM 像一个梦游者(The Sleepwalker):从在语言中推演的“思考者”,变成能够提出下一步观察或行动意图的参与者。它不直接、持续地感知或操作世界;但系统可以依其请求主动取得外部信息。每一步仍须由受控系统接住、校验并执行。

上下文能带来已经掌握的信息,但现实会持续变化。最新订单状态、内部文档、代码测试结果、日程空档,往往不应只靠历史记忆或训练知识回答。

这时,模型可以生成调用工具的意图:例如搜索资料、读取文件、查询数据库、运行测试,或请求某个服务的受控操作。对于搜索、查询和读取,这意味着系统在主动采样新的外部信息;对于修改、提交和发送,则意味着系统在执行受控动作。模型提出候选调用;客户端或应用校验、执行并把结果带回上下文。

这条边界很重要。工具调用不是“模型直接伸手操作世界”,也不是模型拥有持续运作的感官;它是由模型提出候选意图、系统执行观察或动作、再将结果回填的受控接口。

工具为 LLM 接上可请求的观察与可指挥的手脚:工具将文档、数据库和即时状态转为文本或结构化结果;模型以语言意图请求系统获取信息,或对服务、文件与日程等现实环境采取受控动作。

互动课程的“大模型如何调用工具?”演示,展示了模型生成调用意图、客户端校验权限与参数、再把结果回填上下文的完整链路。

技能:让工具成为解决特定问题的方法

单个工具只告诉模型“能做什么”,例如查询订单、搜索文档或运行测试。在许多 Agent 系统中,**技能(Skill)**则告诉它“面对哪类问题时,为什么、何时、按什么顺序使用这些工具”。它把领域知识、判断步骤、工具适配关系、输入限制和验收标准组织成一套可复用的工作方法。

因此,技能不只是“调用几个工具的说明书”,也是用于解决特定问题的可复用推理与执行流程。比如处理退款咨询的技能,可以先判断问题是否属于退款范围,再读取适用政策与实时订单状态,检查是否需要人工审批,最后才起草回复或提出受控操作。技能由此引导模型不仅看到有哪些工具,也优先依据当前问题需要的材料,并避免跳过关键步骤。

没有技能时,LLM 仍可以从工具的名称、参数和自描述中推断用途,并尝试自行规划调用。这对简单、低风险的任务可能已经足够;但当工具很多、领域规则复杂或结果会影响他人时,模型更容易选错工具、遗漏关键核验、重复查询,或以低效的顺序推进任务。技能降低的不是模型“会不会调用”的门槛,而是把工具用对、用稳、用得有效率的难度。

技能通常以系统可检索的指令、文档或结构化规范保存,由客户端在任务需要时提供给模型。它不替代权限控制:即使技能建议调用某项工具,真正的执行仍应由客户端校验授权、参数与风险。

工具调用的可靠闭环

一个可靠的工具调用通常包含以下步骤:

  1. 模型根据任务与已有信息判断缺少什么。
  2. 它选择已声明的工具,并尝试生成符合参数约束的调用请求。
  3. 客户端检查权限、参数、成本与风险,必要时要求用户确认。
  4. 工具在受控环境执行,返回结果、错误或状态变化。
  5. 结果重新进入上下文;模型据此解释、继续下一步,或在目标达成时停止。

工具的名称、输入结构、返回字段和权限范围,都是上下文设计的一部分。一个只需查询订单的客服助手,不应默认拥有退款或删除记录的权限;一个可以运行测试的代码助手,也不应因此拥有发布生产环境的权限。

对于不可逆、高成本或影响他人的操作,系统还需要额外的防线:最小权限、参数校验、审计日志、限额,以及人工确认。模型生成的调用意图可以很有帮助,但它不应成为绕过责任边界的理由。

让模型发挥作用,而不是让它独自承担一切

上下文、人设、规范和工具并不只是“提示词技巧”。它们分别由应用系统分担不同职责:

  • 上下文提供当前任务的事实与目标;
  • 记忆保留仍然相关的决策与偏好;
  • 人设与规范约束工作方式和输出边界;
  • 工具在需要时取得新证据或执行受控动作;
  • 人负责目标设定、权限授予,以及高风险结果的最终判断。

这样设计的好处是,模型可以把力量用在它擅长的地方:读懂复杂材料、比较选项、把不完整信息组织成下一步建议;系统则不把事实更新、权限管理与责任承担误交给概率生成。

从人工补上下文,到模型主动寻找上下文

如果每轮对话都靠人手动复制资料、回忆历史、查找状态并补进提示词,效率很快会成为瓶颈。既然模型能根据已有上下文判断“下一步还缺什么”,能否让它主动请求需要的资料和工具?

答案是可以,但这不是让模型无边界地“自己做一切”。下一篇《LLM 的主动能力如何实现:从语言意图到受控执行》将讨论如何把这种主动性做成可观察的循环:模型如何发现信息缺口、选择下一步、调用受控能力、根据结果修正判断,以及系统如何设定停止条件、权限与人工介入点。

讨论