🤖

AIエージェントとの会話からZenn記事を自動生成するWorkflowを作ってみた

に公開

はじめに

AIエージェント(今回はAntigravity)とペアプログラミングをしていると、解決までに至った試行錯誤の過程や、そこで得られた知見がチャットログの中に大量に蓄積されます。

これらは非常に貴重な情報ですが、いざ技術ブログにまとめようとすると、ログを読み返して再構成する作業に意外と時間がかかってしまいます。

そこで、「会話ログから自動でZenn向けの記事ドラフトを生成するAgent Workflow」を構築しました。

解決したかった課題

  • 開発中の技術的な「ハマりどころ」や「解決策」がチャットログに埋もれてしまい、再利用性が低い。
  • アウトプット(記事執筆)の心理的ハードルが高く、後回しになりがち。
  • AIとのやりとりをコピペして記事に貼り付ける手間をなくしたい。

実装したWorkflowの内容

.agent/workflows/create-zenn-article.md というファイルを作成し、エージェントが従うべき手順を以下のように定義しました。

実装したWorkflowの定義内容
---
description: 会話履歴からZenn向けの技術記事を自動生成する
---

このワークフローは、これまでの開発プロセスや議論の内容を整理し、Zennに投稿可能な高品質な技術記事のドラフトを作成します。

## 実行手順

1. **会話履歴の分析と知見の抽出**
   - 直近の会話ログ(またはユーザーが指定した特定のトピックに関する会話)を詳細に分析します。
   - 以下の要素を抽出します:
     - **背景**: なぜその作業が必要だったのか
     - **課題**: どのような技術的な壁にぶつかったか
     - **解決策**: 最終的にどのようなアプローチで解決したか
     - **実装**: 主要なコードスニペットや設定内容
     - **教訓**: 作業を通じて得られた新しい知識や注意点

2. **構成案の作成とタイトルの提案**
   - 抽出した情報をもとに、以下の構成で目次案を作成します。
     - はじめに
     - 解決したかった課題
     - 実装方法・解決策
     - 苦労した点・工夫した点
     - まとめ
   - Zennで「技術記事」として価値が高く、目を引くタイトルを3つ提案します。
   - ユーザーに使用するタイトルを選択してもらうか、承認を得ます。

3. **Markdown本文の執筆**
   - Zennの標準的なMarkdown記法を用いて本文を書き上げます。
   - 必要に応じて、Zenn独自の以下のような記法も活用します。
     - `:::message` (重要ポイントの強調)
     - `:::details` (補足情報や長いコードの折り畳み)
   - 本文は「である」調(常体)または「です・ます」調(敬体)のうち、技術記事として馴染みやすい方(基本は常体)を選択します。

4. **フロントマターの設定**
   - 記事の冒頭に以下の形式でメタ情報を追加します。
     ```yaml
     title: "選択されたタイトル"
     emoji: "🤖" # 内容に合わせた絵文字を選択
     type: "tech"
     topics: ["抽出された技術タグ", "Git", "Agent"]
     published: false # 最初は下書き状態で保存
     ```

5. **ファイルの保存**
   - 生成した内容を `articles/[YYYY-MM-DD]-[slug].md` という形式のファイル名で保存します。
   - ユーザーに作成したファイルのリンクを提示し、内容を確認してもらいます。

実際に使ってみた感想

この記事自体も、今回作成したばかりのWorkflowを使って生成し少し、自分で加筆しただけなので8割はAIがまとめてくれたものとなります。

以下使ったときのやりとりです。

  1. /create-zenn-article と打つ。
  2. エージェントがこれまでの議論(Workflow自体の作り方)を読み取り、構成案を出してくれるので、指示に従う。
  3. 今回はタイトルをどれにするか提案してくれたので番号を打って返答だけしました。するとこの記事のドラフトが出来上がる。

単に要約するだけでなく、「何が課題で、どう解決したか」という対話の文脈を汲み取ってくれるため、自分でゼロから書くよりも圧倒的に速く、かつ正確に記憶を掘り起こすことができます。

また、GitのSubmoduleを使うことで、このWorkflowの内容を更新してもUpdate Submoduleをするだけでそのまま更新した内容を各プロジェクトで使えるなど、幅広く使えるのではないかと考えています

まとめ

AIエージェントはコードを書くだけの道具ではなく、アウトプットを助けてくれるパートナーになりつつあると感じました。
「会話ログを資産に変える」この仕組みを活用して、これからもどんどん知見を公開していきたいと思います。

Discussion