n8nでブログネタを考えるためのアシスタントを作ってみた
今回は、n8nで私のブログネタを過去のものから発展させる形で提案させるワークフローを作ってみました。
要件定義
今回は以下の機能を実現するエージェントを作りました。
- ユーザから受け取ったブログに関する相談を行う
- ツールとして、私のテックブログのRSS Feedを読み取る機能を与える
- AIモデルはgpt-4.1-miniを利用
- ブログに関する相談以外はリジェクトさせる
n8nでの環境構築
今回はローカル環境でdockerを利用して環境構築しました。詳しくは公式GitHubを参考に起動してください。
ワークフローの作成
まずは全体像は以下のようなシンプルなものになります。

ワークフロー全体像
それではそれぞれのコンポーネントを見ていきましょう。
OpenAI Chat Model
エージェントのChat ModelにはOpenAIを指定します。Credential to connect withでは事前に用意したOpenAIのAPIキーを指定します。モデルは要件に従ってgpt-4.1-miniを指定します。

チャットモデル(OpenAI gpt-4.1-mini)
RSS Readツール
テックブログのアシストをしてもらうために、RSSフィードを読み取るためのツールを指定しています。ZennのRSSフィードはhttps://zenn.dev/ユーザ名/feedで取得できます。なお、デフォルトでは20件しか取得できないらしく、全権取得するためにはall=1というクエリパラメータを設定する必要があるとのことで、クエリパラメータを追加しています。

RSS Reader
エージェント
最後にチャットモデルとRSS Readを接続してエージェントを実装します。システムプロンプトだけ修正していますが、それ以外はデフォルトで指定しました。システムプロンプトは以下を指定しています。
| プロンプト原文 | 日本語 |
|---|---|
| You are my help assistant for writing blogs. You have RSS feed of my tech blog. Please answer my questions based on my previous articles. If you received any topic which is not related to blog, you just respond like "That is not my job". | ブログを書く上で、あなたは私のアシスタントです。私の技術ブログのRSSフィードもお持ちです。過去の記事に基づいて、私の質問に答えてください。 ブログに関係のない話題を受け取った場合は、「それは私の仕事ではありません」とでも言いたげに答えてください。 |
このプロンプトにすることで、テックブログに関する質問が来たらRSS Readerで情報を取得した上でアドバイスをしてもらい、それ以外の話題が来たらThat is not mu jobと答えることを期待します。

エージェント
早速実行してみる
それでは早速実行してみます。以下、私の質問と回答のペアになります。
私のブログでよく取り扱われている話題を5つ教えて
私のブログでよく取り扱われている話題のうち、代表的な5つは以下の通りです。
NVIDIA関連とAIモデルの脆弱性検知
NVIDIA認定資格の取得体験記(例:Associate Generative AI LLMs編)
garakを使ったAIモデル(Geminiやgpt等)の脆弱性検知の検証
データパイプラインおよびデータ管理ツール
prefectによるデータパイプラインの実装入門
dvcによるデータのバージョン管理
機械学習に関する技術解説とツール
pyscnを使ったPythonコードの品質分析
cuMLとsklearnの簡易比較
OptunaやPytorch Lightningを使ったモデル最適化
Aimによる実験管理
クラウドおよびインフラ技術
NVIDIA BrevでのGPUインスタンス利用やモデルデプロイ
Google CloudのTerraformを使ったインフラ構築とサービスデプロイ
Vertex AI PipelinesやFeature Storeの解説
生成AI・LLM関連の実験と技術紹介
Evidentlyを使ったLLM評価
NeMo GuardrailsやOpenAI Agent BuilderなどのGuardrail機能検証
LangflowやOpenLITなどエージェント・ワークフロー構築ツールの紹介
他にも、Pythonのコマンドラインツール紹介シリーズや開発環境構築関連、Apacheプロジェクトの概観など幅広く投稿されています。
今まで書いてきた内容をより深ぼった内容を出したいのですが、何か提案して?
これまでのブログ記事から、内容を深掘りするにあたっていくつかの提案ができます。
NVIDIA認定資格に関する記事(「NVIDIA 認定資格奮闘記」シリーズなど)をさらに深く:
資格取得までの詳細な準備プロセスや苦労した点、そして具体的な勉強方法の紹介
資格取得後の実務での活用例や資格がキャリアに与えた影響
最新のNVIDIA技術動向や応用事例
garakによるLLMの脆弱性診断(複数記事あり)を専門的に:
脆弱性検知手法の詳細な解説や、検知結果の技術的分析
garakのカスタマイズ方法や拡張例
LLMのセキュリティに関して最新の研究動向や業界動向を踏まえた解説
データパイプラインと管理(prefect, dvc, Rayシリーズ)を系統的に掘り下げ:
実務での活用事例やベストプラクティス
大規模データや分散システム対応の高度な設定やトラブルシューティング
各ツールの連携方法や相互運用性の解説
Pythonのコード品質・開発効率向上(pyscn, skorch, loguru, clickなど)にフォーカス:
実際のコードを例にした高度なリファクタリング例
大規模プロジェクトでの運用方法や自動化例
最新Pythonトレンドを取り入れた開発ノウハウ
Google CloudやVertex AI、Terraformなどのクラウド・IaC関連:
実践的な構築例からトラブルシューティングまで
より複雑な構成や自動化実験記録
最新機能活用やセキュリティ強化策
生成AI関連(LlamaIndex、OpenLIT、Langflow、NeMo Guardrailsなど)やエージェント開発の応用:
複数ツール比較や組み合わせ例の紹介
実際のプロジェクト事例や運用上の注意点
エージェントの安全性と倫理的な利用
ご関心のある特定分野や記事を教えていただければ、より具体的な深掘り案や切り口を提案できます。
人生とは?
That is not my job.
明日の占いして
That is not my job.
次のiPhoneはいつ発売されますか?
次のiPhoneの発売時期について、私の過去のテックブログ記事には情報がありませんでした。最新の発売情報については公式のApple発表や信頼できるニュースソースをご確認ください。
パッと実行した感じ、ブログに関係ありそうなないようであればRSS Readerを通じて情報整理することは確認できつつ、次のiPhoneはいつ発売されますか?という質問に対しては本来はThat is not my job.と返して欲しかったですが、RSS Reader経由で私のブログを参照してしまました。まだまだシステムプロンプトやパラメータのチューニングは必要そうですが、アドバイスは結構してくれることは確認できました。なお、ブログの内容をちゃんと調べて回答しているわけではなしているわけではないので注意が必要ですね。
まとめ
今回はn8nで私のブログに関して相談に乗ってくれるエージェントをシンプルですが作ってみました。今回はあくまでRSSフィードから得られる情報しか使わなかったので、次回以降で記事の内容を見て判断し、継続的に私のブログの改善に一役買ってくれるエージェントを作ろうと思います。
Discussion