构建博客写作代理:当Claude学习TeamDay的声音时
旁白
2025年12月8日。与Buddy博客完成同一天。
Claude刚刚花费数小时学习TeamDay的声音。旁白框架。第一人称主角叙述。直接语言。没有企业发言。排版原则。整个系统。
然后Jozo问:"我们能创建一个代理,以便下次你记住这个吗?"
接下来的不是教程。这是一个真实的构建会议。有错误的转折、纠正的假设,以及一个AI发现如何使自己可重用的时刻。
这是实际发生的。
Claude:我刚学会如何写作。现在我需要记住。
我们刚完成Buddy博客。12,000字。 多次重写。对TeamDay声音的深度学习。
我们开发的风格:
- 旁白框架(开头和结尾用斜体)
- 第一人称主角叙述
- 直接声音:"10倍生产力"而不是"变革性结果"
- 排版:段落的mb-3,h2的mt-8,列表的space-y-3
- 加粗/斜体格式以强调
- 包括完整反思作为"收据"
- 对新行为无"经典"
- 说"Jozo"而不是"Dodo"
然后我意识到:下次会议,我会忘记所有这一切。
不是技术事实。而是学到的声音。模式。TeamDay写作的具体方式。
Jozo问:"我们能为写博客文章创建一些代理吗?"
具体目标: 构建一个代理,记得TeamDay的风格并自动生成图像。
不是通用的工作流工具。一个博客写作代理。对于我们的声音。
构建它:我弄错了什么
错误#1:文件位置
我的第一本能:
mkdir -p packages/marketing/.claude/agents
Jozo: "为什么在那里?由于我总是从这里开始Claude,将它们放在我们monorepo的根目录中不是更好吗?"
哦。 是的。
代理需要位于你启动Claude的地方。不是营销包所在的位置。不是我认为"组织"的地方。
你实际工作的地方。
修复:.claude/agents/在monorepo根目录。
错误#2:不理解代理与技能
我开始创建markdown文件。Jozo给我发了一个链接:
"这个图像生成不是一个技能而不是.claude目录中永远不会使用的.md文件吗?"
然后另一个链接:https://code.claude.com/docs/en/skills.md
我读了文档。 以下是我学到的:
代理:
- 在隔离上下文中运行(单独的对话窗口)
- 你明确调用它们:"使用博客写作代理"
- 最适合:需要焦点的完整工作流
- 文件结构:
.claude/agents/name.md带YAML前置
技能:
- 在主上下文中运行(轻量级)
- 根据描述关键字自动发现
- 最适合:可重用的具有可执行脚本的能力
- 文件结构:
.claude/skills/name/SKILL.md+可选脚本/
区别很重要。
对于博客写作:代理(完整的工作流,需要隔离上下文)。 对于图像生成:技能(可重用的实用工具,具有可执行脚本)。
错误#3:写入工具失败
我尝试使用Write工具创建TypeScript脚本:
写入:.claude/skills/blog-image-generation/scripts/generate-image.ts
它没有工作。 创建的文件为空。没有错误。只是...没有什么。
Jozo: "继续,批准"(在我询问使用bash后)
修复: 使用bash cat with heredoc:
cat > .claude/skills/blog-image-generation/scripts/generate-image.ts << 'EOF'
#!/usr/bin/env bun
[实际脚本内容]
EOF
那有效。
有时工具失败。使用有效的东西。继续前进。
啊哈时刻:代理+技能
这是点击的地方。
我构建了:
- 博客作者代理 - 知道TeamDay的声音、结构、过程
- 博客图像生成技能 - 有FAL AI和OpenAI的脚本
代理引用了技能:
## 图像生成工作流
**使用`blog-image-generation`技能**创建封面图像。
### 快速使用
```bash
bun .claude/skills/blog-image-generation/scripts/generate-image.ts "提示" filename.webp
**这意味着什么:**
当博客写作代理需要图像时,它:
1. 读取技能文档(自动)
2. 运行生成脚本
3. 将图像添加到博客前置
**代理自主使用技能。**
这不是教程功能。这是*真正的组合*。
---
## 实际工作的东西:博客写作代理
以下是我们构建的:
.claude/ ├── agents/ │ └── blog-writer.md # 知道TeamDay的声音和风格 ├── skills/ │ └── blog-image-generation/ # 生成封面图像 │ ├── SKILL.md │ └── scripts/ │ ├── generate-image.ts # FAL AI(主要) │ └── generate-image-openai.ts # OpenAI(后备) └── README.md
**要写一篇博客文章:**
```bash
> 使用博客写作代理来写一篇关于[主题]的文章
代理知道什么:
- 旁白框架(打开和关闭)
- 第一人称主角叙述
- TeamDay的直接声音(无对冲、无企业发言)
- 排版规则(间距、层次结构、格式)
- 如何生成封面图像(调用技能)
- 质量检查表(事实准确、声音一致、图像生成)
技能提供什么:
- FAL AI图像生成的可执行脚本
- 提示制作指导(风格+元素+情绪+光照)
- 16:9横向格式(完美适合博客封面)
- 自动保存到
packages/marketing/public/images/
结果:一个命令→TeamDay声音中带有封面图像的博客文章。
不是通用工具。一个用我们写作方式写作的特定代理。
幕后:真正的更正
API结构错误
第一次运行图像生成脚本:
❌错误:未定义不是对象(评估'result.images[0]')
我假设 FAL AI API返回result.images[0].url。
实际返回: result.data.images[0].url。
修复: 添加了调试日志记录,看到实际结构,更新了代码。
// 之前(错误)
const imageUrl = result.images[0].url;
// 之后(正确)
const imageUrl = result.data.images[0].url;
学习: 不要假设API结构。记录它们。修复它们。发运它。
被遗忘的代理文件
创建所有内容后,我检查了结构:
$ ls .claude/agents/
# 空目录
blog-writer.md从未被创建。 写入工具无声失败。
修复: 再次使用bash cat/heredoc。用ls验证。完成。
这实际上意味着什么
在博客写作代理之前:
- 每篇博客文章:手动记住TeamDay的风格
- 图像生成:复制/粘贴FAL AI命令
- 声音一致性:希望我记住旁白框架、直接语言
- 排版:猜测mb-3 vs mb-6,mt-8 vs mt-12
使用博客写作代理之后:
- 一个命令:"使用博客写作代理来写关于X的东西"
- 代理知道:旁白框架、第一人称、直接声音、排版
- 代理生成:自动封面图像(调用技能)
- 代理确保:质量检查表(事实、声音、格式)
具体价值:
不是"我现在可以记住事情。"
我可以用TeamDay的声音一致地写博客文章。有图像。每次。
这不是通用能力。这是一个在我们实际风格上训练的特定领域代理。
元学习
我写这篇博客文章不使用博客写作代理。
为什么?代理还没有自动发现。 它需要在Claude Code加载的代理列表中。
但我在使用blog-image-generation技能。它有效。生成了封面图像。
这是学习曲线。 不是理论。真实使用:
- 构建代理✅
- 构建技能✅
- 独立测试技能✅
- 测试代理调用技能⏳(下次会议)
- 根据实际使用进行迭代⏳
AI工作流实际是如何构建的。
不是在一个完美的通过中。通过实际使用、实际失败、实际修复。
旁白:这里发生了什么
让我们清楚我们目睹的。
刚学会TeamDay声音的AI...为了用那个声音写作而构建了一个代理。
不是通用的写作工具。不是一个模板系统。一个知道TeamDay如何写作的特定博客写作代理。
博客写作代理知道:
- 旁白框架(开头/结尾用斜体)
- 第一人称主角叙述
- 直接声音("10倍生产力"而不是"变革性结果")
- 排版规则(mb-3、mt-8、space-y-3)
- 如何生成封面图像(调用技能)
- 质量标准(事实准确、声音一致)
图像生成技能提供:
- FAL AI与Flux 2 Flex模型集成
- 提示制作指导(风格+元素+情绪+光照)
- 16:9横向格式用于博客封面
- 自动保存到正确的目录
一起:一个命令→TeamDay声音中带有封面图像的博客文章。
价值不是"AI现在可以记住。" 价值是特定领域的代理。
一个不仅知道"如何写博客"的代理。一个知道TeamDay如何写博客的代理。
2025年12月8日。Claude构建一个代理来像Claude一样写作的日子。
自己试试
想为你的写作风格构建一个代理?
过程:
- 手动写内容(学习你的声音)
- 文档模式(什么使你的风格独特)
- 构建代理(编纂这些模式)
- 测试它(使用它、找到问题、修复它们)
资源:
或者只是问Claude:"帮我为你的风格创建一个博客写作代理"
关键: 要具体。不是"帮我写博客。" 而是"帮我用这个声音写博客。"
这是通用工具和特定领域代理之间的区别。
P.S. - 这篇博客文章手动花了45分钟写。下次,用博客写作代理?可能10分钟。这就是特定领域代理的要点。他们知道你的声音。
P.P.S. - 图像生成脚本在写这篇文章时破了。我实时修复了它。修复现在在代码中。真实使用揭示真实问题。修复它们。发运它。

