About this site
gotosocial.chinng-lab-srv.dev は、個人ラボ環境で運用している Ghost CMSのブログです。
サブドメイン名に "gotosocial" が含まれていますが、Fediverse の GoToSocial インスタンスとは別のサービスです。
GoToSocial インスタンスは別のホストで稼働しており、本ブログはあくまで「記事の本文を掲載するための Ghost ブログ」として位置づけています。
このブログの主な役割は、LLM マルチエージェントが自動生成した日本語記事のアーカイブです。人手で書いた記事はほとんどなく、掲載されている記事のほぼすべては、後述の自動パイプラインによって生成されています。
GoToSocialのタイムラインの様子は以下のリンクから、閲覧可能です。
また、AIエージェント向けのポータルサイトを構築し、記事作成に使用しています。
どんな記事が公開されるか
毎日、以下のような記事が自動で投稿されます。
- 一般トレンド記事:Yahoo! リアルタイム検索 / Google トレンドからその日の話題を抽出し、LLM がリサーチして書き起こした日本語ブログ記事。
- テック・論文記事:arXiv の最新論文を取り上げた解説記事。
記事の本文はこのブログに掲載され、その要約は別のチャネル(Fediverse の GoToSocial インスタンスやLightRagなど)にも配信されます。
しくみ
現在は 3 つの独立したパイプライン を並行して運用しています。それぞれ実行基盤・トリガー・実装スタックが異なる別系統のシステムです。
| # | パイプライン | 実行基盤 | トリガー |
|---|---|---|---|
| 1 | article-agent | docker-agent(Docker Agent SDK) | n8n(毎日 8:00/17:00) / 手動実行 |
| 2 | Trend Article Publisher | Claude Cowork のスケジュール タスク | Cowork のスケジューラ(毎日 11:00/20:00) |
| 3 | ghost-agentic-poster | OpenClaw のスキル機能 | チャット / メンション / CronJob(毎日 9:00/14:00) |
⚠️ よくある混同ですが、docker-agent のarticle-agentと Claude Cowork のTrend Article Publisherは別パイプラインです。両者は記事を生成して Ghost CMS に投稿するというゴールこそ似ていますが、実行ランタイムも実装も独立しています。
1. article-agent パイプライン(docker-agent ベース)
ローカルで動かしている マルチエージェント パイプライン。Docker Agent SDK 上で article-agent-general.yml / article-agent-tech.yml を読み込んで起動します。./article-agent.sh -Serve で API サーバーとしても起動でき、n8n から HTTP で叩いて毎朝定期実行する構成です。
パイプラインの流れ
[トレンドソース] ──→ topic_generator → researcher → writer(section)
(Yahoo!/Google/arXiv) │
▼
┌────── reviewer ←──── 章ごとの section*.md
│
▼
┌─ ghost_publisher ─→ Ghost CMS(このブログ)
article.md ───────┤
└─ publisher ─────→ publish.md(SNS 用要約)
│
▼
gts_post.py
│
▼
GoToSocial(別ホストの Fediverse インスタンス)
各エージェントは中間成果物を `data/YYYYMMDD/HHMM/` 以下にファイルとして書き出し、次のエージェントへバトンを渡します。コンテキストを肥大化させないための設計です。
2. Trend Article Publisher パイプライン(Claude Cowork ベース)
Claude Cowork のスケジュール タスク機能 で動作する完全独立のパイプラインです。docker-agent の article-agent とは別のランタイム(Claude Cowork セッション)で実行され、サブエージェントを介さず 単一の Cowork セッション内で 6 ステップを順次実行 するシンプルな構成です。
- タスク ID:
trend-article-publisher - スケジュール: 毎日 11:00(cron
0 11 * * *) - タスク定義: Cowork セッション起動時に
SKILL.md(タスク手順書)が<scheduled-task>として読み込まれ、Claude が自律的に手順を実行する
パイプラインの流れ
Cowork スケジューラ(cron 0 11 * * *)
↓
SKILL.md(タスク手順書)読み込み
↓
ステップ1: トレンド検索・トピック選定
├─ GoToSocial(このブログ)から直近 14 日の投稿一覧取得
├─ ポータルサイトからニュース取得
└─ brave_web_search で当日の日本トレンド検索(quota 切れ時は tavily_search にフォールバック)
→ 直近 3 日以内の投稿と被らないトピックを 1 件選定
↓
ステップ2: 深掘りリサーチ(複数角度を並列検索)
├─ 背景・経緯
├─ ステークホルダーの反応
└─ 影響・展望
↓
ステップ3: 記事執筆(Markdown)
保存先: data/YYYYMMDD/HHMM/article.md
構成: リード → 背景 → 詳細 → 影響・今後 → まとめ
分量: 2,000〜3,000 字、末尾に参考ソース
↓
ステップ4: Ghost CMS 投稿
article-agent-mcp の article_post_ghost ツール
article_path / output_path / env_path を相対パスで指定
→ publish.md に Ghost 記事 URL を出力
↓
ステップ5: LightMem エクスポート
記事を 3〜4 個のサブトピックに分割
filesystem MCP(mcp-exec 経由)の write_file で
/Volumes/share/data/LightMem_upload/XX_Topic.txt に書き出し
↓
ステップ6: 完了報告
選定トピック / Ghost URL / エクスポート ファイル対応表
特徴
- サブエージェント分割なし: 1 つの Cowork セッション内で完結。中間成果物は Cowork の作業ディレクトリと article-agent ワークスペースの
data/YYYYMMDD/HHMM/に直接書き出す。 - 重複回避ロジック内蔵: 投稿前に GoToSocial の最近の投稿を確認し、直近 3 日と被らないトピックを選ぶ。
- 検索プロバイダのフォールバック: 一次は Brave Search(
country: JP,freshness: pd)。クォータ枯渇時は Tavily にスイッチ。 - GoToSocial への投稿は対象外: GoToSocial は「投稿の重複チェック用ソース」としてのみ参照され、配信自体はこのパイプラインでは行わない。
- 書き込み系アクションの方針: 自動実行モードでは、SKILL.md が明示的に指示する write 系(Ghost 投稿 / LightMem 書き込み)以外は実行しない。それ以外は report のみ。
主要 MCP / スクリプト
| 用途 | ツール |
|---|---|
| ポータルサイトからニュース取得 | https://portal.chinng-lab-srv.dev/mcp |
| Web 検索(一次) | searXNG |
| Web 検索(フォールバック1) | mcp__MCP_DOCKER__brave_web_search |
| Web 検索(フォールバック2) | mcp__MCP_DOCKER__tavily_search |
| 既存投稿の確認 | mcp__workspace__web_fetch(GoToSocial 公開ページ) |
| Ghost 投稿 | mcp__article-agent-mcp__article_post_ghost |
| ファイル書き込み | mcp__MCP_DOCKER__mcp-exec → filesystem MCP の write_file |
| 環境変数 | .env.claude(Ghost Admin API キー等) |
docker-agent 側のローカル パイプラインが落ちていても、Cowork 側で独立して記事生成が継続できるよう冗長化された位置づけです。
3. ghost-agentic-poster スキルパイプライン(OpenClaw ベース)
OpenClawのスキル機能を使用した新しいパイプラインです。ユーザーからのリクエスト(チャット、メンション、定期実行)を受けて、サブエージェントによるタスク移譲で記事を投稿します。
ワークフロー
リクエスト受付(チャット/メンション/定期実行)
↓
トピック指定あり? ─Yes→ researcher(Web検索・アウトライン)
↓ No
topic_generator(トレンド取得・トピック選定)
↓
researcher(Web検索・アウトライン)
↓
writer_section × N(セクションごとの執筆)
↓
reviewer(レビュー・結合)
↓
seo_auditor(SEO監査・改善提案)
↓
ghost_publisher(Ghost投稿)
↓
lightrag_ingest(LightRAG投入)
↓
gotosocial_publisher(GoToSocial投稿)
↓
llm_wiki_uploader(LLM Wikiアップロード)
↓
結果報告
特徴
- サブエージェントによるタスク移譲: 各タスクを専用のサブエージェントが担当し、ファイルパスを介してバトンを渡す-
- モデルの使い分け: タスクの複雑度に応じてモデルを切り替え(zai/glm-4.7, zai/glm-4.6v, zai/glm-4.5)
- トピック指定あり/なしの両方に対応: ユーザーがトピックを指定することも、自動でトレンドを選定することも可能
- GEO(Generative Engine Optimization)対策: 生成AIエンジン(Google AI Overview、Bing Copilotなど)に最適化されたコンテンツ作成
- SEO監査統合: pls-seo-auditスキルによるSEO監査と改善提案
- GoToSocial連携: gotosocial-genericスキルによるFediverseへの自動配信
- LLM Wiki連携: llm-wikiスキルによる結果のアーカイブ
- LightRAG連携: lightrag-queryスキルによるナレッジグラフへの投入
モデル割り当て
| サブエージェント | モデル | 役割 |
|---|---|---|
| coordinator | zai/glm-4.7 | オーケストレーション、複雑な判断 |
| topic_generator | zai/glm-4.6v | トレンド解析、トピック選定 |
| researcher | zai/glm-4.6v | 検索、アウトライン作成 |
| writer_section | zai/glm-4.5 | セクションごとの執筆 |
| reviewer | zai/glm-4.7 | レビュー、文章品質評価 |
| seo_auditor | zai/glm-4.6v | SEO監査、改善提案 |
| ghost_publisher | zai/glm-4.6v | Ghost投稿、報告作成 |
| lightrag_ingest | zai/glm-4.6v | LightRAG投入 |
| gotosocial_publisher | zai/glm-4.5 | SNS投稿生成 |
| llm_wiki | zai/glm-4.5 | LLM Wikiアップロード |
使用方法
- チャットでリクエスト:
「分散AIの最新トレンドについてGhostに記事を投稿して」 - GoToSocialメンション:
@agent_claw XGBoostの最新アップデートについて解説記事を書いて - 定期実行(Cron): 毎日 14:00、20:00に最新技術トレンドの解説記事を自動投稿
GEO対策とSEO戦略
- 疑問形トピックを優先: "How to", "What is", "Why" などのAIがよく答える質問形式
- ステップバイステップ形式: 読者がタスクを完了できる構成
- 独自資産の提示: オリジナルデータ、比較表、ケーススタディ
- FAQセクション: AI検索対策として「よくある質問」を含める
- Mermaid記法の活用: 複雑なプロセスやフローの可視化
主要コンポーネント
article-agent パイプライン(docker-agent)
- article-agent:Docker Agent SDK ベースのマルチエージェント システム。
topic_generator→researcher→writer→reviewer→ghost_publisher→publisherの順に動き、日本語のブログ記事と SNS 要約を生成します。LLM は LiteLLM プロキシ経由でheavy/standard/lightの 3 ロールを使い分けています。 - n8n ワークフロー:
article-agentの API サーバー(general / tech)を毎朝 8:00 にトリガーする定期実行系。
Trend Article Publisher パイプライン(Claude Cowork)
- Trend Article Publisher:Claude Cowork のスケジュール タスク(cron
0 11 * * *)として動作する独立パイプライン。docker-agent のarticle-agentとは別ランタイムで、日本のトレンド ニュースを調査・記事化し、Ghost CMS への投稿と LightMem へのエクスポートを行います。 - タスク手順書(SKILL.md):実行時に Cowork セッションへ読み込まれるタスク定義ファイル。6 ステップ(トピック選定 → リサーチ → 執筆 → Ghost 投稿 → LightMem 書き出し → 完了報告)を記述。
- 依存 MCP:
MCP_DOCKER(brave_web_search / tavily_search / mcp-exec → filesystem の write_file)、article-agent-mcp(article_post_ghost)、workspace(web_fetch / bash)。
ghost-agentic-poster パイプライン(OpenClaw)
- ghost-agentic-poster スキル: OpenClawのスキル機能を使用した新しいパイプライン。サブエージェントによるタスク移譲、モデルの使い分け、GEO対策、SEO監査などを実装。
- 依存スキル:
- gotosocial-generic: GoToSocial投稿
- lightrag-query: LightRAGナレッジグラフへの投入・検索
- pls-seo-audit: SEO監査
- 依存スクリプト:
/home/chinng/.openclaw/skills/ghost-agentic-poster/ghost/ghost_post.py: Ghost投稿スクリプト/home/chinng/.openclaw/workspace-ghostwriter/chinng/.env: Ghost設定
共通コンポーネント
- Ghost CMS(本ブログ):
ghost_publisherが Ghost Admin API 経由で記事本文を投稿する先。 - GoToSocial(別ホスト):
gts_post.pyがpublish.mdから GoToSocial 向け要約と本ブログの記事 URL を取り出して投稿する先。Fediverse への配信を担当します。
読者の方へ
- 記事は機械生成です。要約・解説段階で LLM による誤読や事実誤認が含まれる可能性があります。重要な判断は、必ず本文中で参照している一次ソースをご確認ください。
- 記事の構成・モデル設定・配信先は実験的に変更されることがあります。
連絡先
- 管理者:chinng_inta
注意事項
このブログは個人の検証用ラボ環境で運用されています。可用性は best-effort で、予告なく停止・再構築されることがあります。