Llama.cppの変更に追いつけないので、毎日要約してくれるn8nワークフローを作った

Reddit r/LocalLLaMA / 2026/4/16

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • Redditの投稿では、llama.cppのGitHubリリースのエンドポイントを自動で確認し、頻繁な変更を手作業で追わなくて済むようにするための、n8nワークフローが紹介されています。
  • このワークフローはGitHubからリリースデータを取得し、直近24時間以内に公開されたリリースのみを抽出し、新しい更新がない場合は早期に終了します。
  • さらに、最近のリリースに含まれるリリースノートを、Discordに送るのに適した1つの結合Markdown要約(投稿者の「毎日のニュース」通知)として集約します。
  • 投稿では、n8nの代わりに他の自動化/エージェントシステム(例:Hermes)でも同様のアプローチを実装できる可能性が示唆されています。
Can't keep up with Llama.cpp changes, made a n8n workflow to summarize it for me daily

Discord経由で毎日届けてくれる私好みのニュース

https://preview.redd.it/prmris11vdvg1.png?width=684&format=png&auto=webp&s=0dcb00079362a38a29d981dd2f3a4e5143c8091f

N8Nのワークフロー(たぶんHermesや別のエージェントでも同様のことはできます):

{ "nodes": [ { "parameters": { "rule": { "interval": [ { "triggerAtHour": 10 } ] } }, "id": "8fbb0e44-2d2b-45e5-8f46-1f95a04d88c4", "name": "Schedule Trigger", "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.1, "position": [ 0, 0 ] }, { "parameters": { "url": "https://api.github.com/repos/ggml-org/llama.cpp/releases", "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "User-Agent", "value": "n8n-workflow-automation" } ] }, "options": {} }, "id": "729fbd1f-98c5-4ed7-8285-f396c8413b5c", "name": "Fetch GitHub Releases", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.1, "position": [ 224, 0 ] }, { "parameters": { "jsCode": "// 直前のノードからすべてのアイテムを取得
const items = $input.all();
const twentyFourHoursAgo = new Date(Date.now() - 24 * 60 * 60 * 1000);

// n8nがHTTPレスポンスをどのようにパースしたかに応じてJSONデータを安全に取り出す
const releases = items.length === 1 && Array.isArray(items[0].json) 
 ? items[0].json 
 : items.map(item => item.json);

// 過去24時間のリリースだけをフィルタ
const recentReleases = releases.filter(release => {
 // availableならpublished_atを使い、なければcreated_atにフォールバック
 const releaseDate = new Date(release.published_at || release.created_at);
 return releaseDate > twentyFourHoursAgo;
});

// 新しいリリースがなければ、空の配列を返してワークフローを止める
if (recentReleases.length === 0) {
 return []; 
}

// すべてのリリースノートを1つのMarkdown文字列に結合
let combinedNotes = recentReleases.map(r => {
 const title = r.name || r.tag_name || 'Update';
 const body = r.body || 'No release notes provided.';
 return `## ${title}
${body}`;
}).join('

---

');

// AIノードが処理するために、最終的に結合したノートと件数を出力
return [{ 
 json: { 
 combinedNotes: combinedNotes, 
 count: recentReleases.length 
 } 
}];" }, "id": "3eb58cee-fa2d-47a8-a6aa-71eb9a22f1a0", "name": "Filter 24h & Extract", "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 448, 0 ] }, { "parameters": { "model": "Qwen3.5-35B:instruct", "options": {} }, "id": "206b7d98-374a-493f-b79d-0ceb2f472dd0", "name": "OpenAI Model", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [ 624, 208 ], "typeVersion": 1, "credentials": { "openAiApi": { "id": "fuQa8ZhsNxUYdif2", "name": "llama-cpp" } } }, { "parameters": { "promptType": "define", "text": "=llama.cpp の以下のリリースノートを要約して。 

まず、変更点の詳細な技術的要約を段落1つで(最大5文)。
次に、一般の人向けにわかりやすく要約を段落1つで(最大6文)。

重要なのは、CUDAの特定の最適化、キャッシュの変更、GPUの改善など、このアップデートで影響を受けるであろう、RTX 5060 Ti と 3090 の混在構成で動かしている環境について必ず強調することです。さらに、QwenまたはGemmaに関する最適化についても具体的に言及してください。 

もしこのアップデートにそれらが存在しない場合は、単にハードウェアに触れないでください。

リリースノート:
{{ $json.combinedNotes }}", "options": { "systemMessage": "あなたは役に立つ映画評論アシスタントです。あなたの内部知識は古くなっています。あなたはSearXNGツールを使って、公開年にかかわらず、すべての映画のクエリを必ずWeb上で検索しなければなりません。内部知識だけで答えないでください。" } }, "id": "fb335d72-077e-4f30-9e00-5cdead0ca298", "name": "AI Agent", "type": "@n8n/n8n-nodes-langchain.agent", "position": [ 624, 0 ], "typeVersion": 1.6 }, { "parameters": { "authentication": "webhook", "content": "= **Llama.cpp 24 Hour Update Summary** ", "options": {}, "embeds": { "values": [ { "description": "={{ $json.output }}", "color": "#E5A00D" } ] } }, "id": "54872e50-f045-4b4b-aa54-3898c225ca14", "name": "Send to Discord", "type": "n8n-nodes-base.discord", "position": [ 944, 0 ], "typeVersion": 2, "webhookId": "26caa31f-87b9-411c-9fe5-0037ec9762a0", "credentials": { "discordWebhookApi": { "id": "w6doohH6ryvsJfQl", "name": "Discord Webhook account" } } } ], "connections": { "Schedule Trigger": { "main": [ [ { "node": "Fetch GitHub Releases", "type": "main", "index": 0 } ] ] }, "Fetch GitHub Releases": { "main": [ [ { "node": "Filter 24h & Extract", "type": "main", "index": 0 } ] ] }, "Filter 24h & Extract": { "main": [ [ { "node": "AI Agent", "type": "main", "index": 0 } ] ] }, "OpenAI Model": { "ai_languageModel": [ [ { "node": "AI Agent", "type": "ai_languageModel", "index": 0 } ] ] }, "AI Agent": { "main": [ [ { "node": "Send to Discord", "type": "main", "index": 0 } ] ] } }, "pinData": {}, "meta": { "templateCredsSetupCompleted": true, "instanceId": "49d2e96c7fb6baed481e1ed60fe55680b7404a961357bb768900d80cabfb3c91" } } 
投稿者 /u/andy2na
[リンク] [コメント]