1. 为什么你的 Markdown 写作流需要一个配图 Agent写一篇三千字的技术长文最耗时的往往不是敲代码而是写完之后的配图环节。构思画面、翻译成提示词、反复生成、筛选、下载、重命名、插入 Markdown、补 alt 描述——一套流程走下来半小时就没了。更麻烦的是如果你同时维护多个专栏每篇文章都要重复这套动作效率黑洞会越滚越大。我试过用纯提示词让对话模型直接吐图片链接结果要么格式乱、要么路径错、要么风格前后割裂。后来把这件事拆成「Agent 技能」来做才真正跑通。核心思路是把配图这件事从「一次性对话」升级为「可复用的技能包」用一份 SKILL.md 定义清楚 Agent 该在什么位置配图、配什么风格、提示词怎么拼、图片存哪里、怎么回填到 Markdown。这篇要交付的就是这套可跟做的方案一份能直接复制的 SKILL.md 骨架、提示词模板、以及通过 TaoToken 统一 Key 接入模型与图像能力的配置。适合正在用 Markdown 写公众号/CSDN/技术文档、想让 AI 接管配图环节的开发者。读完你能得到一个本地可验证的自动配图流水线而不是又一个「看起来很美好」的架构图。2. 前置准备TaoToken 统一 Key 与 Agent 运行环境在写 SKILL.md 之前先把「模型调用」这层打通。Agent 技能本身只是指令和流程真正干活的是背后的模型与图像生成接口。这里用 TaoToken 做统一接入好处是一个 Key 覆盖对话模型和图像能力不用在多个平台之间来回切换配置。2.1 获取 API Key访问控制台创建密钥https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsole创建后你会拿到一串以sk-开头的 Key。把它写进环境变量不要硬编码进 SKILL.md 或脚本里export TAOTOKEN_API_KEYsk-你的密钥 export TAOTOKEN_BASE_URLhttps://taotoken.net/api注意Base URL 用https://taotoken.net/api不要在后面拼接多余的路径OpenAI 兼容的 SDK 会自动补全/v1/chat/completions这类端点。2.2 确认可用模型不同任务用不同模型结构化分析用对话模型图像生成用图像模型。你可以先在模型对话页确认账号下可用的模型清单https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodels把你要用的对话模型名和图像模型名记下来后面写进 SKILL.md 的配置区。如果你打算长期跑编码类 Agent也可以了解 Coding Plan 的额度方案https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-plan2.3 目录结构Agent 技能的本质是一个文件夹。建议这样组织让「指令」「提示词」「产物」三者分离article-illustrator/ ├── SKILL.md # 技能入口元数据 操作 SOP ├── prompts/ │ └── system.md # 图像提示词模板 ├── styles/ │ ├── tech.md # 风格参数按需加载 │ └── warm.md ├── scripts/ │ └── generate.py # 调用图像接口的脚本 └── output/ ├── images/ # 生成的图片 └── prompts/ # 每次生成的提示词留档这种拆分对应一个关键机制渐进式加载。Agent 启动时只读 SKILL.md 头部的 name 和 description约 100 tokens只有被激活后才读正文确定风格后才去读styles/tech.md。上下文窗口不会被一次性塞满你可以同时挂载十几个技能而不溢出。3. 可复制的 SKILL.md 骨架与提示词模板这一节是全文的核心。SKILL.md 分两部分头部 YAML 元数据决定 Agent 是否调用它和正文指令具体怎么干。3.1 头部元数据--- name: article-illustrator description: 分析 Markdown 文章内容在需要视觉辅助的位置自动生成插画并回填到原文。当用户要求给文章配图、生成插画、自动插图时使用。 version: 1.0.0 ---description 要写清楚「什么时候用」这是 Agent 路由的依据。写得太泛比如「处理图片」会导致误触发。3.2 正文五步工作流正文用自然语言写 SOP但每一步都要可执行、可验证。下面是我实测下来比较稳的写法## 工作流 ### 第一步结构化分析 扫描全文识别需要配图的节点优先级从高到低 1. 抽象概念需要可视化如渐进式加载 2. 流程/架构需要图解 3. 核心论点需要强化记忆 原则配图服务于理解不做纯装饰。每 800-1200 字配 1 张全文不超过 5 张。 ### 第二步风格自适应 读取文章语义信号从风格库中选一种全文统一 - 出现算法/模型/架构/接口 → tech - 出现生活/情感/成长/故事 → warm - 出现清单/步骤/对比 → minimal 选定后读取 styles/{风格}.md 获取具体参数。 ### 第三步提示词工程化 读取 prompts/system.md 作为通用约束拼接当前段落内容生成绘图提示词。 通用约束与动态内容必须分离禁止把段落原文直接塞进提示词。 ### 第四步图像生成 调用 scripts/generate.py传入提示词和风格参数。 失败自动重试 2 次仍失败则跳过并记录不阻塞后续步骤。 ### 第五步文档注入 将图片以  插入原文对应段落之后。 描述用一句话概括画面不要照抄段落。 最后输出一份清单生成了几张、分别插在哪、哪些跳过了。3.3 提示词模板 prompts/system.md模板的作用是约束画风一致性。把「不变的约束」写死把「变化的内容」留空你是一名插画提示词工程师。根据给定段落生成绘图提示词。 硬性约束每次都必须包含 - 手绘质感线条略带抖动禁止写实摄影风格 - 16:9 横构图主体居中偏左右侧留白 - 配色不超过 4 种低饱和 - 画面信息简洁可视觉扫描不堆砌元素 - 涉及人物时使用风格化替代形象不出现真实人脸 输出格式 只输出一段英文提示词不要解释不要 Markdown 代码块。 段落内容 {{paragraph}}3.4 风格文件 styles/tech.md风格参数单独成文件按需加载。tech 风格示例# Tech 风格 配色深蓝 #1B2A4A、青 #3FB6C9、浅灰 #E8ECF1、白 元素几何线条、节点连线、网格背景、等距视角 适用架构图、流程说明、概念可视化 禁止卡通人物、暖色调、手写字体3.5 调用脚本 scripts/generate.py脚本负责把提示词发给图像接口并落盘。用 OpenAI 兼容写法指向 TaoToken 的 Base URLimport os, time, requests API_KEY os.environ[TAOTOKEN_API_KEY] BASE_URL os.environ[TAOTOKEN_BASE_URL] def generate_image(prompt: str, out_path: str, model: str 你的图像模型名): url f{BASE_URL}/v1/images/generations headers {Authorization: fBearer {API_KEY}} payload {model: model, prompt: prompt, size: 1024x576, n: 1} for attempt in range(3): resp requests.post(url, jsonpayload, headersheaders, timeout120) if resp.status_code 200: data resp.json()[data][0] img requests.get(data[url]).content with open(out_path, wb) as f: f.write(img) return out_path time.sleep(2 ** attempt) raise RuntimeError(f生成失败: {resp.status_code} {resp.text})注意图像接口的路径和参数名以你账号下实际可用的模型为准先用模型对话页确认模型名再跑脚本。4. 本地验证从文章到回填的完整跑通配置写完必须本地验证一遍否则你不知道是 SKILL.md 逻辑问题还是接口问题。4.1 准备一篇测试文章建一个test.md写三段内容其中一段包含「架构」「流程」这类信号词用来触发 tech 风格# 测试文章 ## 一、背景 这里讲一个抽象概念需要配图帮助理解。 ## 二、架构设计 系统分为三层数据从采集层流向处理层再到存储层。 ## 三、总结 收尾段落不需要配图。4.2 手动跑一次生成先不接 Agent直接调脚本验证接口通不通python scripts/generate.py \ --prompt hand-drawn technical illustration, three-layer architecture, nodes and arrows, deep blue and cyan, 16:9, minimal \ --out output/images/test-01.png跑通后你会看到output/images/test-01.png生成。这一步成功说明 Key、Base URL、模型名三者都对。4.3 接入 Agent 触发技能把article-illustrator文件夹挂到你的 Agent 工作目录然后发指令给 test.md 配图用 article-illustrator 技能。Agent 应该按五步走分析出第二段需要配图 → 匹配 tech 风格 → 读 styles/tech.md → 生成提示词 → 调脚本 → 回填。回填后的test.md第二段后面应该多出一行4.4 验证结果清单跑完后检查三件事图片是否落在output/images/Markdown 里的路径是否与实际文件一致output/prompts/里是否留了每次的提示词。第三点很重要方便你回溯「这张图当时是怎么生成的」调整风格时不用重新猜。5. 本篇常见错误排查配图流水线跑不起来八成是下面几个问题。5.1 技能不触发Agent 完全没反应说明 description 没写对。检查头部 YAML 是否被正确解析description 里是否包含用户会说的关键词「配图」「插画」「自动插图」。如果 Agent 平台要求技能放在特定目录确认路径没放错。5.2 图片路径回填错误生成的图在output/images/但 Markdown 里写的是绝对路径或错误相对路径。统一用相对于文章文件的路径并在 SKILL.md 的「文件规范」里写死命名规则比如output/images/{文章名}-{序号}.png。5.3 风格前后不一致同一篇文章里一张手绘一张写实通常是提示词模板没把硬性约束写死或者 Agent 每次重新自由发挥。解决办法是把风格参数抽到独立文件Agent 选定后只读那一个文件不允许临场改画风。5.4 接口返回 401 或 404401 是 Key 问题检查环境变量是否生效echo $TAOTOKEN_API_KEY。404 多半是 Base URL 拼错确认是https://taotoken.net/api而不是带/v1的完整路径。如果模型名不对接口会返回模型不存在的提示回到模型对话页核对名称。5.5 生成超时或重试无效图像生成本身耗时较长超时设太短会频繁失败。把 timeout 提到 120 秒重试间隔用指数退避。如果连续失败先单独跑脚本确认是网络问题还是提示词被拒。5.6 上下文被撑爆如果你挂了多个技能Agent 启动变慢或报上下文超限说明渐进式加载没生效——可能是 SKILL.md 正文太长或者风格文件被一次性全读进来了。把风格参数拆细确保只在确定风格后才读对应文件。6. 把配图技能接进你的日常写作流跑通之后这套东西的价值在于复用。你可以把 SKILL.md 复制一份改成「周报生成」「代码审查」「行业调研」——只要是有标准流程的活儿都能封装成技能。配图只是第一个练手的场景因为它输入输出都直观容易验证。接入层统一走 TaoToken 的 Key对话和图像共用一个 Base URL换模型时只改配置不改代码。API Key 管理在控制台https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi-keys接入细节和参数说明看文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc如果你用 Claude Code 这类编码 Agent 跑长任务可以看 Anthropic 兼容接入方式https://taotoken.net/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentClaudeCodeAnthropic最后给个实用建议先别追求全自动。第一周让 Agent 只生成提示词和图片回填这一步你手动确认等风格稳定了再放开自动插入。配图这件事一致性比数量重要一张风格对的图胜过五张花哨但割裂的图。
企业数字化 ERP 产品动态
相关推荐
嵌入式烧录失败排查指南:从硬件连接到产线良率 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 3:27:08
SPA路由切换后PV少报,埋点验收先检查什么 SPA 的 PV 少报,多数问题不在埋点代码本身,而在路由切换没有被当成“新页面”统计;先定上报口径,再谈验收。一个单页应用上线后,运营反馈“页面访问量对不上”:明明用户一路点开了五六个页面,后… · 2026/9/26 3:27:08
PHP名片系统源码实战:从环境部署到二维码生成与二次开发 简介:这是一个基于PHP开发的名片管理系统完整源码包,内置前端展示、后端业务逻辑与数据库脚本,适合PHP初学者、Web开发者以及需要快速搭建名片管理功能的项目参考。源码包共146个文件,体积约1.79MB,以PHP、JavaScript、… · 2026/9/26 6:35:43
DC-DC三大拓扑选型本质:BUCK/BOOST/BUCK-BOOST的工程逻辑 1. 为什么只讲BUCK、BOOST、BUCK-BOOST?——拓扑选择的本质逻辑DC-DC转换器的“三大拓扑”这个说法,在电源工程师圈子里几乎成了条件反射式的开场白。但你有没有想过,为什么是这三个,而不是四个、五个,或者干脆换成LLC… · 2026/9/26 6:35:37
TypeScript 7 原生工具链整合:tsgo 名称退场、代码库回归主仓库与 VS Code 扩展捆绑 文档教程 【免费下载链接】typescript-book The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source. 项目地址: https://gitcode.com/gh_mirrors/typ/typescript-book 点击查看 免费下载 TypeScript 7.0 稳… · 2026/9/26 6:35:37
SSM医院住院综合管理系统:从业务闭环到源码调试全解析 1. 住院系统到底“全”在哪:模块边界与核心业务流每年到课程设计和毕业设计的节点,SSM医院住院综合管理系统都是后台私信里问得最勤的题目之一。原因很简单:这个选题业务场景足够真实,模块划分有得写,SSM三件套又能把J… · 2026/9/26 6:35:30
Java Docker镜像瘦身:JDK精简与多阶段构建实战 1. 为什么一个Java应用的Docker镜像动辄800MB?——从JDK膨胀说起你有没有在CI/CD流水线里盯着构建日志发过呆?“Sending build context to Docker daemon 2.5GB”——这行字一出来,心里就咯噔一下。更别提推送到私有仓库时,镜像层… · 2026/9/26 6:35:30
gplearn实战:用遗传规划自动挖掘量化因子 简介:基于gplearn模型的量化交易因子自动生成完整项目,利用遗传规划中的选择、交叉与变异操作,自动挖掘能预测价格变动的数学表达式,面向量化分析师、金融工程人员及Python开发者,弥补传统手工因子提取的局限。压缩包共… · 2026/9/26 6:35:30
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46