TRAE 系统提示过大问题,这个系统提示是花的token是算用户的还是你们的

TRAE 系统提示过大问题
TRAE 系统提示优化方案

一、问题是什么

TRAE 每次调用大模型,会拼一个系统提示发给模型。这个系统提示里有技能列表、用户规则、MCP工具描述、记忆文件。

我们测了一下,这个系统提示现在大概 18000 token。

为什么 18000 token 是个问题:

大模型有个特性叫 “lost in the middle”(中间遗忘):上下文越长,模型对中间内容的记忆力越差,只有开头和结尾记得牢。这是 Transformer 架构的固有特性,所有大模型都有。

18000 token 的系统提示,加上用户对话内容(可能又几万 token),总上下文很快就到 10 万+。在这种长度下,模型会:

  • 遗忘中间的规则(比如安全红线)
  • 只记得开头和结尾
  • 输出质量下降,出现格式错误、需求遗漏、重复输出

简单说:系统提示太大,模型变蠢。

二、问题出在哪

系统提示 18000 token,其中 12000 token 是可以优化的。具体四个地方:

  1. 技能列表——70个全量描述

现状:系统提示里列了所有技能的完整描述,包括技能名、详细说明、触发条件、用法说明。每个技能 50-100 字,70 个加起来约 3500 token。

问题:用户可能就问个简单问题,70 个技能的完整描述也全带上。模型根本不需要知道 PPT 技能怎么用,但这 3500 token 已经占位了。

  1. 用户规则——不分场景全量加载

现状:用户配置的所有规则(CLAT规则、大任务拆解、SoloCoder、企业级v5.0等),不管用户当前在干啥,全部加载到系统提示。约 9000 token。

问题:用户在写代码时,"大任务拆解规则"用不上;用户在做架构设计时,"代码生成规范"用不上。但框架不区分,全塞进去。

  1. MCP工具——43个全量描述

现状:43个MCP工具(Playwright 33个 + Memory 9个 + Exec 1个)的完整参数说明全量注入。约 1700 token。

问题:用户问代码问题,33个Playwright浏览器操作工具的参数说明也带上,完全无关。

  1. Memory——不相关也全量注入

现状:user_profile.md、project_memory.md、topics.md 三个文件全文注入。约 800 token。

问题:用户问代码问题,投资偏好、AI小说项目进度也塞进去,跟当前任务完全无关。

三、怎么改

改法1:技能列表只放名字,不放完整描述

改前:
系统提示里有70个技能的完整描述,3500 token。
模型每次请求都看到这70个技能的详细说明。

改后:
系统提示里只放70个技能的名字,350 token。
模型决定用某个技能时,再把那个技能的完整描述加载进来。

效果:省 3150 token。

改法2:规则按任务类型过滤

改前:
用户规则不分场景,全部9000 token加载。
不管用户是写代码还是做设计,所有规则都带上。

改后:
先判断用户当前任务类型(编码/设计/测试/通用),
只加载该类型相关的规则。
比如用户在写代码,只加载"代码生成规范"和"安全红线"。

效果:9000 token 降到 2500 token,省 6500。

改法3:MCP工具描述懒加载

改前:
43个MCP工具的完整参数说明全量加载,1700 token。

改后:
系统提示里只写"已启用Playwright/Memory/Exec三个MCP服务"。
模型实际要调用某个工具时,再加载那个工具的参数说明。

效果:1700 token 降到 50 token,省 1650。

改法4:Memory按相关性检索

改前:
三个Memory文件全文注入,800 token。
不管用户问什么,投资偏好、项目进度、历史会话全带上。

改后:
根据用户当前问题,检索相关的Memory片段。
用户问代码 → 只带项目技术约束
用户问文档 → 只带相关历史会话
用户问简单问题 → 不带Memory

效果:800 token 降到 200 token,省 600。

改法5:加系统提示体积上限

改前:
系统提示多大都直接发,没有上限控制。

改后:
系统提示构造完,检查token数:
超过8000 → 记日志告警
超过12000 → 自动裁剪非必要部分,压到8000以下

效果:防止系统提示无限膨胀,有兜底。

改法6:核心安全规则放系统提示最后

改前:
“禁止硬编码密钥”"修改前必须备份"这些核心安全规则,
埋在9000 token规则的中段,模型读到后面已经忘了。

改后:
系统提示最后单独放一个"核心规则强化区":

  • 禁止硬编码密钥
  • 修改前必须备份
  • 不确定时标注"需人工验证"
  • 命令必须匹配操作系统

利用大模型的近因效应:对末尾内容记忆更强。

效果:不省token,但安全规则的执行率提升。

四、改完什么效果

部分 改前 改后 省了
技能列表 3500 350 3150
用户规则 9000 2500 6500
MCP工具 1700 50 1650
Memory 800 200 600
平台基础 3000 3000 0
体积兜底 无 有 保险
核心规则位置 中间 最后 执行率提升
合计 18000 6100 省11900

五、建议做的顺序

顺序 改哪个 工作量 省多少
1 核心规则放最后 半天 不省token,但约束力提升
2 MCP工具懒加载 1天 1650
3 体积上限兜底 1天 保险
4 技能列表瘦身 2天 3150
5 规则按场景过滤 3天 6500
6 Memory按需检索 2天 600

前三个一周内能上线,立刻省 1600 token + 有兜底。全部做完省 12000 token。

这个提示token肯定是算在用户身上的

那就应该优化改进

不可能的兄弟
多的不说,你AI生成的改进方案就不行,SKILL只放一个名字的意义是什么,只有名字AI根本不知道你的SKILL是干什么的

要是行,我是不是能进字节了?而不是在这发帖 :innocent:

参考嘛 :wink:

系统提示里每个技能只放"名字+一句话摘要",约20 token/个,70个共1400 token。
摘要告诉AI"这个技能是干什么的、什么场景用",足够AI判断要不要调用。
AI决定用某个技能时,框架再把那个技能的完整描述(参数、示例、注意事项)加载进来。

举例:
改前:
“PPT Page: Create single-file HTML presentation galleries as a vertical, single-column feed of capped-width slide cards. Use for turning slide outlines, articles, screenshots, images, or existing deck content into a scrollable web PPT with below-card captions, a global page-gap/caption toggle, hidden zoom controls, fullscreen presentation shortcuts, and hover/focus-only page badges.”
(约110 token)

改后:
“PPT_Page(生成单文件HTML幻灯片)”
(约10 token)

效果:3500 token 降到 1400 token,省 2100。

注意:不能只放名字。必须放一句话摘要,让AI知道这个技能是干啥的、什么时候该用。只放名字AI没法判断要不要调用。

改法2:规则按任务类型过滤

改前:
用户规则不分场景,全部9000 token加载。
不管用户是写代码还是做设计,所有规则都带上。

改后:
先判断用户当前任务类型(编码/设计/测试/通用),
只加载该类型相关的规则。
比如用户在写代码,只加载"代码生成规范"和"安全红线"。

效果:9000 token 降到 2500 token,省 6500。

改法3:MCP工具描述精简——名字+一句话摘要常驻,完整参数按需加载

改前:
43个MCP工具的完整参数说明全量加载,1700 token。
每个工具带完整参数定义:参数名、类型、是否必填、说明。

改后:
系统提示里每个工具只放"名字+一句话摘要",约15 token/个,43个共650 token。
摘要告诉AI"这个工具能干什么"。
AI决定调用某个工具时,框架再把那个工具的完整参数说明加载进来。

举例:
改前:
“playwright_navigate: Navigate to a URL. Parameters: url (string, required) - The URL to navigate to…”
(约60 token)

改后:
“playwright_navigate(导航到指定URL)”
(约12 token)

效果:1700 token 降到 650 token,省 1050。

改法4:Memory按相关性检索

改前:
三个Memory文件全文注入,800 token。
不管用户问什么,投资偏好、项目进度、历史会话全带上。

改后:
根据用户当前问题,检索相关的Memory片段。
用户问代码 → 只带项目技术约束
用户问文档 → 只带相关历史会话
用户问简单问题 → 不带Memory

效果:800 token 降到 200 token,省 600。

改法5:加系统提示体积上限

改前:
系统提示多大都直接发,没有上限控制。

改后:
系统提示构造完,检查token数:
超过8000 → 记日志告警
超过12000 → 自动裁剪非必要部分,压到8000以下

效果:防止系统提示无限膨胀,有兜底。

改法6:核心安全规则放系统提示最后

改前:
“禁止硬编码密钥”"修改前必须备份"这些核心安全规则,
埋在9000 token规则的中段,模型读到后面已经忘了。

改后:
系统提示最后单独放一个"核心规则强化区":

  • 禁止硬编码密钥
  • 修改前必须备份
  • 不确定时标注"需人工验证"
  • 命令必须匹配操作系统

利用大模型的近因效应:对末尾内容记忆更强。

效果:不省token,但安全规则的执行率提升。
:wink:

别发AI文了。。。看的头痛