用途
PlantUML 技能用于在 Emacs 中根据最近的交互上下文创建图表。当用户调用 "/plantuml" 时,该技能会从当前上下文中提取或推导出可图表化的数据,使用 PlantUML 生成图表,并输出生成的图片路径。
主要能力
- 从最近的交互上下文中提取或推导出可图表化的数据。
- 使用 PlantUML 生成透明背景的 PNG 图片。
- 将结果以 Markdown 图片格式输出,使其能够内联渲染。
- 支持多种图表类型,包括序列图、类图、组件图、活动图、状态图等。
- 可在有助于理解时添加标题。
使用方式
- 用户调用 "/plantuml"。
- 技能从当前上下文中提取或推导出可图表化的数据。
- 如果本次会话中尚未获取 Emacs 前景色,则通过以下命令查询:
emacsclient --eval '
(face-foreground (quote default))'
该命令返回类似 "#eeffff" 的十六进制颜色值。该颜色会在后续所有图表中重复使用。
- 使用该颜色将 PlantUML 文件写入临时文件。
- 对该文件运行 PlantUML:
plantuml -tpng /tmp/agent-diagram-XXXX.puml
- 将结果以 Markdown 图片格式单独输出在一行:

PlantUML 模板
@startuml
skinparam backgroundColor transparent
skinparam shadowing true
skinparam roundcorner 10
skinparam defaultFontName "Helvetica"
skinparam defaultFontColor #eeffff
' Set foreground color on all element types
skinparam titleFontColor #eeffff
skinparam sequenceLifeLineBorderColor #eeffff
skinparam sequenceArrowColor #eeffff
skinparam sequenceGroupHeaderFontColor #eeffff
skinparam sequenceGroupBorderColor #eeffff
skinparam sequenceDividerFontColor #eeffff
skinparam sequenceDividerBorderColor #eeffff
skinparam actorBorderColor #eeffff
skinparam actorFontColor #eeffff
skinparam participantFontColor #eeffff
skinparam participantBorderColor #eeffff
skinparam collectionsFontColor #eeffff
skinparam collectionsBorderColor #eeffff
skinparam noteFontColor #eeffff
skinparam noteBorderColor #eeffff
skinparam arrowFontColor #eeffff
skinparam classFontColor #eeffff
skinparam classBorderColor #eeffff
skinparam classAttributeFontColor #eeffff
skinparam packageFontColor #eeffff
skinparam packageBorderColor #eeffff
skinparam componentFontColor #eeffff
skinparam componentBorderColor #eeffff
skinparam interfaceFontColor #eeffff
skinparam interfaceBorderColor #eeffff
' ... diagram content ...
@enduml
规则
- 每个会话只查询一次 Emacs 前景色,并在后续所有图表中重复使用。仅在颜色未知时才再次查询。
- 始终使用
skinparam backgroundColor transparent设置透明背景。 - 文件名中始终包含时间戳(例如
/tmp/agent-diagram-$(date +%s).png)。不要使用描述性名称。 - 将查询到的前景色设置到
defaultFontColor以及所有相关的边框、箭头和文本的 skinparam 条目上,以确保图表在用户的 Emacs 背景上清晰可读。 - PlantUML 成功运行后,单独一行输出 Markdown 图片(
)。 - 根据数据选择合适的图表类型(序列图、类图、组件图、活动图、状态图等)。
- 在有助于理解时添加标题。
- 如果最近上下文中没有可图表化的数据,则告知用户。
适用场景
适用于需要在 Emacs 中快速将当前上下文中的信息可视化为图表的场景,例如展示流程、结构、交互关系等。
限制
- 需要安装 PlantUML 并可执行
plantuml命令。 - 需要能够通过
emacsclient查询 Emacs 前景色。 - 如果最近上下文中没有可图表化的数据,则无法生成图表。