资讯动态

用ChatGPT Skill自动化生成多平台发布包

发布时间:2026/9/1 9:33:19 来源:尧图企业网站定制
很多做内容的朋友都会遇到一个烦恼视频剪好了图文写完了真正的“战斗”才刚刚开始。同一个内容要发 YouTube、B站、小红书标题长度要求不一样描述风格不一样标签数量不一样小红书还得配一堆表情符号。手动改完一轮半小时过去了改出来的东西还未必符合平台调性。这篇文章里的“Skill”指的就是 ChatGPT 这类 Agent 工具的技能扩展机制。我在梳理内容发布流程时发现与其每次手动排版不如把整套“多平台发布包生成”流程固化成 Skill。核心思路是用一份说明文件告诉 AI 怎么拆分任务再用一个脚本真正生成发布内容。这样喂入一篇 Markdown 草稿几分钟内就能拿到三个平台各自的发布包。文章会从痛点分析开始讲清楚 Skill 的本质然后逐步演示目录结构、SKILL.md 配置、Python 生成脚本、调用方式和验证方法最后补充常见问题和工程建议。哪怕你以前没接触过 Skill也可以照着跑通一个最小示例。1. 5分钟生成多平台发布包真的可行吗先说结论可行。但要理解为什么可行得先看清这到底是一个什么问题。内容创作的完整链路里最难的是“从无到有”的阶段也就是选题、写脚本、拍视频、剪辑。做内容的人在这个阶段投入大量精力。但到了“把一条内容发到多个平台”的时候任务性质完全变了它不再需要创造性而是格式化、确定性的转换工作。YouTube 的标题适合 60 到 100 字符B站标题最好控制在 30 到 60 字以内小红书标题更短正文要分点、加话题标签。这些规则一旦确定就是机械操作。机械操作最适合交给 Agent 工具来处理。传统 Prompt 只能让 AI“按经验写文案”但 Skill 提供了一种更可靠的方式给 AI 一份技能说明书里面写清楚触发条件、执行步骤和脚本路径让 AI 在需要时真正调用本机脚本去生成结果。这样一来输出的格式是稳定可控的不是每次对话随缘发挥。这个思路适合谁如果你本身是开发者或者愿意花一晚上折腾脚本那这套方案能把每周几十分钟的重复劳动压缩到几分钟。如果你只是偶尔发一条内容手动改改也行但理解这个流程对理解 Agent 工作方式也很有帮助因为它代表了 AI 工具从“聊天”走向“执行”的关键一步。2. Skill 是什么Agent 时代的“可执行说明书”在不同工具里Skill 的实现和命名不完全一致比如有的叫 Skill有的叫 Plugin有的叫 Action但它们背后的设计思想正在趋同让 Agent 不再只是“生成文本”而是能按说明书去操作脚本、读写文件、执行命令。2.1 从 Prompt 到 Skill 的演进传统 Prompt 的本质是“在对话里提出要求”。比如你告诉 AI“帮我写一个 B站视频简介要有时间轴要有标签。”AI 会按照训练数据里的模式生成一段文本。问题在于你每次都要重新描述需求而且 AI 对“时间轴”的理解每次可能略有不同格式很难完全稳定。Skill 的解决方式是把需求预先结构化。一个 Skill 通常包含以下几个部分组成作用对比传统 PromptSKILL.md描述技能用途、触发条件、执行步骤相当于一份长期有效的系统提示词scripts 目录存放真正可执行的脚本如 Python、Shell传统 Prompt 无法直接跑脚本资源文件模板、词库、参考配置让输出内容可以复用固定素材输出约定定义结果文件格式和存放位置让 AI 的输出结构化便于下游使用所以简单理解Skill 就是“给 Agent 的一套可执行说明书”。你不需要在每次对话里重新描述规则Agent 遇到匹配任务时会自动读取 SKILL.md按说明去调用脚本。2.2 Skill 的核心工作流程一次完整的 Skill 调用流程大致如下用户在对话中提出任务例如“用发布包生成技能处理今天的草稿”。Agent 根据技能描述判断当前任务匹配哪个 Skill。Agent 读取 SKILL.md理解输入要求和执行步骤。Agent 执行 scripts 目录下的脚本传入草稿路径等参数。脚本在本地或沙箱中运行生成结果文件。Agent 读取结果文件把摘要返回给用户。从产品形态上看这已经把 AI 从“内容生成器”往前推了一步开始变成“任务执行引擎”。2.3 Skill 的边界与限制Skill 并非万能。它适合任务边界清楚、输入输出明确、有固定处理逻辑的场景比如格式转换、批量生成、模板填充、数据清洗。它不太适合需要深度创作的任务比如从零策划一个爆款脚本这类任务仍然需要人的判断力。另外要注意的是Skill 一旦能执行脚本就涉及本机操作。使用第三方 Skill 前应该检查脚本内容确认它不会读取敏感文件、不会执行危险命令。这个安全边界在后面专门讲。3. 需求拆解三个平台的发布包各需要什么要做出好用的 Skill第一步不是写代码而是把需求拆清楚。我们可以先看三个平台的发布物差异。平台标题要求描述/正文特点标签/话题其他注意点YouTube一般建议 60 到 100 字符描述可以较长适合放时间轴和关键词标签最多约 500 字符不一定要很多描述第一段很重要影响搜索结果B站标题建议简洁过长会被截断简介可以写段落也可放时间轴有付费/普通标签数量有限分区选择会影响推荐小红书标题一般 20 字以内更友好正文适合分点、短句可带少量 emoji话题标签最多约 10 个封面和正文第一句话是关键从这个表格能看出三个平台对“同一篇内容”的表达要求是不同的。如果手动处理你需要在标题里做取舍在描述里调整结构在标签里挑选关键词。这个工作很适合自动化因为规则是可以写进脚本的。3.1 定义 Skill 的输入我们约定 Skill 的输入是一份 Markdown 草稿文件内容包含两部分front matter 元信息title、summary、tags。正文以##开头的章节代表视频或文章的主要段落。示例输入草稿如下文件路径假设为drafts/hello-skill.md--- title: 我用 ChatGPT 做了个 Skill summary: 一次把多平台发布流程自动化的尝试 tags: [ChatGPT, Skill, 内容自动化] --- ## 为什么需要 Skill ## Skill 的基本原理 ## 实战生成发布包 ## 总结与思考3.2 定义 Skill 的输出输出是一个发布包目录里面包含三个 JSON 文件youtube_package.json包含 YouTube 标题、描述、标签。bilibili_package.json包含 B站标题、简介、标签。xiaohongshu_package.json包含小红书标题、正文、话题标签。使用 JSON 而不是纯文本是为了方便后续接入发布 API也方便读者检查字段。需求拆到这里就可以开始搭建 Skill 了。4. 搭建 Skill 项目目录与配置4.1 项目目录结构一个最小可用的 Skill 项目目录结构可以这样设计content-publisher-skill/ ├── SKILL.md ├── scripts/ │ └── generate_package.py └── templates/ # 后续可扩展例如不同风格的标题模板SKILL.md是 Agent 读取的入口文件scripts/generate_package.py是真正执行生成逻辑的脚本。4.2 编写 SKILL.mdSKILL.md 的作用是让 Agent 知道什么情况下使用这个技能、输入是什么、输出是什么、执行步骤是什么。这里给出一份可用的示例你可以根据自己的工具调整 front matter 字段。--- name: multi-platform-publisher description: 根据一篇 Markdown 内容草稿生成 YouTube、B站、小红书三个平台的发布包。当用户要求生成发布包、多平台发布文案、或处理内容草稿时使用。 version: 1.0.0 --- # Multi-Platform Publisher ## 功能概述 把内容创作者的 Markdown 草稿转换为三个平台可以直接使用的发布文件 - YouTube标题、描述、标签。 - B站标题、简介、标签。 - 小红书标题、正文、话题标签。 ## 输入 用户提供 Markdown 草稿路径草稿必须包含 front matter - title内容标题。 - summary一句话摘要。 - tags内容标签数组。 正文请使用 ## 分章节每章代表内容的一部分。 ## 执行步骤 1. 确认草稿文件存在并读取文件内容。 2. 调用脚本 scripts/generate_package.py传入草稿路径。 3. 脚本输出到 out/ 目录文件名分别为 youtube_package.json、bilibili_package.json、xiaohongshu_package.json。 4. 检查三个文件是否生成成功并把文件路径返回给用户。 ## 输出 输出目录结构 text out/ ├── youtube_package.json ├── bilibili_package.json └── xiaohongshu_package.json注意事项不要修改草稿原文。不要在输出文件之外创建额外文件。如果草稿缺少 front matter提示用户补充。这里的关键是“执行步骤”写得很明确Agent 看到后可以直接照做而不是再自由发挥。 ### 4.3 配置 ChatGPT 或 Codex 类工具 不同 Agent 工具对 Skill 的加载方式不同。以 ChatGPT 桌面版和 Codex CLI 生态为例通常需要在设置中指定 Skill 目录或者在项目中放置可识别的技能配置。具体入口因版本而异最稳妥的方式是查看你所用工具关于 Skills 或插件机制的官方文档。 如果工具支持命令行方式也可以在终端直接用类似下面的方式测试脚本是否可用 bash python3 scripts/generate_package.py --help先把脚本跑通再接入 Agent能够降低排错难度。5. 完整示例用 Python 脚本生成发布包整个 Skill 里脚本是核心。这里提供一个完整的 Python 示例它读取草稿 Markdown提取 front matter 和章节然后按平台规则生成 JSON 文件。5.1 创建脚本文件文件路径content-publisher-skill/scripts/generate_package.py#!/usr/bin/env python3 # -*- coding: utf-8 -*- 根据 Markdown 内容草稿生成多平台发布包。 用法 python3 generate_package.py path/to/draft.md --output-dir out import argparse import json import pathlib import re def parse_draft(draft_path: pathlib.Path) - dict: 解析 Markdown 草稿提取 front matter 和章节信息。 text draft_path.read_text(encodingutf-8) meta {} body text # 解析 front matter if text.startswith(---): parts text.split(---, 2) if len(parts) 3: fm_text parts[1] body parts[2] for line in fm_text.strip().splitlines(): if : not in line: continue key, value line.split(:, 1) key key.strip() value value.strip().strip() if key tags: # 将 [A, B, C] 转为列表 value [item.strip() for item in value.strip([]).split(,)] meta[key] value title meta.get(title, draft_path.stem) summary meta.get(summary, ) tags meta.get(tags, []) sections re.findall(r^##\s(.)$, body, re.MULTILINE) return { title: title, summary: summary, tags: tags, sections: sections, } def build_youtube_package(data: dict) - dict: 生成 YouTube 发布信息。 title data[title][:80] description_lines [data[summary], ] for index, section in enumerate(data[sections], start1): description_lines.append(f{index}. {section}) description \n.join(description_lines) tags data[tags] # YouTube 标签总量不建议过长这里截取前 15 个 tags tags[:15] return { platform: youtube, title: title, description: description, tags: tags, } def build_bilibili_package(data: dict) - dict: 生成 B站发布信息。 title data[title][:60] intro data[summary] chapter_lines [] for index, section in enumerate(data[sections], start1): chapter_lines.append(f{index}:{section}) description f{intro}\n\n章节列表\n \n.join(chapter_lines) return { platform: bilibili, title: title, desc: description, tags: data[tags][:10], } def build_xiaohongshu_package(data: dict) - dict: 生成小红书发布信息。 title data[title][:20] body_parts [data[summary], ] body_parts.append(重点内容) for section in data[sections][:5]: body_parts.append(f {section}) body_parts.append() topic_tags [] for tag in data[tags]: topic_tags.append(f#{tag}) body_parts.append( .join(topic_tags)) return { platform: xiaohongshu, title: title, body: \n.join(body_parts), topic_tags: topic_tags, } def main(): parser argparse.ArgumentParser(description生成多平台发布包) parser.add_argument(draft, helpMarkdown 草稿路径) parser.add_argument(--output-dir, defaultout, help输出目录默认为 out) args parser.parse_args() draft_path pathlib.Path(args.draft) if not draft_path.exists(): print(f[ERROR] 草稿文件不存在{draft_path}) return data parse_draft(draft_path) out_dir pathlib.Path(args.output_dir) out_dir.mkdir(parentsTrue, exist_okTrue) packages [ build_youtube_package(data), build_bilibili_package(data), build_xiaohongshu_package(data), ] for package in packages: platform package[platform] output_path out_dir / f{platform}_package.json output_path.write_text( json.dumps(package, ensure_asciiFalse, indent2), encodingutf-8, ) print(f[OK] {platform} - {output_path}) if __name__ __main__: main()这个脚本有几个设计点值得说明。第一parse_draft函数负责解析草稿。它把 front matter 和正文分离正文里所有##开头的行会被识别为章节。如果草稿格式不标准解析结果可能为空但脚本不会崩溃只是生成的描述会缺少章节信息。第二三个build_*函数分别处理平台差异。YouTube 标题限制 80 字符B站限制 60 字符小红书限制 20 字符。这是演示用的简化规则实际项目中你可以根据平台规则继续微调。第三输出目录通过--output-dir指定默认为out。这保证了脚本不会乱写文件降低误操作风险。5.2 准备测试草稿为了验证脚本先创建一个简单的草稿文件。文件路径drafts/hello-skill.md--- title: 我用 ChatGPT 做了个 Skill5分钟生成多平台发布包 summary: 把重复的内容排版工作交给带脚本能力的 Agent。 tags: [ChatGPT, Skill, 自动化] --- ## 为什么需要自动化 ## Skill 是什么 ## 实战演示 ## 总结注意草稿的tags数组里包含“自动化”这和脚本里生成的话题标签有关。6. 运行并验证 Skill6.1 手动运行脚本在项目根目录执行python3 scripts/generate_package.py drafts/hello-skill.md --output-dir out如果一切正常终端会输出[OK] youtube - out/youtube_package.json [OK] bilibili - out/bilibili_package.json [OK] xiaohongshu - out/xiaohongshu_package.json6.2 查看生成结果以 YouTube 为例out/youtube_package.json的内容应该是{ platform: youtube, title: 我用 ChatGPT 做了个 Skill5分钟生成多平台发布包, description: 把重复的内容排版工作交给带脚本能力的 Agent。\n\n1. 为什么需要自动化\n2. Skill 是什么\n3. 实战演示\n4. 总结, tags: [ ChatGPT, Skill, 自动化 ] }B站和小红书的文件也会各自生成。整个流程里用户只需要提供草稿剩下的格式化工作由脚本完成。6.3 接入 Agent 后的调用方式当 Skill 配置好之后可以在对话中直接说使用 multi-platform-publisher 技能处理草稿 drafts/hello-skill.mdAgent 会读取 SKILL.md找到脚本执行命令然后把生成的文件路径反馈给你。如果 Agent 工具没有自动执行脚本的权限你可以手动运行命令再把输出结果作为上下文输入对话。6.4 如何判断成功判断标准有三个out/目录下生成了三个 JSON 文件。每个文件的必填字段都存在且标题长度没有超过脚本设定的限制。草稿中的章节完整出现在描述或正文里。如果某个平台的文件缺失优先检查脚本是否报错以及草稿解析到的章节是否为空。7. 常见问题与排查思路在实际使用中主要会遇到几类问题。这里整理成表格方便排查。问题现象可能原因排查方式解决方案ChatGPT 启动时提示unable to locate the codex cli binaryCodex CLI 二进制路径未配置或客户端安装不完整检查环境变量CODEX_CLI_PATH是否指向 codex 可执行文件重新安装 Codex CLI或在工具设置中指定正确路径启动时提示无法加载 config.tomlChatGPT/Codex 的配置文件损坏或模型配置无效查看配置文件位置检查model字段是否填了不存在的模型名备份后修复或重置 config.toml改为官方支持的模型名称脚本执行报Permission denied脚本没有执行权限运行ls -l scripts/generate_package.py执行chmod x scripts/generate_package.py脚本报No such file or directoryPython 环境未安装或路径不对运行python3 --version检查版本安装 Python 3或使用绝对路径调用脚本生成的标题过长平台规则设置不准确检查脚本中[:80]、[:60]、[:20]等切片逻辑按实际平台上限调整切片长度小红书正文没有 emoji示例脚本没有内置 emoji 词库查看生成文件内容在生成逻辑中引入 emoji 映射表或交给 Agent 后处理担心 Skill 执行危险命令第三方 Skill 可能包含恶意脚本阅读 SKILL.md 和 scripts 目录下的所有文件确认操作范围只使用可信来源的 Skill并在隔离环境测试Agent 没有自动调用脚本工具不支持自动执行命令或 SKILL.md 描述不够明确检查 SKILL.md 的触发条件和执行步骤措辞在对话中明确要求执行脚本或手动运行命令其中关于 codex cli binary 和 config.toml 的报错最常见的原因是本机环境问题和配置项写错。遇到这类错误不要急着重装工具先看环境变量和配置路径往往比直接卸载重装更快。8. 最佳实践与工程建议Skill 的思路很简单但真正用起来有几个工程层面的建议值得记住。8.1 SKILL.md 要写得像“接口文档”SKILL.md 是 Agent 和技能之间的接口。触发条件要明确输入输出要写明执行步骤要可操作。如果写得太泛Agent 就不知道该在什么时候调用也不知道怎么调用。我建议至少包含技能名称、功能描述、输入格式、执行步骤、输出结构、注意事项。8.2 脚本要保持幂等同一个草稿无论执行多少次输出结果应该一致。这样才能放心交给 Agent 自动化。不要在脚本里引入随机内容不要依赖当前目录下不存在的临时文件。8.3 输出目录与源文件分离脚本的默认输出目录是out/草稿放在drafts/两者分开。这样即使脚本写错也不太可能覆盖源文件。如果需要在生产流程中使用建议加上日期或草稿名组成输出子目录避免不同内容的输出互相覆盖。8.4 把平台规则抽成配置现在标题长度、标签数量都写在脚本里。平台规则可能变化更好的做法是抽成一个config.yaml或 JSON 配置。这样后续调整平台限制时不需要改动 Python 代码。8.5 敏感信息不要进 SkillSkill 脚本里不要硬编码任何 API 密钥、Token、账号密码。如果未来想接入发布 API密钥应通过环境变量或密钥管理服务加载并遵循最小权限原则。8.6 先用最小示例跑通再覆盖真实内容第一次创建 Skill不要一上来就处理几十个草稿。先用一个最小 Markdown 文件验证流程确认输出正确后再扩展功能。这个最小示例也是未来排错时的重要基线。8.7 区分“自动生成”与“自动发布”当前这个 Skill 只生成发布包不负责发布。主动把“生成”和“发布”分开能减少很多风险。内容发布涉及账号安全、平台审核、版权问题自动化发布一定要谨慎先小范围测试确认逻辑稳定后再考虑接入。9. 总结与下一步方向这篇文章核心讲清楚了一件事Skill 不是更复杂的 Prompt而是“说明文件 脚本”的组合让 Agent 能执行确定性任务。多平台发布包生成就是一个典型的确定性任务输入是 Markdown 草稿输出是三个平台的 JSON 发布文件中间的处理规则固定。按照文中步骤你已经可以自己搭建一个最小可用的 Skill 项目创建 SKILL.md、编写生成脚本、准备测试草稿、运行验证。整个过程不依赖特定平台适配的是 Agent 工具的核心机制。下一步值得深入的方向有三个。第一优化输出质量。在现有 JSON 基础上增加标题风格模板比如“干货型”“故事型”“热点型”让发布文案更贴近各平台调性。第二扩展素材检查能力。脚本可以检查草稿里是否包含配图建议、封面标题、引用链接并在发布包里生成待办清单提醒人工补充素材。第三接入发布 API。确认平台审核规则后在 Skill 里增加 Python 脚本调用的发布接口把“生成发布包”升级为“一键发布”。这是自动化程度更高的一步但务必做好权限管理和测试环境验证。先从一个简单草稿开始跑通一个平台再逐步加功能。Skill 真正的价值不在于一次生成多少内容而在于把创作者从重复劳动里解放出来把时间留给真正需要人判断的事情。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价