采样
temperature、top_p、top_k,以及可选的 seed。低 temperature 适合抽取、分类和代码;较高的值适合发散构思和创意写作。
应用与模型之间的契约:请求如何组织、输出如何被约束成机器可用的形式、模型如何调用工具,以及让整体保持可移植的那些 API 接口。
提示词技巧本身(zero-shot、few-shot 示例、思维链、角色设定)以模式目录的形式收录在模式中。
每个请求都带有一些旋钮,它们会重塑输出分布和输出契约:
temperature、top_p、top_k,以及可选的 seed。低 temperature 适合抽取、分类和代码;较高的值适合发散构思和创意写作。
max_tokens 限制生成量和花费;stop 序列让生成提前结束。两者改变的不只是成本,还有结果本身。
repetition、presence、frequency 惩罚;用 logit_bias 提升或禁止特定 token;用 logprobs 获取置信度信号;用 n 或 best_of 获取多个候选。
参数的支持情况和确切语义因服务商和运行时而异。这些设置与可复现性之间的关系,在非确定性中有深入讨论。
流水线需要的是 JSON 而不是散文。有两类技术可以做到:
按 schema 解析响应,失败时重新提问(即 Instructor 模式)。它适用于任何 API,包括托管服务,但每次失败的尝试都要付出延迟和 token 成本。
在每一步屏蔽非法 token,使得只可能产出符合 schema 的输出(Outlines、XGrammar、Guidance;已内置于 vLLM 和 SGLang,托管服务商则以 JSON schema 模式对外提供)。它保证结构,但语法合法的答案在语义上仍可能是错的。
不带 schema 的纯“JSON 模式”只承诺产出可解析的 JSON,而不是你要的那份 JSON;更好的做法是强制 schema,并在应用层再校验具体取值。
你描述可用的工具(名称、用途、参数 schema);模型输出一次结构化调用而不是散文;你的代码执行它,并把结果作为一条新消息返回;模型再带着真实数据继续。它本质上仍是产出受约束格式的下一个 token 预测,因此 schema 质量和工具描述决定了可靠性。把它包进“规划-执行-评估”的循环,就是智能体底层的机制;参见智能体模式。开放模型对它的支持程度和质量参差不齐,请在你的运行时上验证。
MCP 规范了助手访问外部系统的方式:宿主应用运行 MCP 客户端,连接到一个个 MCP 服务器,每个服务器通过统一协议在本地或远程暴露工具、数据资源和提示词。这样就不必为每个应用、每项服务各写一套定制集成,协议的任一侧都只需写一次。一个宿主可以同时挂接多个服务器。
自托管引擎和网关会模仿主流服务商的 HTTP API,因此现有 SDK 只要改一下 base URL 就能工作。正是这一点让应用可以在托管后端和自托管后端之间保持可移植。
兼容性是一个程度问题,而不是一种保证:参数覆盖范围和功能支持因后端而异,因此在更换端点之前,请实测你所依赖的那些具体功能。