用途
该技能用于指导用户构建一个能撰写文章、报告、博客文章和营销文案的 AI 写作系统,基于 DSPy 框架搭建结构化的内容生成流程:先规划大纲,再逐节起草,结合研究资料增强事实性,并通过反馈循环打磨成稿。
主要能力
技能围绕七个步骤展开能力设计:
- 理解内容任务:先向用户确认内容类型(博客、产品描述、报告、时事通讯、文档)、语气与风格、篇幅、是否需要研究支撑、是否有品牌规范(禁用词、风格规则、必需章节)。
- 大纲生成器:使用 Pydantic 定义
Section(heading、key_points)与ContentOutline(title、sections)模型,并定义GenerateOutlineSignature,通过dspy.ChainOfThought生成结构化大纲。需要事实依据时可使用GenerateResearchedOutline,把研究资料作为输入。 - 逐节生成:用
WriteSectionSignature 按大纲逐节写作,每次写入一个章节,并将此前内容(如最近 2000 字符)作为连续性上下文传入。ContentWriter模块负责先出大纲、再逐节拼装为带标题的完整文章。 - 研究增强:通过
ResearchTopic生成检索查询,用外部retriever_fn(任意 “query -> list[str]” 可调用函数)获取来源,再用WriteSectionWithSources让事实性主张以来源为依据。ResearchedWriter模块串联大纲、检索与写作。 - 质量循环:
CritiqueContent对内容做评审,输出is_good_enough与feedback;ImproveContent依据反馈改进草稿。QualityWriter模块实现“生成—评审—改进”的修订循环(max_revisions 默认 2 轮)。 - 语气与风格约束:使用
dspy.Refine配合奖励函数(brand_reward)对输出打分并在低于阈值(threshold=0.8,N=3)时自动重试。示例奖励函数对禁用词(如 utilize、leverage、synergy)扣分、要求出现 conclusion 章节、并惩罚平均句长过长的句子。 - 测试与优化:提供可读性指标(readability_metric,惩罚过长/过短句子与过短文章)和 AI-as-judge 指标(JudgeContent 输出 relevance、coherence、engagement 三项 0.0–1.0 分数);并可用
dspy.BootstrapFewShot优化器在训练集上编译QualityWriter。
使用方式
技能以代码示例形式给出各步骤实现,代码均基于 DSPy 与 Pydantic。安装方式为:npx skills add lebsral/DSPy-Programming-not-prompting-LMs-skills --skill <name>。若未安装 /ai-do,可先安装它用于把任意 AI 问题路由到对应技能:npx skills add lebsral/DSPy-Programming-not-prompting-LMs-skills --skill ai-do。
关键模式与注意事项
关键模式:先大纲后写作,避免跑题与遗漏要点;逐节生成优于一次性生成整篇;需要事实支撑时做检索增强;采用“生成—评审—改进”循环;用 dspy.Refine 加奖励函数约束品牌规则;用 AI-as-judge 给相关性、连贯性和吸引力打分。
注意事项(Gotchas):默认一次性生成整篇文章会导致约 500 字后内容散乱重复,应始终按大纲逐节撰写并传入前文保持连贯;跳过大纲会使章节脱节、重复或遗漏,应先出大纲再写;不要用已弃用的 dspy.Assert/dspy.Suggest 做风格约束,改用带奖励函数的 dspy.Refine(它会为整体输出打分并自动重试,更适合品牌语气等整体质量检查);dspy.Retrieve 已不在 DSPy API 中,应改为向模块传入检索函数(任意 query -> list[str] 可调用对象),以兼容向量库、搜索 API、本地嵌入等任意检索后端;单一生成轮次很难产出可发布内容,应加入 1–2 轮 critique-improve 循环。
技能还提及 examples.md 中有博客文章、产品描述、时事通讯的完整示例,并交叉引用了 /ai-summarizing、/ai-building-pipelines、/ai-improving-accuracy、/ai-stopping-hallucinations、/dspy-chain-of-thought、/dspy-refine、/dspy-modules 等相关技能。