Skip to content

Agent 资产管理

Agent 资产(Assets)系统允许用户为每个智能体绑定专属的多媒体资源(图片、音频、视频、文档等)。这些资产不仅可以用于 UI 展示,还可以通过特殊的协议和宏系统注入到提示词中,供大语言模型(LLM)理解和引用。

一、核心概念:agent-asset:// 协议

系统定义了一套专有的 URI 协议,用于在消息内容或提示词模板中引用 Agent 专属资产。

1. 协议格式

标准的引用格式如下: agent-asset://{group}/{id}.{ext}

  • group: 资产所属的分组 ID(默认为 default)。
  • id: 资产的唯一标识符(通常是不带后缀的文件名)。
  • ext: 文件扩展名(可选,用于辅助渲染引擎识别类型)。

示例:

  • agent-asset://emojis/happy.png:引用表情包分组下的 happy 图片。
  • agent-asset://bgm/theme_song.mp3:引用背景音乐分组下的主题曲。

2. 引用与解析

  • 消息内引用:在发送给 AI 的消息或 AI 的回复中包含此协议链接时,UI 渲染引擎会自动将其解析为对应的媒体组件(如图片卡片、音频播放器)。
  • 提示词引用:在系统提示词中使用该协议,可以告诉 AI 某些资产的存在及其含义,AI 可以根据上下文决定在回复中输出这些链接。

二、资产分组管理

为了应对大量资产,系统提供了灵活的分组机制。

1. 分组定义 (Asset Group)

每个分组包含以下属性:

  • ID:唯一标识,用于协议路径。
  • 显示名称:UI 界面展示的名称。
  • 图标:支持使用 Emoji 作为分组图标。
  • 描述:描述该分组的用途,有助于 LLM 理解资产背景。
  • 排序:控制侧边栏分组的显示顺序。

2. 批量操作

在资产管理器中,你可以进入批量模式

  • 批量移动:将选中的多个资产一键转移到另一个分组。
  • 批量删除:物理删除选中的资产文件及其元数据。
  • 拖拽归类:直接将资产卡片拖拽到左侧的分组列表上即可完成移动。

三、资产类型与处理

系统支持多种类型的资产,并根据文件 MIME 类型自动归类:

类型常见后缀说明
图片 (Image).png, .jpg, .webp, .gif支持在线预览、缩略图生成。
音频 (Audio).mp3, .wav, .ogg支持在线播放,可配置封面图(Poster)。
视频 (Video).mp4, .webm支持内置播放器预览。
文件 (File).pdf, .txt, .docx通用文件类型,提供下载和路径引用。

缩略图机制

对于视频和音频资产,系统支持关联一个 thumbnailPath

  • 视频:自动截取首帧作为缩略图。
  • 音频:用户可以手动指定一张图片作为该音频在 UI 中的封面。

四、导入与导出

资产系统支持多种迁移方式,确保数据的流动性。

1. 物理存储

所有资产物理存储在应用数据目录下的 llm-chat/agents/{agentId}/assets/ 目录中。你可以通过界面上的“打开目录”按钮直接访问原始文件。

2. SillyTavern 兼容导入

系统内置了对 SillyTavern 角色卡及预设的兼容支持:

  • 支持解析 ST 的 {{item}} 格式并转换为本系统的资产定义。
  • 在导入角色卡时,会自动将关联的表情包、背景图等资源存入对应的资产分组。

3. JSON 导出

你可以将整个 Agent 的配置(包含资产元数据定义)导出为 JSON 文件。注意:JSON 导出仅包含路径和配置信息,不包含物理文件本身。若要迁移整个 Agent,建议直接备份物理目录。

五、与宏系统联动

资产系统深度集成了宏引擎,支持动态注入。

1. {{assets}} 宏

  • {{assets}}:注入当前 Agent 所有已启用资产的列表及描述。
  • {{assets::groupId}}:仅注入指定分组下的资产信息。这对于告诉 AI 它可以调用哪些表情包或背景音乐非常有用。

2. 注入策略

资产引用的注入遵循 Agent 的消息注入策略。你可以将包含资产引用的消息配置为:

  • 深度注入 (Depth):在对话历史的特定深度插入资产说明。
  • 锚点注入 (Anchor):在系统提示词或角色定义之后紧跟资产列表。

相关阅读:

Released under the Apache-2.0 License.