跳到正文
EOS文档中心
文档中心/Agent 宠物制作指南
更新于 2026-11-12正文:中文
下载 Markdown ↓
本页目录

制作 Agent 搭档宠物

自定义宠物是一份 UTF-8 JSON,包含元信息和七个状态的内嵌位图。不需要编译应用,也不加载外部网页或脚本。

准备七张图片

文件名对应:idle.png(陪伴)、thinking.png(思考)、running_tools.png(执行工具)、waiting_user.png(等待确认)、success.png(完成)、error.png(异常)、petting.png(逗宠)。推荐透明背景、相同画布尺寸、主体位置一致,先用 128~256px 验证清晰度与文件大小。

每个状态都必须提供,允许多种状态共用同一张图。格式只允许 PNG、WebP、GIF;图片可以是该格式支持的动画。每张宽和高都不能超过 2048px。SVG、远程 URL、HTML 和 CSS 不支持。

用 Node.js 生成包

把以下代码保存为 build-pet.mjs,与七张 PNG 放在同一目录,运行 node build-pet.mjs:

import { readFileSync, writeFileSync } from 'node:fs'
const states = ['idle','thinking','running_tools','waiting_user','success','error','petting']
const images = Object.fromEntries(states.map(state => [state,
  'data:image/png;base64,' + readFileSync(state + '.png').toString('base64')]))
const pet = {
  schemaVersion: 1, id: 'studio.my-cat', name: '我的小猫',
  version: '1.0.0', author: 'Your Studio', images
}
const source = JSON.stringify(pet)
if (Buffer.byteLength(source, 'utf8') > 1024 * 1024) throw new Error('宠物包超过 1 MiB,请压缩图片')
writeFileSync('studio-my-cat-1.0.0.json', source)

使用 WebP/GIF 时相应修改文件后缀和 data:image/...;base64, 的 MIME 类型,不能只改类型名称。Base64 会增大体积,检查最终 JSON 大小,而不是只计算原图片。

元信息规则

字段当前规则
schemaVersion必须为 1
id^[a-z0-9][a-z0-9._-]{2,63}$;不能以保留的 eos. 开头
name非空,最多 64 个 JS 字符单元
version三段数字,例如 1.0.0;这里不接受预发布后缀
author可选,最多 64 个 JS 字符单元
images上述七个状态均为有效的 data:image/png、webp 或 gif 的 Base64 图片

整个 JSON 不超过 1 MiB。当前自定义宠物目录还有约 3 MiB 的本地存储限制;装满时先删除不用的自定义外观。

在应用中验证

打开 设置 → 外观 → 搭档宠物,启用宠物并导入 JSON。应用会先解析字段、解码每张图片并检查尺寸,成功后选中导入的外观。

依次验证任务的空闲、思考、工具执行、等待确认、成功与异常状态,再点击宠物检查 petting 状态。可以先在 宠物展示 的状态选择器查看图片,但最终任务状态切换与动作需在应用中检查。

自定义图片使用宿主的轻微动作,不包含内置小猫的分层骨骼和眼睛渲染。关闭动态效果或系统减少动态效果时,动作也会受到限制。

升级与发布

重复 ID 会拒绝导入,即使 version 增大也一样。先删除旧自定义包,再导入新包;删除当前外观会切回内置小猫。使用自己的 ID,内置宠物不能删除。

发布到自己的下载站或仓库时提供 JSON、七状态预览、名称、版本、作者、资源许可、SHA-256、文件大小与导入步骤。不要把原图许可推断为任意再分发许可。当前展示站为官方维护,尚无作者上传、审核或自行上架入口。

宠物保存在当前应用的数据空间,不自动云同步,也不因下载网页文件而自动安装。

常见错误

  • 包超限:缩小透明画布、压缩图片,减少动画帧;仍须保留七个字段。
  • 缺少有效图片:核对字段名、MIME 和标准 Base64;不要填文件路径或网页地址。
  • 图片解码失败:用浏览器或图片查看器打开原图,确认不是损坏文件或伪装后缀。
  • ID 已存在:删除旧自定义包后再导入,保留原文件以便恢复。
  • 与预览动作不同:网页只预览状态图片,宿主动作取决于应用版本与系统动态效果设置。