fallback 会盖掉平台提示词:system、空数组和 systemAppend 的差别

system 没传,和传入 [],在 Tansr 里不是一回事。默认 fallback 下,没传才使用平台 systemPrompt;传入 [] 会得到没有业务段。systemAppend 两种情况下都还在,它不参与这次替换。

自己拼模型请求时,漏传系统提示词通常意味着「沿用默认」。这里的空数组是一次明确的业务段选择。SDK 接手选择和拼接;调用方仍要决定传不传 system。

六种组合

策略 system 平台已有角色时的业务段
fallback 未传 平台段
fallback 非空段 只有代码段
fallback [] 无业务段
prepend 未传 平台段
prepend 非空段 平台段然后代码段
prepend [] 平台段

session.applicationPrompt 只有策略和 P/S 来源,没有正文,也不统计 systemAppend。资料站明确写出的两处是:fallback 且显式 [] 时来源为 sdk;prepend 且平台段存在、SDK 为 [] 时来源为 platform。旧 bundle 没有策略时按 fallback。控制台里「SDK 传入时保留平台提示词」对应 prepend。

顺序固定为:选出的业务段,systemAppend,再是该入口实际注册的工具、Skills 或 MCP 指南。不要把平台正文再贴进 system,SDK 不去重。prepend 不强制模型服从,也不是工具权限。

省略 system、只加宿主说明的单轮形状如下。这是资料站中的调用形状,本文没有复跑。令牌由后端换发,Electron 放在主进程。

ts 复制代码
import { query } from "@tansr/sdk";

const token = process.env.TANSR_APP_USER_TOKEN;
if (!token) throw new Error("缺少短期 app_user 令牌");

const run = query({
  token,
  baseUrl: "https://api.tansr.com",
  prompt: "查询订单前,需要我提供什么信息?",
  systemAppend: [{ text: "输出纯文本,避免依赖网页交互控件。" }],
  tools: { builtin: [] },
});

平台段在下一轮开始前刷新,当前轮不换。刷新失败时不调用模型,事件种类是 application_prompt_refresh_failed。能力自 @tansr/sdk 0.13.0 起提供;runAgent 不拉取这套 bundle。真值表见应用系统提示词与 SDK 拼接策略。

相关推荐
1m5555555544 分钟前
RAG 工程实战(五):正确知识已经进入 Prompt,为什么大模型还是会答错?
后端·面试
CoderYanger44 分钟前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc
易小尊44 分钟前
我的模型在 65% 以上时准得可怕,在 50% 时像在掷硬币
后端
iOS开发上架哦1 小时前
iOS应用耗电测试:使用Energy Log、Keymob和Instruments进行性能监控与能源消耗分析
后端·ios
peach1 小时前
大模型和传统编程:同为程序,差异不在硬件,在"逻辑从哪来"
前端
ALONE阿龙太原微码1 小时前
微信小程序包体积优化:2MB 到 400KB 的实操记录
前端
掘金挖土1 小时前
前端手摸手跑路之 AI 应用开发(十一)
前端·后端
用户9888321871741 小时前
从“限流数字”到可维护策略:ASP.NET Core 固定窗口限流的落地边界
后端
创了么OPC1 小时前
小程序能收款了,对公户还没开?独立开发者的交付闭环踩坑②
前端·微信小程序