词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
video_generate 工具调用。内置 provider(xAI、FAL)以插件形式提供。将目录放入 plugins/video_gen/<name>/ 即可添加新 provider 或覆盖内置 provider。capabilities() 方法用于声明模态(modality)/宽高比/时长,以及路由约定(传入 image_url 则使用图生视频,省略则使用文生视频——provider 在内部选择正确的端点)。video_generate 工具通过一个参数暴露两种模态:prompt。Provider 路由至其文生视频端点。prompt 和 image_url。Provider 路由至其图生视频端点。<repo>/plugins/video_gen/<name>/(通过 kind: backend 自动加载)~/.hermes/plugins/video_gen/<name>/(通过 plugins.enabled 选择启用)hermes_agent.plugins 入口点的包register(ctx) 函数调用 ctx.register_video_gen_provider(...)。活跃 provider 由 config.yaml 中的 video_gen.provider 指定;hermes tools → Video Generation 引导用户完成选择。与 image_generate 不同,此处没有内置的遗留后端——每个 provider 都是插件。plugins/video_gen/my-backend/
├── __init__.py # VideoGenProvider 子类 + register()
└── plugin.yaml # 包含 kind: backend 的清单文件agent.video_gen_provider.VideoGenProvider。必须实现:name 属性和 generate() 方法。video_generate 参数模式| 参数 | 说明 |
|---|---|
prompt | 文本指令(必填) |
image_url | 设置时 → 图生视频;省略时 → 文生视频 |
reference_image_urls | 风格/角色参考图(取决于 provider) |
duration | 秒数——provider 会进行截断 |
aspect_ratio | "16:9"、"9:16"、"1:1" 等——provider 会进行截断 |
resolution | "480p" / "540p" / "720p" / "1080p"——provider 会进行截断 |
negative_prompt | 需要避免的内容(仅 Pixverse/Kling 支持) |
audio | 原生音频(Veo3 / Pixverse 定价层级) |
seed | 可复现性 |
model | 覆盖当前活跃的模型/系列 |
capabilities() 声明上述哪些参数会被实际处理。Agent 在工具描述中看到的是当前活跃后端的能力信息,当用户通过 hermes tools 切换后端时会动态重建。/text-to-video 和 /image-to-video 两个 URL——将每个系列表示为一个目录条目。你的 generate() 根据是否传入 image_url 来选择正确的端点:hermes tools 中只需选择一次 veo3.1。Agent 无需关心端点——它只负责传入(或不传入)image_url。plugins/video_gen/fal/__init__.py):model= 关键字参数<PROVIDER>_VIDEO_MODEL 环境变量config.yaml 中的 video_gen.<provider>.modelconfig.yaml 中的 video_gen.model(当其值为你的某个 ID 时)default_model()success_response() 和 error_response() 生成每个后端返回的标准 dict 结构。请使用它们——不要手动构造 dict。success、video(URL 或绝对路径)、model、prompt、modality("text" 或 "image")、aspect_ratio、duration、provider,以及 extra。success、video(None)、error、error_type、model、prompt、aspect_ratio、provider。save_b64_video() 将其写入 $HERMES_HOME/cache/videos/。对于通过后续 HTTP 请求获取的原始字节,使用 save_bytes_video()。否则直接返回上游 URL——gateway 在交付时会解析远程 URL。tests/plugins/video_gen/test_<name>_plugin.py 下添加冒烟测试。xAI 和 FAL 的测试展示了标准模式——注册、验证目录、分别在传入和不传入 image_url 的情况下测试路由,并断言在缺少认证时返回干净的错误响应。