
News Observation Lab for Future
GitLab向けセルフホスト型AIエージェント「langgraph-harness」の概要と実績

概要
GitLab の課題をボットに割り当てると、数分以内に修正を含むドラフトマージリクエストが自動生成されます。その後、同じボットがマージリクエストをレビューし、コメントの下書きを作成・選別して投稿します。この仕組みは「langgraph-harness」と呼ばれる、6 月から実プロジェクトで運用しているセルフホスト型エージェントプラットフォームです。
主な機能
- MR のレビュー:Webhook が MR のオープンや変更を検知し、差分と周辺コードを解析してコメント草案を生成。
- ドラフト MR の作成:ボットは Kata Containers VM 上でプロジェクトをビルド・テストし、ドラフト MR を開く。
- タスク実行:サンドボックス化されたループで、単発指示やスケジュール実行が可能。
- チャットアシスタント:GitLab 内の情報検索や過去レビューの参照ができ、機密情報はユーザーの承認を得てから処理。
- 完全自己ホスト:コードは外部へ送信せず、OpenRouter、Gemini、Groq、Ollama、sgllang 等のモデルを選択。
- 管理 UI と分析ページ:React ベースの UI で実行状況をライブ監視し、ボットの発言に対する実際の対応を可視化。
実績
これまでに 1,000 件を超えるマージリクエストがレビューされ、コメントの 67% がレビュー担当者により解決、133 件のリリースが行われました。
開発のポイント
エージェントループは LangGraph.js、createAgent、使用するモデル、GitLab ツール、システムプロンプトで構成され、数カ月かけて無人稼働が可能な信頼性を確保しました。主要な実装は 4 つのコンポーネントで実現しています。
エラーハンドリングとガードレール
実行中にクラッシュした場合でも、PostgreSQL のチェックポイントから再開できます。レビュー時には平均 26 回のモデル呼び出しがあり、タイムアウトやサーバー再起動が起きてもチェックポイントから再試行します。また、LangChain v1 の createMiddleware により、モデル・ツール呼び出し全てにフックし、失敗時の防御策を提供しています。
ファイル単位のチェック
大規模 MR では多数のファイルを扱うため、1 ファイルずつ専用のサブエージェントが検証し、結果だけを返却します。これによりレビュー品質の均一化と、不要な投稿や余計なエージェント生成を防止しています。
記憶と学習
エージェントは実行中に検証したビルドコマンドやリポジトリ規則、繰り返し発生する誤検知などをフラグ付けし、実行終了時にキュレーターが追加・更新・廃止を判断します。これまでに 422 件が追加、22 件が更新、2 件が廃止されました。
導入手順
Node.js 22 以上、Docker、GitLab アクセストークンと OAuth アプリ、LLM キー(またはローカル Ollama/sgllang)が必要です。スタートガイドでは OAuth 設定、Webhook 構成、リポジトリごとの設定を詳述しています。
今後の展望
次期ロードマップでは GitHub への対応が予定されています。チームで本システムを導入する場合、まずは OAuth と Webhook の設定、そしてエージェントの基本ループをローカル環境で動作させることから始めると良いでしょう。
リポジトリ情報
リポジトリ(MIT ライセンス):https://github.com/vrajpal-jhala/langgraph-harness