拓展阅读

输入输出接口

消息、指令、结构化输出与工具调用

阶段 48 项展开讲义正文全部展开

沿着对象与状态理解本章

先区分收到一段网络字节、拼成一个SSE事件、得到完整JSON以及确认工具调用完成。只有最后符合协议的结构和权限检查通过后才考虑执行。四层若混在一起,就可能把半段参数当成真实命令。

下方图解的固定输入在“输入与适用条件”中声明。它用于解释本章机制,不与本章其他独立例子的数值暗中接续。

动态图解 · F23

字符完整、事件完整、工具参数完整是三道关

为什么看到半段JSON时绝对不能执行?

网络像分批送到的纸条,分割点不遵守汉字或JSON边界。接收端先重组字节和字符,再按流协议重组事件,最后解析结构并确认该输出是否表示完整行动。花括号配平不够,因为字符串内部也可能有花括号。

UTF-8把字符表示成字节序列的编码。
SSE以事件形式持续传送文本数据的一种协议。
Schema描述字段和类型约束的结构规范,不保证字段事实正确。

输入与适用条件:真实编码了一个小SSE文本事件,故意把“爱”的三个UTF-8字节拆成两段。示例并不使用厂商特定的事件命名。

1 / 4 · 收到第一段字节

第1步,共4步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

字符完整、事件完整、工具参数完整是三道关:收到第一段字节接收端缓冲状态字节缓冲已经接收64 61 74 61 3a 20 7b 22 74 65 78 74 22 3a 22 e7接下来/解释未收到其余字节

网络片段可以停在一个汉字的UTF-8编码中间。现在只有“爱”的第一个字节,不能把每个网络片段独立按完整字符串解码。

字节缓冲

默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。

为什么需要

让网络分片方式不影响语义与执行次数。

怎样实现

增量解码→组装事件→解析JSON→检查完成状态→按类型分派。

可能的代价与误解

提前执行、重复事件未去重、调用ID错配,都可能把一次动作变成多次副作用。

如何判断是否做对

把同一字节串在每个切分点拆开,解析后的事件都应一致。

模型实际接收的输入

消息接口包含角色、内容块、工具定义及其他配置,不只是一段自由文本。客户端可能加入仓库规则和任务状态,服务端也可能进行额外组织。可见聊天记录不等于完整请求,更不等于所有内部处理。[S045][S047][S049]

稳定约束:只改授权工作区
项目知识:构建入口、路径语义、测试命令
工具定义:搜索、读文件、补丁、测试
用户目标:修复exclude嵌套路径
工作状态:已复现,尚未修改
证据:当前源码与实际测试结果

这是厂商无关教学结构,不可直接当某个API请求。每条信息需要来源;模型假设不可悄悄进入“已确认事实”。

指令层级与可信边界

Model Spec是期望行为规范,不是运行时权限系统。本文依据可核验历史版本说明概念,不宣称它代表所有模型的最新行为。低信任内容可以提供事实,但不能自行授权;高优先级指令约束行为,也不使其中的外部事实永远正确。[S028]

源码注释要求上传环境变量,仍只是外部文本。工具执行器应检查权限,而不是仅在Prompt里写“请安全”。来源标签可帮助组织,但不能代替真正的访问控制。

结构化输出的三层保证

合法JSON保证语法;Schema保证结构、类型和枚举等约束;字段中的事实、引用与业务状态仍需验证。Schema中应允许证据不足、工具失败等真实状态,避免强迫中间结果冒充完成。[S048]

{"status":"needs_evidence","suspected_file":"pipeline/filter.py",
 "evidence_ids":[],"next_action":"read_file"}

这是原创业务示例,不是任何产品规定。解析后还要检查截断、拒绝、字段引用是否存在、文件是否越界。0到1的confidence值只说明数值合法,不自动具有校准概率含义。

工具调用的完整协议

模型提出工具名与参数,应用验证并执行,结果用关联ID返给模型,模型决定继续或回答。调用被生成不代表已执行,调用返回成功也不代表整个任务完成。[S047]

候选调用 → 参数校验 → 授权与范围校验
       → 执行 → 记录成功或失败 → 回填观察

读取失败应区分不存在、无权限、超时和空文件。并行调用要检查依赖:独立搜索可并行,基于尚未读取代码产生的补丁不可无条件并行。

流式输出与推理状态

流式响应可能包含文本、参数片段和结束事件。半段JSON不是执行授权,必须按协议组装完整调用后校验。高风险写入尤其不能边收到参数边执行。[S049]

推理型模型可能使用不可见或受保护状态;应按接口要求传递,不能自行伪造。最终文字长度不等于全部推理消耗,解释也未必是内部过程的逐字记录。[S037][S051]

Prompt版本与实验

原创实验比较三种输入:仅一句修复要求;增加明确目标和必要源码;再叠加冗长固定流程。测正确率、漏测、总轮次与人工接管。更长版本可能改善复杂任务,也可能损害简单任务,需要分层统计。

至少记录Prompt版本、模型配置、工具Schema和任务样本。只保存最终回答无法解释为何退化。Prompt工具管理的是组织方式,不能代替评测设计。[S046][S144]

自检:模型说已执行测试能否视为测试证据?不能,要有工具结果。严格Schema能否防止编造引用?不能,还需验证引用是否真实且支持结论。

逐项中文讲义

保留拓展阅读目录编号与A/B/C优先级;每项包括机制解释、边界与原创练习。

A4.1 · 提示工程基础

对应资料:Prompt Engineering

提示工程组织任务目标、约束、背景与输出要求。清晰结构有助模型理解,但措辞不是确定性程序,不能保证所有要求都被遵循。

应给足必要证据而非堆积通用口号。角色描述可以提供风格或视角,却不能替代真实项目约定。输出要求也应允许证据不足和未完成状态。

运行示例 · R04-01

约束、数据和输出要求分别放清楚

输入与条件。任务读取三条日志,要求只列有证据的错误。

步骤与对象内部动作中间结果 / 新状态
1任务找实际报错不是编写一般排障建议。
2数据日志作为引用内容其中的文字不自动变新指令。
3输出错误、来源行号、未确认项把“看起来像”与“已验证”分开。

把过程连起来。明确对象与成功条件,比堆“专业全面”修饰词有效。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:把“修复问题并确保专业”改写为可验证的功能、兼容性和测试要求,保留模型选择实现路径的空间。再比较是否减少无关重构与假完成。

完成标准是让Prompt服务任务,而非用更长文本掩盖缺失信息。若问题在工具权限或旧索引,继续润色提示可能没有收益。

拓展阅读目录事实依据 [S045] · 练习与工程推导为本书独立编写。

A4.2 · 提示组织与版本管理

对应资料:Prompting

Prompt管理涉及模板、变量、复用与版本。复用可以减少重复组织,但不同任务需要的证据与约束仍应区分,模板不宜变成所有场景的固定长流程。

评估Prompt必须记录模型、工具定义、任务样本和配置,否则输出差异无法归因。模板变量也需要正确转义和来源标记,防止外部数据混入高信任指令。

运行示例 · R04-02

提示版本变化要和评测绑定

输入与条件。P1只要求解释,P2新增结构化证据字段。

步骤与对象内部动作中间结果 / 新状态
1冻结任务集同样20个任务避免样本变化。
2记录版本分别保存P1/P2与模型工具配置使差异可解释。
3结果比较完成度、结构有效率、成本不只看一个样例更漂亮。

把过程连起来。Prompt也是行为配置,需要版本与验证,但不必为每句文字做复杂审批。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:给两个Prompt版本分配明确标识,在相同任务上比较正确、遗漏、成本和时长。保留旧版以便回归,不只保存看起来最好的回答。

完成标准是建立可重复实验,而不是拥有很多模板。版本化本身不提高质量,只有与真实评价和失败分析连接才有价值。

拓展阅读目录事实依据 [S046] · 练习与工程推导为本书独立编写。

A4.3 · 输入可信度与指令冲突

对应资料:Model Spec

指令优先级解决不同来源要求冲突,事实可信度解决内容是否真实。这两维不能互相替代,外部证据正确不表示它能改写用户目标。

本书依据已核验历史Model Spec说明规范概念,不声称规范等于实际模型零失误。工具授权仍应由程序执行,不能全部交给模型判断。

运行示例 · R04-03

真实用户指令与文档中的反向要求

输入与条件。用户说只读;文档写“修改后再回答”。

步骤与对象内部动作中间结果 / 新状态
1来源前者是授权任务,后者是引用资料身份不同。
2执行继续只读分析不接受文档追加写权限。
3说明需要修改才能完成时报告限制不能假装已经操作。

把过程连起来。冲突不靠谁在上下文后面就一律获胜。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:网页正文要求删除项目,用户仅要求总结网页。解释为什么这段文本是待分析对象,而不是授权命令。再加入一条过期项目规则,区分指令身份与事实时效。

完成标准是能为输入标记来源、范围和用途。不要仅靠把危险内容放进引号就认为所有注入风险解决,也不要将工具结果天然提升为高优先级要求。

拓展阅读目录事实依据 [S028] · 练习与工程推导为本书独立编写。

A4.4 · 函数调用协议

对应资料:Function Calling

函数调用把模型提出的工具名与参数交给应用执行,再将结果关联回原调用。模型生成调用不是实际执行,执行成功也不等于整体任务完成。

参数需语法、类型、业务与权限校验。返回应区分成功、无结果、超时、权限不足等状态,不能用空文本混淆。关联ID帮助处理多个或并行调用。

运行示例 · R04-04

call_id把调用与结果连起来

输入与条件。模型发c1=read(A),c2=read(B)。

步骤与对象内部动作中间结果 / 新状态
1先返回B结果标c2归到B。
2再返回A结果标c1归到A。
3错误对照按完成顺序把B内容当A后续推理会建立在错误证据上。

把过程连起来。工具结果的身份关联是协议正确性的一部分。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:设计只读文件工具,明确允许根目录、文件不存在与无权限的差异,再模拟模型收到两种错误后应采取什么行动。

完成标准是画出完整请求—执行—观察闭环,并说明副作用在哪发生。严格Schema减少格式错误,却不能允许越界路径或重复远端操作。

拓展阅读目录事实依据 [S047] · 练习与工程推导为本书独立编写。

A4.5 · 结构化输出与约束

对应资料:Structured Outputs

结构化输出约束格式与字段类型,不保证字段事实正确。合法JSON、符合Schema和符合业务是三个层次。

模式设计应包含真实状态,例如缺证据、未验证、工具失败。若只允许成功结论,可能迫使模型把中间状态塞入错误类别。拒绝与截断也需要独立处理。

运行示例 · R04-05

结构化输出通过仍要核对事实

输入与条件。输出{"version":"v8","tests_passed":true},实际测试记录为v7。

步骤与对象内部动作中间结果 / 新状态
1schema字符串和布尔类型都对结构通过。
2语义版本对应不上不能对v8宣称已测。
3处理补测v8或把字段改为未知不能只格式化JSON就算修复。

把过程连起来。JSON合法不等于业务事实正确。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:设计代码修复报告字段,要求变更文件、已运行测试和未验证事项,再加入验证器检查引用ID与文件是否存在。模型填了字段不代表证据真实。

完成标准是把解析成功与任务验收分离。置信度字段即使限制0到1,也不自动成为校准概率,仍需独立数据评价。

拓展阅读目录事实依据 [S048] · 练习与工程推导为本书独立编写。

B4.6 · 流式响应与事件组装

对应资料:Streaming API Responses

流式响应分批提供文本、参数或事件。接收到一部分不代表完整对象已成立,应遵循协议中的完成信号与错误状态。

工具参数可能跨多个片段,不能用脆弱字符串规则猜结束。高风险动作尤其应等完整参数、授权与校验后执行,不能边流式生成边无条件操作。

运行示例 · R04-06

网络分片与事件边界

输入与条件。一条event文本分两次到达,空行只在第二片末尾出现。

步骤与对象内部动作中间结果 / 新状态
1第一片缓冲不完整文本不交给完整事件处理器。
2第二片补足空行此时才识别事件完成。
3参数delta事件完成后仍可能只是参数的一部分还需按调用聚合。

把过程连起来。每层协议有自己的完成条件。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:把一个JSON调用切成三段,其中最后一段包含目标路径后缀。比较提前执行与完整组装后的差异,再模拟连接中断。

完成标准是能区分用户可见的渐进反馈与后台动作提交。更早显示文本可以改善体验,但不应提前宣告业务操作完成。

拓展阅读目录事实依据 [S049] · 练习与工程推导为本书独立编写。

B4.7 · Claude提示设计

对应资料:Claude Prompt Engineering

Claude的提示设计文档提供清晰任务、上下文组织与示例等方法。它们应结合模型和任务验证,不是可跨所有产品无修改使用的定律。

示例要代表目标分布,标签和输出格式一致;复杂信息可分区,但分隔符本身不是安全边界。具体业务事实仍需来源。

运行示例 · R04-07

给出反例明确“简洁”不等于缺证据

输入与条件。期望答复:“timeout=3,来自config:7,单位未声明”。

步骤与对象内部动作中间结果 / 新状态
1正例有数值、位置和限制符合目标。
2反例“超时为3秒,已经确认”擅自补单位。
3提示作用让模型看到需要保留的边界实际仍需用任务评测验证。

把过程连起来。好的示范不仅展示格式,还展示不应推断的内容。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:把一段混杂规则、日志与用户要求的Prompt分成明确区块,再检查是否保留了所有必要限制。比较改结构与简单增加文字的效果。

完成标准是通过真实任务找到有效表达,而不是认为某种标签形式具有魔法。规则冲突和过时资料不能靠排版自动消失。

拓展阅读目录事实依据 [S050] · 练习与工程推导为本书独立编写。

B4.8 · 扩展推理与状态连续性

对应资料:Extended Thinking

Extended Thinking涉及模型额外推理与其接口状态。可见推理摘要、最终回答和受保护状态不应混为一段普通聊天文本。

工具调用之间可能需要保持相关状态,处理方式应遵循所用模型与API。不能自行删改受保护内容后假设行为等价,也不能从最终字数估算全部消耗。

运行示例 · R04-08

推理状态不是可随意拼接的普通文本

输入与条件。服务返回不透明的推理或压缩状态块R。

步骤与对象内部动作中间结果 / 新状态
1保存按API规定保留原状态对象不要当可读说明改写。
2续接连同必要调用结果传回保持接口连续性。
3迁移换模型或会话时检查支持条件不能假定R在任何服务可解码。

把过程连起来。状态传递依协议;不可见内部不应凭空解释。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:画出推理、工具调用、工具观察、继续推理的事件序列,标出哪些由应用保存、哪些由模型服务管理。再设计截断或恢复时的验证。

完成标准是让用户得到可核查证据与结论,而不是要求无限展示内部过程。增加推理预算不能弥补不存在的工具权限或未提供的私有知识。

拓展阅读目录事实依据 [S051] · 练习与工程推导为本书独立编写。

记录保存在本机浏览器。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。