TuBrief
구독 채널
비디오
커뮤니티

如何拆分庞大提示词以减少智能体Token浪费

TuBrief 편집팀
2026년 3월 14일
0
Computing/Software

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

中文한국어EnglishEspañolالعربيةहिन्दीDeutschFrançaisPortuguêsРусскийBahasa Indonesia日本語

관련 영상

▲ 社区会议:如何创建和发布技能1:03:28

▲ 社区会议:如何创建和发布技能

Vercel

커뮤니티의 다른 글

사내 시스템에 llm api 붙일 때 마주하는 현실적인 한계와 대응법

2026년 9월 13일

레거시 백엔드에 GPT-6 Astra 붙일 때 예산 승인과 보안 통과를 먼저 끝내는 법이 있습니다

2026년 9월 13일

에이전트끼리 대화하다 6천만 원 청구서가 나오는 이유

2026년 9월 13일

사내 RAG 벡터 검색에 Okta 권한 필터를 직접 거는 방법

2026년 9월 13일

브라우저 에이전트에게 내 구글 계정을 통째로 넘기면 안 되는 이유

2026년 9월 12일

Apple Won the AI Race

2026년 9월 12일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

如何拆分庞大提示词以减少智能体Token浪费

将各种指南和工具全部塞进一个系统提示词的单体架构很快就会露出破绽。只要对话稍微变长,智能体就会忘记写在提示词中间的指令。由于每次请求都要重复传输数万个Token,推理成本急剧上升,而且用户必须等待很长时间才能看到第一个Token生成。

在实际开发中,我们通过基于 agentskills.io 开放规范的分阶段上下文加载架构来解决这个问题。这种方法只在需要时调用适当的技能,从而节省Token。

拆分为独立Markdown技能文件的标准

单体系统提示词应当根据领域边界、工具执行权限和执行频率进行拆分。在单个会话中同时激活的技能应保持在3个以下,以防止在进行嵌入相似度搜索时技能之间发生冲突。

在拆分出的技能文件顶部,应编写只使用连字符、英文字母小写和数字的标识符,以及明确说明操作目的的YAML前言(Frontmatter)。

`yaml

name: backend-api-generator
description: Generates Spring Boot REST API controller and service boilerplate code. Use when the user asks to create API endpoints, build REST controllers, or define DTO mappings for backend services.
when_to_use:

  • User requests new REST API endpoint creation
  • User provides database schema and asks for controller layer implementation
  • Do NOT use for: database migration SQL, frontend component generation
    allowed-tools:
  • read_file
  • write_file
  • list_directory
    effort: medium

`

创建分阶段加载架构的过程非常简单。

  • 在初始化智能体时,仅将目录中所有技能的YAML前言元数据(每个技能约100个Token)加载到提示词中。
  • 当用户请求到来时,通过比较技能描述与语义相似性,仅动态加载所需的技能正文。
  • 在执行阶段,根据正文指令运行所需的辅助脚本,并将结果值包含在上下文中。

将常驻占用 15,000 到 30,000 个Token的单体架构改为 SKILL.md 延迟加载架构后,初始Token开销可减少 90% 以上。根据Anthropic内部测试数据,p95延迟时间可缩短 12% 至 40%,每个对话的平均Token消耗量可减少 29.6%。

防止上下文污染的内部约束条件

当多个技能被链式加载时,前一个技能的指令经常会留在会话中并扭曲后续任务。对于高风险检查或产生大量日志的任务,必须在YAML前言中加入子上下文分支(context: fork)设置,以便在进程级别进行隔离。

`yaml

name: security-vulnerability-auditor
description: Audits backend source code for OWASP top 10 security flaws. Use when auditing code security or checking for SQL injection vulnerabilities.
context: fork
model: claude-sonnet-4-20250514
effort: high

`

明确定义输入输出数据契约(Data Contract)的工作也不可或缺。

  • 在YAML元数据中声明参数结构体和允许的工具列表(allowed-tools),以防止任意的Bash执行或无节制的网络调用。
  • 在正文中明确指定不带Markdown包装的纯JSON格式输出模式规则。
  • 限制指令,使其仅向对话会话返回最终结果。

`markdown

Output Schema Contract

All responses must strictly adhere to the following JSON structure without markdown wrapping:
{
"status": "SUCCESS" | "FAILED",
"generated_files": [
{
"path": "string",
"content": "string"
}
],
"error_message": "string | null"
}

`

隔离为子进程可以防止工具调用日志倾倒到主会话中。由于主对话会话保持清洁,子智能体之间传输数据时出错的概率也会降低。

设计拦截无限循环的防御代码

如果需求含糊不清或工具调用错误重复出现,智能体会陷入无限重试循环。这会导致在短短几分钟内数十美元的API费用化为乌有。如果在技能文件正文中加入分阶段静态验证检查清单(Verification Checklist),智能体就能在完成任务前自行执行验证。

`markdown

Execution & Self-Testing Protocol

Before declaring the task finished, you MUST sequentially execute the following verification checklist:

  1. [Pre-check] Verify that all required input parameters are present. If mandatory arguments are missing, STOP immediately and ask the developer for input.
  2. [Generation] Write the requested implementation code.
  3. [Syntax Verification] Check the written code for missing imports, unresolved symbols, and syntax errors.
  4. [Self-Correction] If a syntax error is identified, attempt correction ONCE. Do not re-run the file write tool more than twice for the same error.

`

编写物理中断循环的断路器(Circuit Breaker)的方法也很简单。

  • 在技能顶部明确最大工具调用次数(MAXIMUM_TOOL_CALL_LIMIT: 3)。
  • 编写当连续两次出现相同错误代码时停止额外工具调用的约束条件。
  • 指示一旦触发停止条件,立即停止执行并输出通知格式。

`markdown
[SKILL EXECUTION HALTED]
Skill Name: backend-api-generator
Failure Reason: [Brief error description]
Attempts Made: [Number of retries]
Suggested Action: [Action required by backend developer]

`

对于删除文件或丢弃数据库这类危险操作,最好设置 disable-model-invocation: true 选项。这样可以防止智能体自行调用,并将其限制为只有在开发人员直接输入斜杠命令(/skill-name)时才执行。

团队共享仓库的版本管理与部署

当团队成员一起编写技能时,必须遵循 agentskills.io 标准目录架构,以免因Markdown文件冲突而苦恼。应在父文件夹中清晰地划分并放置正文、CLI脚本、参考文档和静态模板资产。

目录及文件路径 角色 编写指南
skills/api-generator/SKILL.md 必需的入口点文档 包含YAML前言和核心流程指南(500行以内)
skills/api-generator/scripts/ 可执行代码文件夹 智能体在需要时调用的Python/Bash CLI脚本位置
skills/api-generator/references/ 辅助参考文档文件夹 收集大型API规范、数据库架构、风格指南文档
skills/api-generator/assets/ 静态资源模板文件夹 存储生成的代码样板、配置文件样本

在验证技能质量时,可以利用 promptfoo 评估框架。

  • 在 promptfooconfig.yaml 文件中指定测试目标的 SKILL.md 路径和LLM模型。
  • 编写验证意图匹配和JSON格式合规性的测试用例。
  • 在终端中运行 npx promptfoo@latest eval 命令来测量指令遵守率。

`yaml
description: "Backend Agent Skills Validation Suite"
prompts:

  • "file://skills/api-generator/SKILL.md"
    providers:
  • id: "anthropic:messages:claude-3-5-sonnet-20241022"
    tests:
  • description: "Test automatic skill activation for REST API generation query"
    vars:
    user_query: "Create a Spring Boot REST Controller for User Management."
    assert:
    • type: icontains
      value: "backend-api-generator"
    • type: javascript
      value: "output.includes('@RestController') && output.includes('ResponseEntity')"

`

在部署时,将使用短生命周期分支的主干开发策略与Git标签(v1.2.0)结合起来。如果智能体在生产环境中出现异常行为,可以通过 git checkout tags/v1.1.0 -b hotfix/rollback 命令立即回滚到先前的标签时间点。