AIToday

Sitrep、Grafana連携のAIコパイロット

Hacker News18時間前LINEで送る
Sitrep、Grafana連携のAIコパイロット

要点

Sitrepはデスクトップアプリで、インシデント中に画面を継続的にスクリーンショットし、Claude のビジョンを使用して主要な事実(トレースID、エラー、メトリクス)を抽出し、AIコパイロットとチャットして数分前に何が起きたかについての質問に答える。Grafana TempoとPrometheusから相関データを取得する。アプリが実行するすべてのLLMコールはそれ自体がインストルメント化され、同じGrafanaインスタンスに送信されるため、デバッグを支援するツール自体がGrafanaでデバッグ可能。

こういう要約が、毎朝あなたのメールに届きます。

無料で登録 →

3つのポイント

  • 何が起きたか

    開発者がSitrepを構築した。メニューバーアプリで、インシデント中に約15秒ごとに画面をスクリーンショットし、Claude のビジョン機能で各フレームを構造化された観察に変換し、「5分前に見たトレースIDは何だったか」といったAIコパイロットへの質問に答え、Grafana Tempoから実際のトレースを取得して時間の経過を表示する。

  • なぜ重要か

    インシデント中、エンジニアは複数ウィンドウ上の数百の一時的な事実(トレースID、エラーパネル、メトリクススパイク、Slackメッセージ)を目にし、コンテキスト切り替え時にほとんどを失う。Sitrepはこれらを自動的にキャプチャーしてインデックス化し、画面履歴を検索して観察をバックエンドトレースと相関させることができる。スクリーン権限やAPIキーなしで動作し、ローカルのモックモードで実行可能。

  • 注目点

    このアプリはHacker Newsでオープンソース化されている。macOSで実行でき、Node ≥20が必要で、Grafanaのデータソースプロキシ経由で統合される(Tempoの場合はTraceQL、メトリクスの場合はPromQL)。OpenTelemetry GenAI規約でインストルメント化されており、コパイロットのLLMコール自体が、それが支援するのと同じGrafanaインスタンスで観測可能。

詳細

SitrepはmacOS メニューバーアプリケーションで、エンジニアがインシデント対応の混乱を管理し、画面コンテキストを自動的にキャプチャーして検索可能にするのに役立つ。インシデント開始を押すと、アプリは画面を約15秒ごと(5秒から5分の間で設定可能)にスクリーンショットし、各フレームを1568ピクセルにダウンスケールしてClaudeのビジョンAPIに送信し、フレーム全体でタイルを比較する重複排除ステップを実行する。重複とノイズをドロップし、少なくとも52個のタイルが移動したか、コンテンツを含むタイルが変更されたフレームを保持。重複排除を生き残ったフレームはClaudeへの1つのビジョンコール経由で処理され、構造化JSON を抽出する:要約、アプリコンテキスト、トレースID、エラーメッセージ、サービス、メトリクス、URL、ダッシュボード、ログ行。プロンプトは部分的に見える値(半分読み取られたトレースID は何もないより悪い)の補完を禁止し、すべての観察がappend-only JSONLファイルに追加され、スクリーンショットは~/Library/Application Support/sitrep/sessions/のローカルに保存される。

コア相互作用はClaudeOpus(アダプティブシンキング有効)でバックアップされたチャットコパイロットと、最大8ラウンドで最大20ツールコール/セッションで実行される手動ツール使用ループ。質問を尋ねる「そのトレースIDは何で、時間はどこに行きました?」エージェントは5つのツールを呼ぶことができる:search_timeline(無料、フレーム観察全体でローカルトークンオーバーラップ検索)、inspect_frame(ストレージスクリーンショットを焦点を当てた質問で再読み込み、使用あたり1つのビジョンコール)、tempo_search(インシデントウィンドウにスコープされたGrafana Tempoに対するTraceQL)、tempo_get_trace(トレースIDの完全スパンリスト)、prom_query(インスタント PromQL、オプションで過去の瞬間で評価)。エージェントの全返信(アダプティブシンキング有効な場合を含む)は会話に戻される。ツール障害はモデルが推論できるテキストとして戻される;モデルコール障害は致命的。引用はフレームを開く副作用として記録される(モデルが主張しない)ため、散文はモデルのものだが領収書はハーネスのもの。

アプリが実行するすべてのLLMコールはそれ自体がOpenTelemetry GenAI セマンティック規約でインストルメント化される:gen_ai.*スパン、トークン使用量ヒストグラム、およびコストカウンター(すべてインシデント対応を支援する同じローカルGrafanaインスタンスに出荷)。アプリは3つの意図的な方法で仕様から逸脱する:gen_ai.operation.nameは常に列挙値chatを報告する(4つのLLMコールタイプはすべてMessages API補完であるため)、app レベルの区別(ingest_frame、inspect_frame、locate、chat)がsitrep.operationに乗る;コストはsitrep.gen_ai.costで、gen_ai.client.cost.usdではない(規約にはコストメトリクスがないため);gen_ai.systemは既存ダッシュボードとの後方互換性のために新しいgen_ai.provider.nameと共に発行される。インターフェースはライブコントロールとしてコストを表示する。ビジョンモデルをOpus 4.8からHaiku 4.5(約5倍安い)に切り替えてスキャン頻度を変え、クリックされる際に推定$/hrが再計算される。Blackoutモードは(OS キャプチャーAPIが呼び出されない)機密画面を開く必要がある時にキャプチャーを完全に一時停止;チャットとタイムラインは動作を続ける。実行するには、Node ≥20とmacOS、オプションでGrafana OTEL-LGTM コンテナをデプロイ(docker run -d --name lgtm -p 3000:3000 -p 4317:4317 -p 4318:4318 grafana/otel-lgtm:latest)、npm install、.env.exampleを.envにコピー(ANTHROPIC_API_KEYを追加またはモックモード用に空白のまま)、npm run devが必要。デモはAPIキーなしでhttp://localhost:5187経由でnpm run demoで実行可能(ステージングデータ使用)。

背景と解説

Sitrepはインシデント対応の実際の課題に対処する:複数のウィンドウとツール全体で数十の高速移動する事実を追跡する認知負荷。画面キャプチャーとビジョン抽出を自動化することで、エンジニアの画面で何が起きたかの検索可能でタイムスタンプ付きのレコードを作成する。ローカルでインデックス化され、検索自体にAPIキーは不要。アーキテクチャーは意図的に軽量:モデルは戦略を決定する(次に呼ぶツール)が、ハーネスはガードレールを強制する(引数の検証、Tempoクエリをインシデントウィンドウにスコープ化して無言の失敗を回避、ラウンドと費用をキャップ)。この分離により、結果が退屈な場合でもエージェントが適応でき、ハルシネーション化されたトレースや暴走ループのリスクを冒さない。

自己計測設計は注目に値する:アプリが実行するすべてのLLMコール(フレーム抽出、タイムライン検索、トレース取得、推論)はOpenTelemetry GenAI スパンでラップされて同じGrafanaインスタンスに送信される。つまり、コパイロット自体のレイテンシ、トークン使用量、エラーがダッシュボードでデバッグ可能で、ツールを観測可能なシステム自体にする(ブラックボックスではなく)。GenAI仕様からの3つの意図的な差異(app レベルの操作をsitrep.operationにルーティングしてgen_ai.operation.nameを汚さない、sitrep.gen_ai.costをドル単位で作成、後方互換性のために廃止予定のgen_ai.systemを発行)既存のGrafanaダッシュボードとの互換性を保ちながら仕様を拡張する実用的な選択を反映。

よくある質問

Sitrepはどのくらいの頻度で画面をキャプチャーしますか?
デフォルトでは約15秒ごとですが、5秒から5分の間で設定可能です。パスワードマネージャーや他の機密画面を開く時には、Blackoutをタップしてキャプチャーを完全に停止できます。
Sitrepを実行するのにAnthropicのAPIキーは必要ですか?
APIキーなしでモックモードで実行できます。UIは本物で、エージェントループは実際にステージングデータに対して実行されます。実際のGrafanaスタックに接続してライブインシデントについて質問するには、.envファイルにANTHROPIC_API_KEYを追加します。
Sitrepはどのバックエンドと統合されますか?
Grafana Tempo(TraceQL経由の分散トレース)、Prometheus(PromQL経由のメトリクス)、およびSlack(インシデントコンテキスト用)。単一のURLと認証情報を使用してGrafanaのデータソースプロキシ経由でアクセスします。
Sitrepを実行するのにはどのくらいの費用がかかりますか?
アプリはスキャン頻度とビジョンモデルの選択に基づいてUIに1時間あたりの推定費用を表示します。Claude Opus 4.8(最も正確な抽出)とHaiku 4.5(約5倍安い)をライブで切り替えられます。タイムライン検索は無料でローカル;inspect_frame(スクリーンショットの再読み込み)だけが、モデルの推論ターンを超えてトークンを消費します。

「大規模言語モデル」の最新ニュースを、毎朝7時にお届けします

AIが要約して、あなたの選んだトピックだけを1日1通。LINE・Email・Slackで届きます。

登録無料・30秒で完了・いつでも解除できます

ディスカッション

まだコメントがありません。最初のコメントを投稿しましょう!

ログインして議論に参加

関連記事

AIニュースを毎日お届け

200以上のソースから厳選したAIニュースを毎日無料でお届けします。

無料で始める

登録無料・30秒で完了・いつでも解除できます