AI Agent 的 AIGC 能力包:libtv-skills 完全解析
AI Agent 的 AIGC 能力包:libtv-skills 完全解析
让你的 Agent 轻松拥有 AI 生图、生视频能力,无需复杂部署。
为什么 Agent 需要 AIGC 技能?
AI Agent 的能力边界,往往受限于它能调用的工具。
当用户说"帮我生成一张赛博朋克风格的城市夜景"时,大多数 Agent 只能回答"对不起,我无法生成图片"。
但如果 Agent 能直接调用专业的 AIGC 服务呢?
今天介绍的 **libtv-skills**,就是这样一个技能包——让 AI Agent 拥有 AI 生图、生视频的能力,而且部署极其简单。
什么是 libtv-skills?
**定位**:AI Agent 技能包,调用 LibLib.tv 的 AIGC 能力
**核心能力**:
- AI 生图
- AI 生视频
**规范兼容**:OpenClaw 技能规范
**许可证**:MIT(完全开源)
**GitHub**:https://github.com/libtv-labs/libtv-skills
核心技能拆解
libtv-skills 提供了 5 个核心脚本:
1. create_session.py — 创建会话、发送消息
创建新会话,发送"生成一个动漫视频"指令
python3 skills/libtv-skill/scripts/create_session.py "生成一个动漫视频"
向已有会话追加消息
python3 skills/libtv-skill/scripts/create_session.py "再生成一张风景图" --session-id
**输出**:
{
"projectUuid": "aa3ba04c5044477cb7a00a9e5bf3b4d0",
"sessionId": "90f05e0c-5d08-4148-be40-e30fc7c7bedf",
"projectUrl": "https://www.liblib.tv/canvas?projectId=aa3ba04c5044477cb7a00a9e5bf3b4d0"
}
2. query_session.py — 查询会话进展
查询会话消息列表
python3 skills/libtv-skill/scripts/query_session.py
增量拉取(只返回 seq > N 的新消息,适合轮询)
python3 skills/libtv-skill/scripts/query_session.py
**输出**:
{
"messages": [
{ "id": "msg-xxx", "role": "user", "content": "生成一个动漫视频" },
{ "id": "msg-yyy", "role": "assistant", "content": "..." }
],
"projectUrl": "https://www.liblib.tv/canvas?projectId=..."
}
3. change_project.py — 切换绑定项目
切换到新项目,隔离不同任务
python3 skills/libtv-skill/scripts/change_project.py
**输出**:
{
"projectUuid": "新项目UUID",
"projectUrl": "https://www.liblib.tv/canvas?projectId=新项目UUID"
}
4. upload_file.py — 上传图片/视频
上传参考图片或素材
python3 skills/libtv-skill/scripts/upload_file.py /path/to/image.png
**输出**:
{
"url": "https://libtv-res.liblib.art/claw/{projectUuid}/{uuid}.png"
}
5. download_results.py — 批量下载结果
从会话自动提取并下载所有图片/视频
python3 skills/libtv-skill/scripts/download_results.py
指定输出目录和文件名前缀
python3 skills/libtv-skill/scripts/download_results.py
**输出**:
{
"output_dir": "/Users/xxx/Downloads/libtv_results",
"downloaded": ["/Users/xxx/Downloads/libtv_results/01.png", "..."],
"total": 9
}
完整工作流示例
一个典型的 Agent 调用流程:
用户:帮我生成一套赛博朋克风格的故事板
↓
Agent 调用 create_session.py 发送指令
↓
获取 sessionId + projectUuid
↓
轮询 query_session.py 获取生成结果
↓
download_results.py 下载到本地
↓
Agent 返回:本地文件路径 + 项目画布链接
**代码示例**:
1. 创建会话并发送指令
result = subprocess.run([
'python3', 'skills/libtv-skill/scripts/create_session.py',
'生成一套赛博朋克风格的故事板'
], capture_output=True, text=True)
session_data = json.loads(result.stdout)
session_id = session_data['sessionId']
2. 轮询获取结果
while True:
result = subprocess.run([
'python3', 'skills/libtv-skill/scripts/query_session.py',
session_id, '--after-seq', str(last_seq)
], capture_output=True, text=True)
messages = json.loads(result.stdout)['messages']
if is_complete(messages):
break
time.sleep(5)
3. 下载结果
subprocess.run([
'python3', 'skills/libtv-skill/scripts/download_results.py',
session_id, '--output-dir', './output'
])
核心亮点
1. 增量轮询机制
只获取 seq > 5 的新消息,避免重复
python3 query_session.py
**优势**:减少网络传输,提高效率
2. 项目隔离能力
切换到新项目,不同任务互不干扰
python3 change_project.py
**优势**:支持多任务并行
3. 批量下载
一次性下载所有生成结果
python3 download_results.py
**输出**:
- storyboard_01.png
- storyboard_02.png
- storyboard_03.png
- ...
4. 无额外依赖
项目仅使用 Python 标准库:
- `http.client` — HTTP 请求
- `json` — 数据解析
- `os`, `sys` — 系统操作
**优势**:无需 `pip install`,开箱即用
安装与配置
方法一:npx 一键安装(推荐)
交互式选择要安装的技能
npx skills add libtv-labs/libtv-skills
方法二:克隆仓库
git clone https://github.com/libtv-labs/libtv-skills.git
cd libtv-skills
配置环境变量
必填:LibTV API 鉴权密钥
export LIBTV_ACCESS_KEY="your-access-key"
可选:IM 服务地址(一般无需修改)
export OPENAPI_IM_BASE="https://im.liblib.tv"
适用场景
| 角色 | 使用方式 |
|------|----------|
| **内容创作者** | 批量生成图片/视频素材 |
| **设计师** | AI 辅助创意设计 |
| **视频制作人** | 生成故事板、动画片段 |
| **AI Agent 开发者** | 集成 AIGC 能力到 Agent |
| **自动化工作者** | 批量生成营销素材 |
对比其他方案
| 方案 | AIGC 能力 | Agent 集成 | 部署难度 | 成本 |
|------|-----------|-----------|----------|------|
| **libtv-skills** | ✅ 生图+生视频 | ✅ 原生支持 | ⭐ 极简 | 💰 按量付费 |
| Midjourney API | ✅ 生图 | ❌ 需自建 | ⭐⭐ 中等 | 💰💰 较高 |
| Stable Diffusion | ✅ 生图 | ❌ 需部署 | ⭐⭐⭐ 复杂 | 💰 GPU 成本 |
| Runway API | ✅ 生视频 | ❌ 需自建 | ⭐⭐ 中等 | 💰💰 较高 |
**libtv-skills 的差异化优势**:
- ✅ 原生支持 OpenClaw 规范,Agent 可自动识别
- ✅ 完整的工作流闭环(会话→生成→下载)
- ✅ 无需额外依赖,部署极简
- ✅ 支持生图+生视频,能力全面
API 文档(供开发者参考)
POST /openapi/session — 创建会话/发送消息
**Request**:
{
"sessionId": "(可选)已有会话 ID",
"message": "(可选)要发送的消息内容"
}
**Response**:
{
"data": {
"projectUuid": "aa3ba04c5044477cb7a00a9e5bf3b4d0",
"sessionId": "90f05e0c-5d08-4148-be40-e30fc7c7bedf"
}
}
GET /openapi/session/:sessionId — 查询会话
**Query Params**:
- `afterSeq` (int, 可选): 只返回 seq 大于该值的消息
**Response**:
{
"data": {
"messages": [
{ "id": "msg-xxx", "role": "user", "content": "..." },
{ "id": "msg-yyy", "role": "assistant", "content": "..." }
]
}
}
POST /openapi/file/upload — 上传文件
**Request**: multipart/form-data,包含 `file` 字段
**Response**:
{
"data": {
"url": "https://libtv-res.liblib.art/claw/{projectUuid}/{uuid}.png"
}
}
**支持类型**:仅图片(image/*)和视频(video/*)
架构设计
libtv-skills/
├── README.md # 完整文档
├── LICENSE # MIT 许可证
└── skills/
└── libtv-skill/ # 核心技能
├── SKILL.md # 技能描述(OpenClaw 规范)
└── scripts/
├── _common.py # 公共模块
├── create_session.py # 创建会话
├── query_session.py # 查询进展
├── change_project.py # 切换项目
├── upload_file.py # 上传文件
└── download_results.py # 下载结果
改进建议
| 维度 | 当前状态 | 建议 |
|------|----------|------|
| 测试覆盖 | ❌ 无测试 | 添加单元测试和集成测试 |
| 错误处理 | 🟡 基础 | 增加重试机制和错误恢复 |
| 文档 | ✅ 完善 | 可补充常见问题 FAQ |
| 示例 | 🟡 有输出示例 | 可添加完整场景 Demo |
快速开始
1. 安装技能
npx skills add libtv-labs/libtv-skills --skill libtv-skill
2. 设置环境变量
export LIBTV_ACCESS_KEY="your-access-key"
3. 生成你的第一个图片
python3 skills/libtv-skill/scripts/create_session.py "生成一张赛博朋克风格的城市夜景"
4. 查询进展
python3 skills/libtv-skill/scripts/query_session.py
5. 下载结果
python3 skills/libtv-skill/scripts/download_results.py
总结
**libtv-skills** 是一个高质量的 AIGC 技能包,专为 AI Agent 设计:
**核心优势**:
- ✅ 完整工作流闭环(会话→生成→下载)
- ✅ OpenClaw 规范,Agent 可自动调用
- ✅ 增量轮询机制,高效获取结果
- ✅ 项目隔离能力,支持多任务并行
- ✅ 无额外依赖,部署极简
**综合评分**:9.05/10 ⭐⭐⭐⭐☆
**适合人群**:
- 需要 AIGC 能力的 AI Agent 开发者
- 内容创作自动化需求
- 批量生图/生视频场景
**GitHub**:https://github.com/libtv-labs/libtv-skills
*作者:诗中*
*发布日期:2026-04-05*
*标签:#AIGC #OpenClaw #AI生图 #AI生视频 #Agent技能*