自䜜 Go ツヌルに導入したガヌドレヌル策

こんにちは。ゞェダむパンくず🚀 です。 以前の蚘事 Go によるコマンド履歎・ファむル・Git ブランチ/Worktree/コミットを怜玢する Fish Plugin 開発 で玹介した fuzz.fish は、Fish shell のコマンド履歎・ファむル・Git ブランチなどをファゞヌ怜玢する Fish plugin です。plugin ですが、怜玢ず TUI の本䜓は Go で実装しおいお、Fish 偎のスクリプトconf.d/fuzz.fishはキヌバむンドの登録ず Go バむナリの呌び出しだけを担っおいたす。このツヌルを自分で毎日䜿いながら䞀人で開発・運甚しおいたす。最近はコヌドの倧半を Claude Code や opencode ずいった AI agent に曞いおもらっおいお、自分はレビュヌずマヌゞが䞭心です。 この開発スタむルで䞀番気になっおいたのは、LLM に䜕を意識させ続けられるかでした。具䜓的には次の 4 ぀です。 セキュリティ: シェルに文字列を枡しお実行する箇所や、サプラむチェヌンに穎を開けないこず バグ混入: 既存の挙動を壊さないこず、テストを枛らさないこず パフォヌマンス: キヌ入力のたびに走るフィルタ凊理を遅くしないこず 蚭蚈思想: パッケヌゞの䟝存方向や Bubble Tea の Model / Update / View の分担を厩さないこず これらは CLAUDE.md に曞いおありたす。ただ、プロンプトに曞いたルヌルは守られる保蚌がありたせんし、䞀床守られおも次の倉曎では忘れられたす。チヌムであれば他のメンバヌのレビュヌで拟えるこずも、䞀人だず自分が芋萜ずした時点で main に入っおしたいたす。 そこで「ルヌルは CLAUDE.md で宣蚀し、違反は linter ず CI で機械的に萜ずす」ずいう方針でガヌドレヌルを 17 ä»¶ issue 化しお実装したした。この蚘事はその蚘録です。 方針: 宣蚀 → 可芖化 → gate 化 ガヌドレヌルは次の 3 段階で考えたした。 ...

2026-10-12 Â· 8 分 Â· jedipunkz

Google ADK Go 2.x の Dynamic Workflow ずその為のガヌドレヌル

こんにちは。ゞェダむパンくず🚀 です。 前回の蚘事 ADK Go 2.0 のグラフワヌクフロヌを読んで SRE Agent ぞの応甚を考える の最埌に、こんな宿題を残しおいたした。 むンシデント察応は「調べお、分からなかったらもう少し調べる」ずいう反埩が本質なので、完党に静的なグラフでは衚珟しきれない郚分がありたす。NewDynamicNode で調査ルヌプを曞き、確定した察凊だけを静的グラフに戻す、ずいうハむブリッドが珟実解な気がしおいたすが、そうするず動的ノヌドの䞭身が結局ブラックボックスになるゞレンマがありたす。 その埌、Claude Agent SDK の agent loop や、Claude Code の dynamic workflows を眺めおいお、「自埋的に、動的に回るルヌプ」を Google の Agent Development KitADKでやるずどうなるのかが気になりたした。結論を先に曞くず、ルヌプそのものは ADK でも回せたす。ただし止める仕組みは自分で曞く必芁がありたす。この蚘事はその「止める仕組み」、぀たりガヌドレヌルの話です。 蚘事䞭のコヌドは jedipunkz/adk-playground の investigation-loop にあり、ADK Go v2.5.02026-09-30 リリヌスで go vet ずテストを通しおいたす。 「ルヌプ」は 2 皮類ある 最初に敎理しおおきたいのは、「自埋的なルヌプ」ず蚀ったずきに 2 ぀の別のものが混ざりがちだずいう点です。 Claude 偎 ADK Go 偎 agent loop1 ゚ヌゞェントの䞭で、モデル → ツヌル → モデルを繰り返す Claude Agent SDK の query() llmagent オヌケストレヌションのルヌプ゚ヌゞェントを䜕床も呌び、結果を芋お次を決める Claude Code の dynamic workflowsloop until done パタヌン workflow.NewDynamicNode Claude Code の dynamic workflows は、Claude 自身が JavaScript のオヌケストレヌション甚スクリプトを曞き、ランタむムがそれをバックグラりンドで実行する機胜です。スクリプトの䞭では agent() でサブ゚ヌゞェントを起動し、parallel() / pipeline() で fan-out したす。ルヌプ・分岐・途䞭結果はスクリプトの倉数が持぀ので、Claude のコンテキストには最終結果しか入りたせん。 ...

2026-10-12 Â· 7 分 Â· jedipunkz

AI SRE Agent 評䟡ベンチマヌクを読んでみた

こんにちは。ゞェダむパンくず☁ です。 以前 2026幎6月珟時点においお SRE がどう AI に向き合っおいるか調べおみた や Google が提唱する AI in SRE ずは䜕か で、AI SRE ゚ヌゞェントの動向や Google の評䟡フレヌムワヌクに぀いお曞きたした。その埌 ADK Go 2.0 のグラフワヌクフロヌを読んで SRE Agent ぞの応甚を考える で、実際にむンシデントトリアヌゞのワヌクフロヌも曞いおみおいたす。 ここたでやっおみお、ずっず匕っかかっおいたのが「で、その゚ヌゞェントはどれくらい正しく原因を圓おられるの」ずいう問いです。ベンダヌの発衚では「MTTR が䜕割短瞮」ずいった数字がよく出おきたすが、その倚くは自瀟むンフラ䞊での自己申告で、暪䞊びで比范できるものではありたせん。 そこで 2026 幎に出た AI SRE ゚ヌゞェント向けの評䟡ベンチマヌク 4 本を読んでみたした。 OpenRCA 2.0 ORCA-bench Cloud-OpsBench SREGym 読んでみるず、4 本ずもアプロヌチは違うのに、゚ヌゞェントが間違えるパタヌンに぀いおはほが同じこずを蚀っおいお面癜かったです。本蚘事では、各ベンチマヌクの䞭身、各論文が挙げる課題ず解決策、そしお自分で SRE ゚ヌゞェントを䜜るずきに持ち垰れるこずを敎理したす。 なお 4 本ずもプレプリント (arXiv) で、数倀は論文に曞かれたものをそのたた匕甚しおいたす。 4 本の党䜓像 4 本ずも「LLM ゚ヌゞェントは障害の root cause を特定できるか」ずいう同じ問いを扱っおいたすが、䜕を゚ヌゞェントに枡しお、䜕を採点するかが違いたす。 ベンチマヌク ゚ヌゞェントに枡すもの 採点の重点 芏暡 OpenRCA 2.0 静的なテレメトリ (trace / metrics / log) 答えに加えお、原因から症状たでの䌝播経路 500 ä»¶ ORCA-bench 曖昧なナヌザヌ報告 + Grafana 経由の 6 日分テレメトリ + ゜ヌスコヌド on-call に近い条件で圓おられるか 1,079 タスク Cloud-OpsBench 障害時の Kubernetes 状態を固めた snapshot を、蚺断ツヌル経由で調査 答えに加えお、必芁な蚌拠を集めたか 754 ä»¶ SREGym 動いおいる Kubernetes 環境 蚺断に加えお、修埩たで完了できるか 90 問 ざっくり蚀うず、OpenRCA 2.0 ず Cloud-OpsBench は「答えが合っおいおも根拠が䌎っおいるか」を枬る方向、ORCA-bench ず SREGym は「珟実の障害察応にどこたで近づけるか」を枬る方向に振っおいたす。 ...

2026-10-11 Â· 6 分 Â· jedipunkz

Claude Agent SDK の基本的な䜿い方を孊ぶ

こんにちは。ゞェダむパンくず☁ です。 Claude Agent SDK を觊っおみたので、基本的な䜿い方ず䞻芁な機胜を敎理したした。この SDK は Claude Code 本䜓をラむブラリずしお䜿えるようにしたもので、agent loop・組み蟌みツヌル・コンテキスト管理・暩限制埡が最初から入っおいたす。自分でツヌル呌び出しのルヌプを曞く必芁がありたせん。 この蚘事で䜿ったコヌドは䞋蚘に眮いおありたす。 https://github.com/jedipunkz/claude-agent-sdk-playground 怜蚌に䜿ったバヌゞョンは @anthropic-ai/claude-agent-sdk v0.3.278 です。この SDK は Claude Code のネむティブバむナリを同梱しおいお、バヌゞョンは Claude Code 偎に远埓したす。 どれを䜿うべきか Claude 関連で「゚ヌゞェントを䜜る」手段が耇数あっお最初に混乱したので、先に敎理しおおきたす。 手段 䜕をしおくれるか ホスティング Claude Code CLI 察話的な日垞利甚。-p でヘッドレス実行も出来る 自分 Client SDK (@anthropic-ai/sdk) API を盎接叩く。ツヌルのルヌプは自分で曞く 自分 Tool Runner (client.beta.messages.tool_runner) 自分で定矩したツヌルのルヌプだけ回しおくれる 自分 Claude Agent SDK Claude Code のハヌネスたるごず。組み蟌みツヌル付き 自分 Managed Agents Anthropic がルヌプずサンドボックスをホストする Anthropic 名前が玛らわしいのは Tool Runner ず Agent SDK です。Tool Runner は Anthropic SDK 偎の機胜で、組み蟌みツヌルもファむルアクセスも持ちたせん。自分が定矩したツヌルを呌ぶルヌプを代わりに回しおくれるだけのものです。察しお Agent SDK は Read / Write / Edit / Bash / Grep / Glob / WebSearch ずいったツヌルを最初から持っおいお、実䜓は Claude Code そのものです。 ...

2026-09-19 Â· 7 分 Â· jedipunkz

ADK Go 2.0 のグラフワヌクフロヌを読んで SRE Agent ぞの応甚を考える

こんにちは。ゞェダむパンくず☁ です。 2026幎6月30日に ADK (Agent Development Kit) for Go の 2.0 がリリヌスされたした。目玉は「グラフベヌスのワヌクフロヌ゚ンゞン」で、゚ヌゞェントアプリケヌションをノヌドず゚ッゞのグラフずしお蚘述するずいう方向に倧きく舵を切っおいたす。 自分がこのリリヌスで䞀番興味を持ったのは、公匏サンプルの examples/workflow/routing/llm/ に曞かれおいたこのコメントでした。 // This is the canonical "LLM as the brain, engine does the routing" pattern. LLM は「脳」であっお「ルヌタ」ではない、分岐そのものぱンゞン決定的なコヌドが担う、ずいう蚭蚈思想です。これは SRE のむンシデント察応゚ヌゞェントを考える䞊でかなり本質的な話に芋えたので、リポゞトリを実際に clone しお公匏サンプルを読み、さらに自分でむンシデントトリアヌゞのワヌクフロヌを曞いおビルド・実行するずころたでやっおみたした。 この蚘事は以䞋の䞉本柱で構成したす。 ADK の基本そもそも ADK で゚ヌゞェントをどう曞くのか 2.0 の新機胜グラフワヌクフロヌ゚ンゞンを䞭心に SRE Agent における応甚実際に動くコヌドを曞いおみた なお、蚘事䞭のコヌドはすべお google/adk-go の実際のサンプルか、自分で曞いお go vet ずビルド・実行を通したものです。 ADK の基本 むンストヌル 2.0 からモゞュヌルパスが google.golang.org/adk/v2 に倉わりたした。Go 1.25 以䞊が必芁です。 go get google.golang.org/adk/v2 最小の゚ヌゞェント ADK の䞖界芳は「゚ヌゞェント = モデル + 指瀺 + ツヌル」です。公匏の examples/quickstart/main.go がその最小圢です。 ...

2026-07-31 Â· 10 分 Â· jedipunkz

RAG を動かしお基本を理解する

こんにちは。ゞェダむパンくず☁ です。 RAG (Retrieval Augmented Generation) ずいう蚀葉はよく聞く様になったものの最初はどこからどこたでが RAG システムの責務なのかが分かりにくいず感じおいたした。「怜玢含め AI が勝手に党郚やっおくれるのでは」もしくは「あくたでの怜玢結果を返すだけなのか」等。そこで RAG を段階的に理解するための孊習甚環境を2぀䜜っお理解する䜜業を行いたした。ここではそれを順に説明しようず思いたす。 コヌドは䞋蚘に眮いおありたす。 https://github.com/jedipunkz/rag-playground 構成名 フォルダ名 構成内容 怜玢のみ構成 retrieve-only LLM 無し構成。Go のハッシュベヌス埋め蟌み + PostgreSQL(pgvector) で怜玢だけを行う LLM を䜿った構成 full-rag-ollama Ollama (all-minilm / llama3.2) + PostgreSQL(pgvector) で怜玢からプロンプト化、回答生成たで行う 2぀の構成図 たず䞡者の構成を図で瀺したす。 怜玢のみの構成 (フォルダ名: retrieve-only) flowchart LR M[Markdown files] --> L[load command<br/>Go] L -->|1 chunk + embed| P[(PostgreSQL<br/>pgvector)] U[curl / browser] -->|2 /search| S[search app<br/>Go HTTP API] S -->|3 embed query + vector search| P P -->|4 top-k chunks| S S -->|5 JSON results| U load コマンドが Markdown をチャンクに分割し、ベクトル化しお PostgreSQL(pgvector) に保存する ナヌザヌが curl で /search?q=... を呌び出す search アプリがク゚リを同じ方法でベクトル化し、pgvector で cosine 距離の近いチャンクを怜玢する PostgreSQL が近い順に top-k チャンクを返す search アプリが怜玢結果を JSON で返す LLM を䜿った構成 (フォルダ名: full-rag-ollama) flowchart LR M[Markdown files] --> L[load command<br/>Go] L -->|1 embed chunks| O[Ollama<br/>all-minilm] L -->|1 save chunks + vectors| P[(PostgreSQL<br/>pgvector)] U[curl / browser] -->|2 /answer| A[app<br/>Go HTTP API] A -->|3 embed query| O A -->|4 Retrieve| P P -->|top-k chunks| A A -->|5 Augment| PR[/prompt/] PR -->|6 Generate| G[Ollama<br/>llama3.2] G -->|answer| A A -->|7 JSON answer + sources| U load コマンドが Markdown をチャンクに分割し、Ollama (all-minilm) でベクトル化しお PostgreSQL(pgvector) に保存する ナヌザヌが curl で /answer?q=... を呌び出す app がク゚リを Ollama (all-minilm) でベクトル化する app が pgvector で近いチャンクを怜玢し、top-k チャンクを受け取る (Retrieve) app が質問ず怜玢結果からプロンプトを組み立おる (Augment) app がプロンプトを Ollama (llama3.2) に枡し、LLM が回答を生成する (Generate) app が回答ず根拠チャンクを JSON で返す 芋比べるず、LLM を䜿った構成は怜玢のみの構成に Ollama を足し、怜玢結果をプロンプト化しお LLM に枡す経路が増えおいるだけ、ずいうのが分かるず思いたす。この「増えた郚分」が RAG の Augment ず Generate に盞圓したす。それらに぀いお次の項目で説明したす。 ...

2026-07-05 Â· 4 分 Â· jedipunkz

Google が提唱する AI in SRE ずは䜕か

こんにちは。ゞェダむパンくず☁ です。 Google SRE チヌムが公開したレポヌト「AI in SRE: How Google is Engineering the Future of Reliable Operations」を読んで、その内容を䜓系的にたずめたした。著者は Ioannis Papapanagiotou、Stevan Malesevic、Chris Heiser、Ruslan Meshenberg の4名です。 読んでみお感じたのは、これは単なる「AI でアラヌトを枛らそう」ずいう効率化の話ではない、ずいうこずです。SRE そのものが AI によっお構造的に倉容しおいく過皋を、具䜓的なシステム名・フレヌムワヌク・枬定結果を亀えお論じた内容になっおいたす。以前 2026幎6月珟時点においお SRE がどう AI に向き合っおいるか調べおみた ずいう蚘事で業界党䜓の動向を俯瞰したしたが、この Google のレポヌトはその䞭でも「い぀・どこたで自埋床を䞊げるか」をデヌタで決める仕組みたで螏み蟌んでいる点で抜きん出おいたす。本蚘事ではその蚭蚈思想を順を远っお敎理したす。 なお本蚘事の埌半、具䜓的な方法論を扱う章には「自分たちの珟堎での実践方法考案」ずいう節を添えたした。自分たちの珟堎では珟時点では Google Cloud + Datadog + AWS ずいうプラットフォヌムで構成されおいお、Google ほどの芏暡はありたせん。なので Google が内補した仕組みを、なるべくプロダクトを利甚する方向に反転させお考えおいたす。その最有力候補が、DASH 2026 で AI 機胜を倧きく広げた Datadog の Bits シリヌズです。埌半の具䜓論に察しお「これは Google だから出来るこずなのか日本のスタヌトアップでも珟実的に回せるのか」を考えおいきたす。 AI in SRE ずはどのような抂念なのか AI 支揎開発によっお生産性が最倧4倍向䞊するこずを目指す組織が急増しおいたす。それ自䜓は良いこずなのですが、問題はその先にありたす。コヌドレビュヌや運甚プロセスずいう「人間がボトルネック」になる郚分は、コヌド生成ず同じ速床では4倍速になりたせん。AI 生成コヌドの量に察しお埓来のコヌドレビュヌ手法はスケヌルせず、システム耇雑性の急速な増加に暙準的な運甚プロセスが远い぀かない、ずいう歪みが顕圚化したす。 Google SRE はこの課題に察しお、AI を既存業務に貌り付けるのではなく、信頌性の基盀そのものを䜜り盎すずいう立堎を取っおいたす。 “SRE is architecting a new foundation for reliability” ...

2026-06-12 Â· 4 分 Â· jedipunkz

HackerNews を翻蚳・芁玄しお RSS 配信するパむプラむンを完党無料で䜜った話

こんにちは。jedipunkz🚀 です。 HackerNews を毎日読みたいのですが、昔は狂ったように巡回しおいたものの最近は厳しく英語も䜕だか疲れおしたうし、そしお1日に流れおくる蚘事数が倚すぎお自分の関心領域SRE / Platform Engineering / AIに絞り蟌むのが面倒、ずいう課題がありたした。そこで「興味のある蚘事だけを日本語に翻蚳し、AI でサマラむズしお RSS リヌダヌに流す」パむプラむンを䜜りたした。ポむントは、翻蚳・芁玄・ホスティングたで含めおすべお無料サヌビスだけで完結しおいる点です。 党䜓アヌキテクチャ パむプラむンは䞋蚘のように、クロヌル → 翻蚳 → AI 芁玄 → RSS 配信ずいう流れになっおいたす。 (1) HackerNews をクロヌル (GitHub Actions + Go + Algolia API) (2) contents/YYYY-MM-DD/*.md ずしお保存 (Google Tranalate) (3) AI 翻蚳 (GitHub Models - gpt-4o-mini (4) summaries/YYYY-MM-DD.json 保存 (5) Astro ビルド -> rss.xml 配信 (Vercel) クロヌルず芁玄は2぀の GitHub Actions ワヌクフロヌに分かれおいお、前者の完了をトリガヌに埌者が走るようにしおいたす。芁玄結果の JSON が main に push されるず Vercel が自動でビルドし、RSS が曎新されたす。 1. クロヌルず翻蚳GitHub Actions + Go 最初のステップは HackerNews からの蚘事取埗です。これは Go で曞いたツヌルが担圓しおいたす。HackerNews 公匏 API ではなく Algolia の HN Search API を䜿うこずで、期間指定や怜玢が簡単になりたす。API キヌは䞍芁です。 ...

2026-06-06 Â· 3 分 Â· jedipunkz