跳到主要内容

第 1.3.1 节:理解模型、Token 和上下文如何影响一次调用

模型、Token 和上下文只有拆成可执行步骤,才容易复核、排错和交接。完成本节后,你应该能够按顺序说明模型、Token 和上下文的触发、处理、复核、记录和兜底步骤。

本章要解决什么问题​

AI Agent(人工智能体)项目的底层依赖是模型调用。很多项目早期看起来失败,是因为没有先理解模型调用的几个基本约束:

本章不深入某个 SDK(软件开发工具包)的每个参数,而是建立工程底座:你需要知道模型调用如何进入系统设计,如何做上下文预算,如何保护 API Key(接口密钥),如何设计 Mock(模拟)模式,以及如何避免业务代码被某一家模型供应商绑死。

学习目标​

读完本章后,你应该能够:

  • 解释模型、Token(文本计量单位)、上下文窗口之间的关系。
  • 判断哪些资料应该进入 Prompt(提示词),哪些应该进入 RAG(检索增强生成)。
  • 说明 API Key(接口密钥)为什么不能写进代码和书稿。
  • 设计 Mock(模拟)模式和 Real Provider(真实模型供应商)模式。
  • 理解 Responses API(响应接口)、工具调用和 Agents SDK(智能体软件开发工具包)的定位。
  • 给项目设计一个最小模型适配层。

为什么要学这一章​

很多读者第一次做 Agent 项目,会把注意力放在“模型回答得聪不聪明”。但真实项目里,模型调用更像一个外部服务:它会花钱、会变慢、会超时、会限流,也可能返回不符合系统契约的结果。

如果你不了解 Token(文本计量单位)和上下文窗口,就容易把企业资料、历史对话、工具结果全塞进 Prompt,最后成本高、延迟长、回答还不稳定。如果你不了解 API Key(接口密钥)管理,就可能把密钥写进文档、截图、日志或配置示例里。如果你把业务代码绑死在一家模型供应商上,供应商涨价、限流或接口变化时,整个客服工作台都会受影响。

所以本章不是教一次模型调用,而是教读者建立模型调用底座:上下文可控、密钥安全、供应商可切换、输出可校验、失败可兜底、成本可复盘。

业务场景​

一个客户要求:

我们有几百份产品资料,希望用户问什么都能直接回答。你把资料全部发给模型不就行了吗?

这个需求暴露了典型误区。模型一次调用能接收的上下文有限,即使上下文很大,也不代表应该把所有资料塞进去。原因包括:

  • 成本会变高。
  • 延迟会变长。
  • 资料越多,模型越难抓住真正相关的内容。
  • 过期资料可能污染答案。
  • 不同用户可能没有权限查看同一批资料。

正确做法通常是:先建立资料处理和检索流程,再把与问题最相关的片段放入上下文,让模型基于这些片段生成回答。

这就是后面 RAG 章节要解决的问题。本章先把底层概念讲清楚。

真实岗位会怎么问​

模型基础在面试中通常不会以“解释定义”的方式出现,而是和成本、稳定性、安全、供应商切换放在一起问。

真实问法背后考点回答方向
公司资料很多,为什么不全部放进上下文?Token(文本计量单位)、上下文预算、RAG讲成本、延迟、相关性、资料更新和权限,说明只放当前任务相关内容。
模型调用超时,客服用户怎么办?外部服务治理讲超时、有限重试、降级、转人工和日志记录。
API Key(接口密钥)怎么管理?安全和交付规范讲环境变量、安全配置、日志脱敏、密钥轮换,不进入书稿和仓库。
为什么要做模型适配层?供应商锁定和维护讲业务层依赖统一契约,供应商、模型名、重试、日志放在适配层。
大上下文模型出现后,RAG 还有必要吗?架构判断仍然需要资料选择、权限、更新、引用和质量评估。

贯穿项目:客服工作台里的模型底座​

在“企业客服知识库与工单 Agent 工作台”里,模型不是一个孤立按钮,而是贯穿多个环节:

环节模型做什么不能让模型做什么
意图识别判断用户是咨询政策、查订单、投诉、退款还是闲聊不能凭感觉确认真实订单状态。
问题改写把用户口语问题改写成适合检索的查询不能把用户没说的事实补进去。
答案生成基于检索片段和工具结果组织回复不能脱离来源编造政策。
工具选择判断是否需要查订单、建工单或转人工不能绕过系统权限直接执行动作。
总结复盘总结一次会话的问题、处理动作和风险不能隐藏失败和人工介入原因。

所以本章的重点不是“怎么调用一次模型”,而是设计一个能被客服系统长期使用的模型调用底座。

新手为什么会卡住​

常见误解项目后果正确理解
上下文窗口越大越好成本高、延迟高、答案反而混乱上下文要做预算,只放和当前任务相关的内容。
模型知道公开资料,所以不用知识库回答不符合企业最新政策企业私有资料必须通过 RAG 或工具进入上下文。
接一个供应商就够了供应商限流、涨价或不可用时系统被锁死业务层要通过模型适配层调用供应商。
Prompt 写清楚就不会失败仍可能超时、限流、输出无效模型调用要有超时、重试、校验和降级。
把 API Key(接口密钥)写在示例里更方便泄露密钥和客户风险只展示变量名,真实值放安全配置。

继续学习​