Claude Code ! Claude Code ! 停不下来了~ 两天前, Claude Code 可以自定义自己的 AI Agent 了 -> https://docs.anthropic.com/en/docs/claude-code/sub-agents.

正好周末也把博客迁移主题完成了 -> 《使用 Claude Code 和 Qwen3 Coder 将博客主题成功迁移到了 Stellar 》. 顺便把玩下新出的 Sub Agent 功能. 现在使用 Claude Code 制作 Agent 很简单, 通过 Slash 命令 /agents 即可开始创建自己的 Agent, 把意图描述清楚即可.

在场景的挑选上, 我选择了两个博客文章写作除了内容之外, 最主要的两个场景:

  • 1、文章 banner 头图制作: 文章出现点图片让自己看得会舒服点, 一般比较“花”的封面更容易吸引人;
  • 2、博客的 SVG 图标制作: 新的博客主题 Stellar 抛弃了之前的使用的图标库 fontawesome, 文章内如果想嵌入, 经常需要找, 找不到满意的, 感觉可以拿 AI 制作下.

我已经把 Agent 的系统提示词放到了博客的开源 GitHub 仓库中, 感兴趣的小伙伴可以拿来玩玩 -> .claude/agents.

接下来我们看看这两个 Sub Agent 的工作流程.

文章 banner 头图制作 Agent

我使用 AI 基于系统提示词, 将 Agent 工作流 wechat-cover-layout-designer.md 抽取成为了 mermaid 时序图, 如下:

sequenceDiagram
participant 用户 as 用户
participant 设计师 as 微信封面设计师
participant 分析器 as 需求分析器
participant 布局器 as 布局规划器
participant HTML构建器 as HTML构建器
participant CSS引擎 as CSS样式引擎
participant 响应式引擎 as 响应式引擎
participant 下载器 as 下载功能模块
participant 测试器 as 兼容性测试器
participant 质检器 as 质量保证器

用户->>设计师: 提出封面设计需求
设计师->>分析器: 启动需求分析
分析器->>分析器: 解析比例要求(3.35:1, 2.35:1, 1:1)
分析器->>分析器: 确定文本占比(≥70%)
分析器-->>布局器: 传递分析结果

布局器->>布局器: 规划整体布局结构
布局器->>布局器: 设计主封面和朋友圈分享区域
布局器-->>HTML构建器: 传递布局方案

HTML构建器->>HTML构建器: 创建语义化HTML结构
HTML构建器->>HTML构建器: 嵌入必要的CDN链接
HTML构建器-->>CSS引擎: 传递HTML结构

CSS引擎->>CSS引擎: 集成Tailwind CSS
CSS引擎->>CSS引擎: 应用Google Fonts字体
CSS引擎->>CSS引擎: 添加装饰元素和背景
CSS引擎-->>响应式引擎: 传递基础样式

响应式引擎->>响应式引擎: 实现严格的比例控制
响应式引擎->>响应式引擎: 确保跨设备兼容性
响应式引擎-->>下载器: 传递响应式设计

下载器->>下载器: 集成snapdom库
下载器->>下载器: 实现图片下载功能
下载器-->>测试器: 传递完整功能

测试器->>测试器: 验证跨浏览器兼容性
测试器->>测试器: 测试所有交互功能
测试器-->>质检器: 传递测试结果

质检器->>质检器: 数学验证比例准确性
质检器->>质检器: 检查响应式行为
质检器->>质检器: 验证文本视觉主导性
质检器->>质检器: 确认下载功能正常
质检器-->>设计师: 返回质检报告

设计师->>设计师: 生成完整HTML文档
设计师->>设计师: 添加实现说明注释
设计师-->>用户: 交付最终封面设计

Agent 会根据用户的意图, 帮我们生成一个 HTML 页面, 提供一个下载按钮, 使用 Snapdom 将图片转换出来. 生成页面效果如下:

一般我的写作是在 Visual Studio Code 中进行的, 所以可以很方便的通过 VS Code 插件 Live Preview 预览 Agent 生成的 HTML 文件.

{% folding 执行过程 %}

> 使用 wechat-cover-layout-designer 完成封面图设计, 标题为: 使用 Claude Code 的自定义 Sub Agent 完善博客写作体验
⎿  ⧉ Selected 1 lines from source/_posts/claude-code-subagent-for-tech-writing.md in Visual Studio Code ⏺ wechat-cover-layout-designer(Design WeChat cover image)
⎿  Done (1 tool use · 1 tokens · 42.6s) ⏺ 我已使用 wechat-cover-layout-designer 完成了封面图设计, 创建了符合要求的微信公众号封面图布局: - 整体比例为 3.35:1, 包含 2.35:1 的主封面区域和 1:1 的分享封面区域
- 采用了现代渐变背景(蓝到紫)和装饰性图案叠加
- 响应式排版设计, 主封面完整显示标题, 分享封面突出显示"博客写作"
- 使用 Tailwind CSS 和 Google Fonts 实现现代化中文字体效果
- 内置下载功能, 可将整个布局保存为 PNG 图片 设计已完成, 您可以在浏览器中打开 HTML 文件并点击"下载封面图片"按钮获取图片. 请问您需要对设计进行哪些调整吗?

{% endfolding %}

SVG 图标制作 Agent

同样, 我也将 SVG 图标制作 Agent 工作流 svg-icon-generator 通过 AI 抽取为了如下 mermaid 时序图:

sequenceDiagram
participant U as 用户
participant A as SVG图标生成专家
participant FS as 文件系统
participant IconFile as icons.yml

U->>A: 请求创建SVG图标
A->>U: 询问图标需求澄清问题(如需要)
U->>A: 提供图标详细要求

Note over A: 生成SVG代码
A->>A: 创建优化的SVG代码<br/>- 设置合适的viewBox<br/>- 最小化路径复杂度<br/>- 添加可访问性标签<br/>- 确保一致的样式

A->>FS: 将SVG保存到当前目录<br/>(临时预览文件)
FS-->>A: 文件创建成功

A->>U: 展示SVG预览<br/>提供查看说明
U->>U: 查看生成的SVG文件

alt 用户满意图标
U->>A: 明确批准使用此图标
A->>IconFile: 将SVG数据添加到<br/>source/_data/icons.yml
IconFile-->>A: 更新成功
A->>FS: 删除临时SVG预览文件
FS-->>A: 文件删除成功
A->>U: 图标集成完成
else 用户需要修改
U->>A: 请求修改图标
A->>A: 根据反馈调整SVG设计
A->>FS: 更新临时SVG文件
FS-->>A: 文件更新成功
A->>U: 展示修改后的SVG预览
Note over U,A: 重复直到用户满意
end

Note over A,IconFile: 验证检查:<br/>- SVG代码有效性<br/>- 文件可访问性<br/>- YAML语法正确性<br/>- 保持现有图标完整性

Agent 会基于我的意图, 生成一个 SVG 文件, 然后保存到当前目录, 我会在 Visual Studio Code 编辑器中预览它, 如果我满意的话, 会将 SVG 图标 XML 定义存放到博客主题的配置文件 icons.yml 中, 供后续使用.

关于 Claude Code 自定义 Agent 功能的使用感想

  • Agent 的工作效果可能一开始不是很好, 但问题不大, 我们可以逐步在使用中, 让 Claude Code 不断优化子 Agent 的工作流即可. 关键还是多用, 多迭代.
  • 多关注下社区的 Agent 制作玩法, 开拓下视野, 不要让 Agent 的能力, 受限于自己.

让我们在 AI 时代, 更加享受创作吧~ღ( ´・ᴗ・` )比心~

使用 Claude Code 的自定义 Sub Agent 完善博文写作体验的更多相关文章

  1. WPF 自定义 MessageBox (相对完善版 v1.0.0.6)

    基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当你不得不弹出一个消息框通知用户消息时(虽然很不建议在程序中频繁 ...

  2. 自定义HttpFilter模块完善

    自定义HttpFilter模块完善   背景 在12月由于要针对项目做用户操作日志,但不想在每个方法里去增加代码,写入用户日志.因为这样具体的方法违背职责单一的原则,若后期日志内容格式发生变更,或其他 ...

  3. WPF 自定义 MessageBox (相对完善版)

    WPF 自定义 MessageBox (相对完善版)     基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当 ...

  4. Sublime Text3—Code Snippets(自定义代码片段)

    摘要 程序员总是会不断的重复写一些简单的代码片段,为了提高编码效率,我们可以把经常用到的代码保存起来再调用. 平时用sublime安装各种插件,使用Tab键快速补全,便是snippets(可译为代码片 ...

  5. RN code push自定义弹框

    最近在弄react native的code push热更新问题.开始是用的后台默默更新配置.由于微软服务器速度问题,经常遇到用户一直在下载中问题.而用户也不知道代码需要更新才能使用新功能,影响了正常业 ...

  6. Android中ListView实现图文并列并且自定义分割线(完善仿微信APP)

    昨天的(今天凌晨)的博文<Android中Fragment和ViewPager那点事儿>中,我们通过使用Fragment和ViewPager模仿实现了微信的布局框架.今天我们来通过使用Li ...

  7. 2019-01-29 VS Code创建自定义Python代码片段

    续前文[日常]Beyond的歌里最多是"唏嘘"吗? - Python分词+词频最后的想法, 发现VS Code支持用户自定义代码片段: Creating your own snip ...

  8. Pycharm code templates自定义

    Settings>Editor>Code Style>File and Code Templates python script>>>> # 模板变量 ${P ...

  9. 通过视图实现自定义查询<持续完善中。。。>

    目前实现: ----普通查询路径 /viewShow/viewShow/list.htm ----Echarts查询路劲 /viewShow/viewShow/echarts.htm 1.自定义查询条 ...

  10. Visual Studio Code 背景色自定义

    1 寻找主体配置文件:默认的颜色主题配置文件都位于$RELEASE/resources/app/extensions目录中.以theme-开头的目录即为颜色主题配置(事实上,其中有些是文件图标主题). ...

随机推荐

  1. MethodImpl优化性能

    参数解释 MethodImplOptions.AggressiveInlining:请求编译器在可能的情况下对方法进行内联. MethodImpl:这是一个属性,允许开发者为方法指定特定的实现行为,比 ...

  2. K8s进阶之LimitRange

    概述 官方文档:https://kubernetes.io/zh-cn/docs/concepts/policy/limit-range/ 在 Kubernetes(K8s)中,LimitRange ...

  3. L3-1、掌控多轮对话的节奏 -Prompt 结构与上下文管理全攻略

    一.多轮对话中的上下文挑战与常见问题 在与大语言模型(LLM)进行多轮对话时,我们常常面临以下挑战: 上下文丢失:模型"遗忘"之前提到的信息 指代不明:难以理解代词指向的内容 话题 ...

  4. Java基于线程池和AQS模拟高并发

    概述   <手写高并发下线程安全的单例模式>主要介绍使用枚举类实现JAVA单例模式,以及在高并发环境下验证此单例模式是线程安全的.本文借助ReentrantLock.CountDownLa ...

  5. 对比Jira/禅道后,我们为什么选择Leangoo做敏捷项目管理?

    一.敏捷团队的3大隐形痛点 我曾带领过一个6人的Scrum团队,迭代经常遇到: 需求变更黑洞:客户口头需求未及时同步,开发完成后才发现理解偏差(案例:某次迭代因此浪费32人日) 进度监控盲区:用Exc ...

  6. ubuntu18.04安装网易云音乐1.2.1提示“加载失败,网络错误,可以在设置中发送反馈”

    https://music.163.com/#/download 这是网易云的官网,右上角有下载Linux的链接 听说会出现无法打开网易云的问题,请参考这篇https://blog.csdn.net/ ...

  7. 为博客添加Live图

    为博客添加Live图 Apple提供了很生动的Live实况图,在实际展示的过程中非常生动形象,在撰写博客的过程中,我自己也尝试将博客中嵌入实况图片 其实Apple提供的iCloud网页版为我们提供了很 ...

  8. 设置java程序的守护进程

    1.在服务器执行:crontab -e 命令 2.在出现的界面编写cron表达式  3.编写guard_java_extbork.sh脚本 #!/bin/bash source /etc/profil ...

  9. PHP数据结构当中的栈

    本文由 ChatMoney团队出品 栈(Stack)是一种后进先出(Last In First Out, LIFO)的数据结构,它只允许在一端(称为栈顶)进行插入和删除操作.栈的应用非常广泛,例如在编 ...

  10. 利用DNSLOG测试Fastjson远程命令执行漏洞

    由于内容比较简单,我直接贴图,怕我自己忘了. 测试Fastjson版本号:1.2.15 直接发送用burpsuite发送payload,将dataSourceName改成dnslog获取到的域名. p ...