:从零配置到首个脚本生成)
1. 从零搭建视频创作智能体为什么我选 Claude Code 而不是现成工具网上能搜到一堆视频创作智能体输入一句主题就能吐出一整条短剧看着挺爽。但真拿去用就会发现两个问题一是生成的分镜逻辑经常前后打架人物刚在客厅下一秒就出现在天台中间没有任何过渡二是你根本不知道它内部怎么拆解任务想改一个环节都无从下手。对于有编程基础、想把控创作流程的人来说这种黑盒体验很难受。我自己的需求很明确输入一个主题和视频时长智能体自动完成编剧、分段、生成分镜提示词、配 BGM、产出分镜视频与音频最后合成完整视频。这套流程如果全靠一个云端服务调试成本极高。所以我选择用 Claude Code 作为智能体的“大脑调度层”把每一步拆成可观测、可替换的模块。Claude Code 是 Anthropic 推出的命令行编程助手它最大的价值不是帮你补全代码而是能读取项目文件、执行命令、按你的指令串联多个脚本——这正好是智能体编排需要的。适合谁看有基础编程经验、想深入理解视频智能体实现过程、愿意动手配置的创作者。如果你只想点一下按钮出片这篇可能偏重了但如果你想拥有一个能改、能调、能扩展的智能体接下来的配置和验证步骤可以直接跟做。这一篇是系列起步目标只有一个把 Claude Code 接入统一 Key跑通第一个“自动生成视频分镜脚本”的任务。不涉及最终视频合成先把地基打牢。2. TaoToken 前置准备统一 Key 与 Claude Code 的 settings.json 配置Claude Code 默认走 Anthropic 官方接口但国内直连体验不稳定而且多模型切换时 Key 管理很乱。我的做法是接入 TaoToken 作为统一入口一个 Key 管理多个模型Claude Code 的配置文件里只写一份 Base URL 和 Key后续换模型只改 Model ID。先拿到 Key。打开 https://taotoken.net/api-keys 注册后创建一个 API Key复制保存。注意这个 Key 只在创建时完整显示一次丢了就重新建。然后确认你要用的模型 ID。TaoToken 支持多种模型视频智能体里编剧和分镜生成对语言理解要求高我选 Claude 系列如果你预算敏感也可以换成其他模型Model ID 在文档里查 https://taotoken.net/doc 。接下来是 Claude Code 的配置文件。Claude Code 读取的是用户目录下的~/.claude/settings.jsonWindows 是C:\Users\你的用户名\.claude\settings.json。如果目录不存在就手动建。写入以下内容{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }三个字段的作用要分清ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址注意这里不带任何查询参数ANTHROPIC_AUTH_TOKEN填你刚创建的 KeyANTHROPIC_MODEL填模型 ID这个值决定实际调用哪个模型。如果你后面想换模型只改这一行即可不用动 Key。注意settings.json 是标准 JSON不能有注释不能有多余逗号。我见过有人从博客复制时带上了//注释Claude Code 启动直接报解析错误。配置写完后在终端执行claude启动。第一次启动它会读取这个文件。如果之前已经登录过官方账号建议先执行claude logout再启动避免凭证冲突。这一步的核心逻辑是Claude Code 把所有请求发到ANTHROPIC_BASE_URLTaoToken 根据 Key 鉴权后转发到对应模型。你的项目代码里不需要出现任何 Key全部收敛在 settings.json后续做版本管理时把这个文件加进.gitignore就行。3. 可复制配置项目初始化与分镜脚本生成器目录结构配置好 Claude Code 只是第一步真正让它干活需要给它一个项目上下文。我在本地建了一个video-agent目录结构如下video-agent/ ├── .claude/ │ └── settings.json # 项目级配置可选覆盖用户级 ├── scripts/ │ ├── generate_storyboard.py # 分镜脚本生成入口 │ └── prompt_templates.py # 提示词模板 ├── output/ │ └── storyboard.json # 生成结果 ├── requirements.txt └── README.md项目级.claude/settings.json和用户级格式一样但只对当前项目生效。我建议把模型配置放用户级项目级只放项目相关变量避免每个项目重复写 Key。requirements.txt先装最基础的anthropic0.40.0 python-dotenv1.0.0注意这里用anthropicSDK 是因为 Claude Code 底层走的是 Anthropic 协议TaoToken 兼容该协议。安装命令pip install -r requirements.txt然后是核心的scripts/generate_storyboard.py。这个脚本的作用是接收主题和时长调用模型生成结构化分镜。关键点是它不直接硬编码 Key而是从环境变量读取而 Claude Code 在运行时会把 settings.json 里的ANTHROPIC_AUTH_TOKEN注入环境。import os import json from anthropic import Anthropic def generate_storyboard(topic: str, duration: int) - dict: client Anthropic( base_urlos.environ.get(ANTHROPIC_BASE_URL), api_keyos.environ.get(ANTHROPIC_AUTH_TOKEN), ) prompt f你是一个视频编剧。主题{topic}总时长{duration}秒。 请输出 JSON包含 scenes 数组每个元素有 - index: 分镜序号 - duration: 该分镜秒数 - visual: 画面描述 - dialogue: 台词或旁白 - bgm: 建议背景音乐风格 只输出 JSON不要额外解释。 resp client.messages.create( modelos.environ.get(ANTHROPIC_MODEL), max_tokens2000, messages[{role: user, content: prompt}], ) text resp.content[0].text return json.loads(text) if __name__ __main__: result generate_storyboard(一只猫在雨天寻找回家的路, 60) os.makedirs(output, exist_okTrue) with open(output/storyboard.json, w, encodingutf-8) as f: json.dump(result, f, ensure_asciiFalse, indent2) print(分镜已生成共, len(result[scenes]), 个镜头)这段代码里base_url和api_key都从环境变量取而 Claude Code 启动子进程时会带上 settings.json 里的 env所以你在 Claude Code 里让它执行这个脚本它就能自动拿到凭证。这就是统一 Key 的好处脚本本身零配置。prompt_templates.py可以先留空后续系列里我们会把不同风格的提示词抽出来。现在先把主流程跑通。4. 验证请求让 Claude Code 执行首个分镜生成任务配置和脚本都就位后进入验证环节。打开终端cd 到video-agent目录执行claude进入交互模式。然后输入这样一句指令读取 scripts/generate_storyboard.py确认它从环境变量读取 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN然后运行它主题是“一只猫在雨天寻找回家的路”时长 60 秒。Claude Code 会先读文件、确认逻辑然后调用python scripts/generate_storyboard.py。如果一切正常你会看到终端输出类似分镜已生成共 6 个镜头同时output/storyboard.json里出现结构化内容类似{ scenes: [ { index: 1, duration: 8, visual: 雨夜街道一只橘猫躲在纸箱下镜头从远景推近, dialogue: 旁白雨下得很大它不知道该往哪走。, bgm: 钢琴独奏缓慢忧伤 } ] }看到这个结果说明三件事同时成立Claude Code 成功读取了项目文件、TaoToken 的 Key 鉴权通过、模型返回了可解析的 JSON。这就是你的第一个智能体任务跑通了。如果你想更直观地验证模型对话是否正常可以打开 https://taotoken.net/models 在网页端发一条测试消息确认 Key 和模型 ID 匹配。有时候脚本报错不是代码问题而是 Model ID 写错了网页端能快速排除这个变量。实测下来第一次跑最容易卡在 JSON 解析上。模型有时会在 JSON 前后加一句“好的以下是分镜”导致json.loads失败。解决办法是在 prompt 里强调“只输出 JSON”或者在代码里加一层提取找到第一个{和最后一个}再解析。这个坑后面排障章节会细说。5. 本篇常见错排查401、local proxy failed 与 reading choices 报错配置阶段报错集中在几个典型场景我按真实遇到的顺序列出来。401 错误终端返回401 Unauthorized或authentication_error。原因通常是 Key 复制不完整、Key 已删除、或者 settings.json 里字段名写错。检查ANTHROPIC_AUTH_TOKEN是否以sk-开头且没有多余空格。另外注意不要把它写成ANTHROPIC_API_KEYClaude Code 认的是ANTHROPIC_AUTH_TOKEN。local proxy failed报错类似local proxy failed to connect或连接超时。这通常是ANTHROPIC_BASE_URL写错比如多加了/v1或结尾斜杠。正确值就是https://taotoken.net/api不要带其他路径。如果你之前配过其他工具的代理变量检查系统环境里有没有残留的HTTP_PROXY干扰。reading choices 报错Python 脚本报KeyError: choices或response has no attribute choices。这是因为你混用了 OpenAI SDK 的写法。Claude Code 走 Anthropic 协议返回结构是resp.content[0].text不是resp.choices[0].message.content。确认requirements.txt里装的是anthropic而不是openai。OAuth 相关报错启动 Claude Code 时提示OAuth token expired或要求重新登录。这说明它还在尝试用官方账号凭证。执行claude logout然后确认 settings.json 里的ANTHROPIC_AUTH_TOKEN已生效。如果还不行删除~/.claude/下的凭证缓存文件再启动。JSON 解析失败json.decoder.JSONDecodeError。模型返回了非纯 JSON 内容。在 prompt 末尾加“不要输出 markdown 代码块标记不要输出任何解释文字”并在代码里做兜底提取。注意如果你同时装了 Cline、CC Switch 这类工具它们可能各自维护一份配置。确认 Claude Code 读的是~/.claude/settings.json而不是其他工具的配置文件。三件套永远是 Base URL、Key、Model ID缺一不可。排障时最快的定位方法是分层验证先用网页端确认 Key 和模型可用再用 curl 直接打接口最后才怀疑脚本。这样能避免在代码里绕圈子。6. 下一步把分镜脚本接入完整视频流水线跑通分镜生成后你的智能体已经有了“编剧”能力。接下来要补的是分镜视频生成、音频合成和最终拼接。这些环节我会在下一篇里展开包括如何用同一个 TaoToken Key 调用多模态模型、如何把storyboard.json转成视频生成任务的输入格式、以及 BGM 匹配的策略。现在你可以先做一件事把generate_storyboard.py里的主题和时长改成你自己的创意多跑几次观察模型输出的分镜结构是否稳定。如果发现某些镜头时长分配不合理可以在 prompt 里加入“每个镜头不超过 10 秒”这类约束。这个调优过程本身就是智能体开发的核心乐趣。需要长期跑编码和 Agent 任务的可以了解 Coding Plan https://taotoken.net/coding-plan 。接入文档在 https://taotoken.net/doc 模型对话验证在 https://taotoken.net/models 。把地基打好后面每一层都是可替换的模块这才是自己造智能体相比用现成工具最大的优势。