
2026/08/28 0:45
Show HN: ユーザーセッションを追跡し、重要なバグを検出して自動修復するツール
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Opslane は、管理ダッシュボードに依存せずにプルリクエストを通じて重要なユーザー向けバグを直接解決することで、自動化されたソフトウェアメンテナンスにおける画期的な成果をもたらします。「エージェント優先」の原則に基づき、コードエージェントをターミナルベースの MCP サーバーを介して接続し、無応答なボタンや放棄されたフォームなどの問題を調査・修正します。システムは高インパクトのエラーに優先順位を付け、4 つの部分からなるアーキテクチャによって問題を実行環境マッピングで検出し、グループ化し、隔離されたサンドボックスで解決策を検証し、最後に検証済みの修正または解決が不可能な場合は詳細な説明をデリバリーします。最小限の設定でセルフホスティング可能なよう設計されており、Opslane は完全にローカルスタック上で動作し、PostgreSQL、MinIO(S3 互換)、および Docker を利用しながら、分析には Anthropic、安全なコード実行には E2B などのツールを統合しています。現在 AGPL-3.0 ライセンス(MIT SDK も含む)の下で 1.0 未満のバージョンですが、開発チームが修正・検証・デプロイの全体循環を自動化することを可能にし、機密データに対する完全な制御を維持しつつ、アプリケーションの安定性とエンドユーザー体験の向上を図ります。
本文
Opslane セルフホスト導入ガイド:バグ修正の自動化と自律的デバッグ
概要
Opslane は、ユーザーが遭遇するバグを自動的に発見し、調査して修正する自律的なシステムです。エージェントがコードを検証した上でプルリクエスト(PR)を作成するか、開発者の介入を要請します。
基本理念
- エージェントファースト: エラーダッシュボードを開くことなく、MCP サーバーを通じてコーディングエージェントに調査と修正を任せることが可能です。
- 製品学習: コード構造と実際のユーザー動作(セッション記録)を分析し、文脈に基づいた精度の高いバグ診断を実現します。
- シンプルな構成: Postgres と MinIO の 2 つのコンポーネントのみで動作する単一の Docker Compose ファイルです。
システムアーキテクチャ
Opslane は以下の 4 つのコンポーネントで構成されます。
| コンポーネント | 役割 |
|---|---|
| ブラウザ SDK | ブラウザ内でエラーとセッションを記録します。入力マスキングはデフォルトで有効。 |
| 取り込みサービス | SDK データを受け取り、エラーをグループ化・優先順位付けします。 |
| ワーカー | リポジトリ調査、サンドボックス内での修正検証、PR 作成を行います。 |
| ダッシュボード | 問題の確認、セッション再生、プロジェクト設定変更を行う Web アプリです。 |
エラー処理フロー
エラーから修正された PR までのプロセスは以下の通りです:
- キャプチャー: SDK がエラーとセッション記録を収集し、取り込みサービスへ送信します(2 行のコードのみでインストール)。
- グループ化: スタックトレースをソースマップでマッピングし、同一バグを統合します。
- 評価: 遭遇ユーザー数とリポジトリ分析により、真に製品のバグか判断します。
- 調査: ワーカーがコードを読み込み、根本原因を探ります。
- 検証: サンドボックス内でビルド・テストを実行し、すべての既存チェックも再通過させます。
- 配信:
- 修正可能 → プルリクエスト作成
- 調査不可能 → 開発者へ理由とアクションを提示
flowchart LR A[アプリ] -->|エラー + 記録| B[キャプチャー & グループ化] B --> Q{修正の価値あり?} Q -->|ユーザー数不足| W[監視は行うが調査は行わない] Q -->|本物な問題| D[あなたのリポジトリ内で調査] D --> V{修正検証完了?} V -->|はい| PR[プルリクエスト] V -->|いいえ| HR[あなた宛てに理由文書化]
外部サービスと独自スタック
- 利用する外部 API: Anthropic(調査用)、E2B(サンドボックス実行用)、GitHub(クローン・PR 作成用)。
- 独自管理スタック: Postgres(状態管理・ジョブキュー)、S3 互換ストレージ(MinIO 使用)。
- 対応言語: JavaScript アプリへのフルサポート。
ローカルでの実行
前提条件: Docker Compose v2 搭載環境が必要。初回実行には認証キーは不要です。
1. スタックの起動
git clone https://github.com/opslane/opslane.git cd opslane docker compose up -d --wait curl http://localhost:8082/health
- 起動コンポーネント: Postgres、MinIO、ダッシュボード API、ワーカー。
- 自動実行: データベースマイグレーション。
2. テストデータの送信と検証
テストプロジェクトでエラーを発生させ、動作を確認します。
# データセード docker compose exec -T postgres psql -U opslane -d opslane < scripts/seed-e2e.sql # エラーシミュレーション (公開のテストキーを使用) curl -X POST http://localhost:8082/api/v1/events \ -H 'Content-Type: application/json' \ -H 'X-API-Key: opslane_pk_mzxw6ytboi3damrrgi3tknzxgq_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopq' \ -d '{"timestamp":"2026-01-01T00:00:00Z","error":{"type":"ReferenceError","message":"demo is not defined","stack":"ReferenceError: demo is not defined\n at app.js:1:1"},"breadcrumbs":[],"context":{"url":"https://example.com","user_agent":"smoke test"},"sdk_version":"0.0.1"}'
3. ワーカーの状態確認
ワーカー処理結果を確認します。結果が表示されない場合は再実行してください。
docker compose exec -T postgres psql -U opslane -d opslane \ -c "SELECT status, reason_code, reason_message FROM error_groups ORDER BY created_at DESC LIMIT 1;"
出力例:
status | reason_code | reason_message --------+-------------+---------------- new | |
注意: 上記の「new」状態は単発のエラーであり、調査対象外です。フルなフローを確認するには、以下の認証情報が必要です。
必須認証情報
セルフホスト快速スタートドキュメントで正確なパーミッションと環境変数の設定を確認してください。
- ダッシュボードログイン: GitHub App または WorkOS
- 調査機能:
ANTHROPIC_API_KEY - サンドボックス検証:
E2B_API_KEY - PR 作成: 対象リポジトリへのアクセス権限を持つ GitHub トークン
ドキュメントとリソース
詳細な情報は以下のドキュメントをご覧ください。
- セルフホスト快速スタート: ローカル実行手順と全プロセス解説。
- インストールガイド: アプリに SDK を追加する方法。
- ガイド: 対応フレームワーク(React, Vue, Vanilla JS)、ソースマップ、GitHub App、Slack 通知設定など。
- Opslane の仕組み: エラー検知から検証済み PR までのアーキテクチャ解説。
- 信頼性とデータフロー: サービス間のデータ受け渡しの概要。
- リファレンス: SDK オプション、HTTP ルート、環境変数、理由コード。
コミュニティと貢献
- Discord: 本番環境のデモ投稿や最新情報について交流可能です。
- Issue Tracker: バグ報告や機能要望を歓迎します。
ライセンスと開発状況
- ライセンス:
- Opslane プラットフォーム:AGPL-3.0
- ブラウザ SDK / Python SDK / 型定義:MIT(自アプリ内での配布可能)
- バージョンステータス:
- 現時点では 1.0 リリース前。
のワイヤー契約は安定しており後方互換性がありますが、他のインターフェースは変更される可能性があります。POST /api/v1/events
開発者向け: 環境設定、コード慣習、検証基準については
AGENTS.md を参照してください。