Excalidraw子代理委派Skill excalidraw

该技能用于在处理Excalidraw图表文件时,通过委派子代理来优化资源使用,避免主代理因解析冗长JSON而耗尽上下文令牌。适用于架构可视化、流程图创建和修改等场景,提高效率并管理计算资源。关键词:Excalidraw, 子代理, 委派, 上下文管理, 令牌效率, 图表分析, 架构设计。

架构设计 0 次安装 0 次浏览 更新于 3/21/2026

name: excalidraw description: “当处理*.excalidraw或*.excalidraw.json文件时使用,用户提及图表/流程图或请求架构可视化 - 将所有Excalidraw操作委派给子代理,以防止由于冗长JSON导致的上下文耗尽(单个文件:4k-22k令牌,可能超过读取限制)”

Excalidraw子代理委派

概述

核心原则: 主代理永远不要直接读取Excalidraw文件。始终委派给子代理以隔离上下文消耗。

Excalidraw文件是JSON格式,令牌成本高但信息密度低。单个文件范围从4k到22k令牌(最大的可能超过读取工具限制)。读取多个图表会快速耗尽上下文预算(7个文件 = 67k令牌 = 预算的33%)。

问题

Excalidraw JSON结构:

  • 每个形状有20多个属性(x, y, width, height, strokeColor, seed, version等)
  • 大多数属性是视觉元数据(定位、样式、粗糙度)
  • 实际内容:文本标签和元素关系(<文件内容的10%)
  • 信号噪声比极低

示例:14元素图表 = 596行,16K,~4k令牌。79元素图表 = 2,916行,88K,~22k令牌(超过读取限制)。

何时使用

触发以下任何情况:

  • 文件路径包含.excalidraw.excalidraw.json
  • 用户请求:“解释/更新/创建图表”、“显示架构”、“可视化流程”
  • 用户提及:“流程图”、“架构图”、“Excalidraw文件”
  • 涉及视觉工件的架构/设计文档任务

即使对于以下情况也使用委派:

  • "小"文件(最小的是4k令牌 - 仍然显著)
  • “快速检查”(检查组件名称仍然加载完整JSON)
  • 单文件操作(隔离防止上下文污染)
  • 修改(不需要在主上下文中完全理解格式)

委派模式

主代理职责

永远不要:

  • ❌ 使用读取工具处理*.excalidraw文件
  • ❌ 在主上下文中解析Excalidraw JSON
  • ❌ 加载多个图表进行比较
  • ❌ 检查文件以"理解格式"

始终:

  • ✅ 将所有Excalidraw操作委派给子代理
  • ✅ 向子代理提供清晰的任务描述
  • ✅ 请求仅文本摘要(非原始JSON)
  • ✅ 将图表分析与主要工作隔离

子代理任务模板

读取/理解操作

任务:提取并解释[file.excalidraw.json]中的组件

方法:
1. 读取Excalidraw JSON
2. 仅提取文本元素(忽略定位/样式)
3. 识别组件之间的关系
4. 总结架构/流程

返回:
- 组件/服务列表及描述
- 连接/依赖关系
- 关于架构的关键见解
- 不要返回原始JSON或详细元素细节

修改操作

任务:向[file.excalidraw.json]添加[组件],连接到[现有组件]

方法:
1. 读取文件以识别现有元素
2. 找到[现有组件]及其位置
3. 为[组件]创建新元素JSON
4. 添加箭头元素用于连接
5. 写入更新后的文件

返回:
- 更改确认
- 新元素的位置
- 创建元素的ID

创建操作

任务:创建新Excalidraw图表显示[描述]

方法:
1. 为[数量]组件设计布局
2. 创建带文本标签的矩形元素
3. 添加箭头显示关系
4. 使用一致的样式(颜色、字体)
5. 写入[file.excalidraw.json]

返回:
- 文件创建确认
- 包含的组件摘要
- 文件位置

比较操作

任务:比较[file1]与[file2]中的架构方法

方法:
1. 读取两个文件
2. 从每个文件中提取文本标签
3. 识别结构差异
4. 比较组件关系

返回:
- 架构的关键差异
- 每个方法独有的组件
- 关系/流程差异
- 不要返回两个文件的完整元素细节

常见合理化(停止并委派)

借口 现实 该做什么
“直接读取最有效” 不必要地消耗4k-22k令牌 委派给子代理
“直接读取令牌效率高” 基线测试显示使用9-45%预算 始终委派
“这对于一次性分析最优” "一次性"仍然污染主上下文 子代理隔离
“JSON很简单” 简单性 ≠ 令牌效率 无论如何委派
“我需要理解格式” 格式理解不需要在主代理中 子代理处理格式
“在合理范围内”(18k令牌) "合理"是主观合理化 硬规则:委派
“只是快速检查组件” "快速检查"仍然加载完整JSON 通过子代理提取文本
“文件小(16K)” 4k令牌不小 大小阈值不重要

红旗 - 停止并委派

抓住自己即将:

  • 使用读取工具处理.excalidraw文件
  • "快速检查"存在哪些组件
  • "理解结构"然后修改
  • 加载文件以"查看内容"
  • 比较多个图表并排
  • 解析JSON以"仅提取文本"

所有这些意味着:使用任务工具与子代理。

快速参考

操作 主代理动作 子代理返回
理解图表 使用"提取并解释"模板委派 组件列表 + 关系
修改图表 使用"添加[X]连接到[Y]"模板委派 确认 + 更改
创建图表 使用"创建显示[描述]"模板委派 文件位置 + 摘要
比较图表 使用"比较[A]与[B]"模板委派 关键差异(非原始JSON)

令牌分析(为什么这很重要)

基线测试的真实数据:

场景 无委派 有委派 节省
单个大文件 22k令牌(预算的45%) ~500令牌(子代理摘要) 98%
双文件比较 18k令牌(预算的9%) ~800令牌(差异摘要) 96%
修改任务 14k令牌(预算的7%) ~300令牌(确认) 98%

上下文污染影响:

  • 读取所有7个项目图表:67k令牌(200k预算的33%)
  • 使用委派:~2k令牌(在子代理中隔离)
  • 节省:97%上下文预算保留

实现示例

❌ 坏(直接读取):

用户:"detailed-architecture.excalidraw.json中显示什么架构?"
代理:让我读取那个文件... [读取22k令牌到主上下文]

✅ 好(子代理委派):

用户:"detailed-architecture.excalidraw.json中显示什么架构?"
代理:我将使用子代理提取架构细节。

[派遣任务工具与通用子代理]
任务:提取并解释.ryanquinn3/ticketing/detailed-architecture.excalidraw.json中的组件

[接收~500令牌摘要,包含组件列表和关系]
[向用户响应架构解释,主上下文保留]

为什么"简单JSON"不重要

代理经常合理化:“格式简单,我可以直接读取。”

问题不是复杂性 - 是冗长:

  • 简单结构,每个元素20多个属性
  • 重复元数据(seed, version, nonce, roughness)
  • 定位数据(x, y, width, height)语义上无用
  • 视觉样式(strokeColor, opacity, fillStyle)与内容无关

令牌成本来自体积,不是复杂性。

即使"简单"JSON也消耗4k-22k令牌,因为:

  • 79元素 × ~280令牌/元素 = 22k令牌
  • 大多数令牌是元数据噪声
  • 只有文本标签和关系重要(~内容的10%)

铁律

主代理永远不要读取Excalidraw文件。没有例外。

不适用于:

  • “快速检查”
  • “小文件”
  • “理解格式”
  • “一次性分析”
  • “最优效率”

始终委派。通过子代理隔离是免费的。