
2026/06/24 3:21
Show HN: AI エージェントのトレース用 RL 基盤型ローカルデバッガー
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
HALO メソッド論は、高バラつきを生じるプロダクション環境向けに自己改善型ハーネスを構築することを目的とした、相互接続された AI エージェントである再帰的にリンクされたモデル(RLM)を導入します。汎用ツールが孤立した誤りに過適合しやすいためと対照的に、HALO ループの核心は OpenTelemetry を通じて実行トレースを取得し、それらを RLM エンジンで分析して、想像的なツールの呼び出し、拒否ループ、意味的整合性問題といった体系的な失敗を特定し、その診断レポートをコーディングエージェント(例:Cursor または Claude Code)に直接入力して包括的な修正を行います。システムは
halo という柔軟な CLI を通じて管理され、トレースファイルとユーザープロンプトを受け付けます。デフォルト設定では gpt-5.4-mini がルート/サブエージェントの呼び出しに使用され、合成には smaller モデルが利用され、再帰深度、ターン制限、並列性を制御するための主要なフラグにより推論が最適化されます。HALO は環境変数およびオプションのテレメトリ統合を通じて、各種の OpenAI 互換プロバイダーをサポートします。ベンチマークによれば、このアプローチは AppWorld などのプラットフォームにおいて、Gemini 3 Flash や Sonnet 4.6 といった高度なモデルでパフォーマンスを大幅に向上させ、データ過適合ではなく真の能力を反映することを保証するためテストセット上で改善が検証されています。開発環境では uv を用いて依存関係を管理し、go-task を用いてタスク管理を行います。本文
✨ RLM ベースのエージェント最適化手法「HALO」:実稼動ログを活用
📑 目次
- 迅速始め方
- 概要と仕組み
- [HALO ループ]
- [なぜ RLM(反射的言語モデル)なのか?]
- 本格導入:インストールと使用方法
- [CLI の使い方]
- [基本コマンドとオプション]
- [テレメトリ]
- Python API
- ベンチマーク結果
- 開発環境とライセンス
迅速始め方
HALO デスクトップアプリをインストールするには、以下のコマンドを実行してください。
curl -fsSL https://inference.net/halo/install.sh | sh
- インストール内容: プラットフォームに最適な最新版ファイルをダウンロードし、設定を行います。
- macOS 版は署名済み且不具合対応済みの DMG ファイルとして提供されます。
- GitHub Releases ページから直接インストールすることも可能です。
- ホストド版の利用:
にアカウントを作成し、こちらの説明に従ってホスティングされたバージョンを利用できます。inference.net
概要と仕組み
これは何ですか?
HALO は、RLM(Reflective Language Model:反射的言語モデル) を活用し、自己改善型のエージェントシステムを構築するための手法です。
このリポジトリには以下の内容が含まれます:
- HALO デスクトップアプリ(自機上で実行用)
- ハローコアエンジンを実装する Python パッケージ
- エージェント向けの HALO ループ構築デモプロジェクト
- AppWorld 等、一般的なエージェントベンチマークへの適用評価例
HALO ループ
コアとなるプロセスは非常にシンプルで、以下のサイクルを繰り返します:
- ログ収集: エージェント稼働から実行ログを収集(OpenTelemetry 互換)。
- 分析処理: ログを HALO-RLM エンジンに投入し、失敗パターンを把握。
- レポート生成: システム全体の課題を含むレポートを生成します。
- 修正適用: レポートを Cursor や Claude Code 等へ渡し、システム修正パッチを生成・適用します。
- 再デプロイ: システムを再デプロイし、サイクルを繰り返します。
💡 実稼動環境の強み: HALO は実際のトラフィック下でのバリエーション豊かなデータから、汎用モデルが見過ごすタイプの不具合を効果的に特定できます。
なぜ RLM(反射的言語モデル)なのか?
汎用システム(例:Claude Code)はログ分析に不向きです。ログデータが長大になり、体系的な洞察を得るための専用ツールが必要だからです。
- 既存システムの課題: 特定の少数のログエラーに過学習し、システム全体の課題へ一般化する能力が不足しています。
- RLM の採用理由: これらの知見から開発された専用モデル(RLM)は、より深く正確な分析を可能にします。
本格的に始める
インストール
HALO エンジンと CLI を PyPI からインストールします。
pip install halo-engine
インストール確認:
halo --help
使用方法
エージェントを実行してログを収集した後、
halo コマンドで追跡機能を統合します。
環境変数
: 認証用OPENAI_API_KEY
: OpenAI 互換プロバイダーへの接続先(未設定時はOPENAI_BASE_URL
)https://api.openai.com/v1
基本コマンド
halo path_to_your_traces.jsonl -p "Diagnose errors you find and suggest fixes"
CLI オプション一覧
| オプション | デフォルト値 | 説明 |
|---|---|---|
| 必須 | JSONL フォーマットのログファイルパス |
| 必須 | ルートエージェントへのプロンプト文字列 |
| gpt-5.4-mini | 親・子エージェントおよびフォールバック用のモデル |
| --model | ログサマライゼーション用(軽量・低コスト推奨) |
| --model | コンテキストサマライゼーション用(主要なトークン消費源のため軽量推奨) |
| 2 | 子エージェントの再帰深度上限 |
| 20 | 各エージェントへの最大ターン数 |
| 10 | 同時動作可能な子エージェント数の上限 |
| OPENAI_BASE_URL | OpenAI 互換 API のベース URL |
| OPENAI_API_KEY | プロバイダーの API キー |
| 未設定 | カスタムヘッダー(複数可) |
| プロバイダーデフォルト | サンプリング温度 |
| プロバイダーデフォルト | 最大出力トークン数 |
| 有効 | モデルによる並列ツール呼び出しの有無 |
| 0 | モデル拒否時の再試行回数 |
| デフォルト | 推論努力のレベル |
| off | OpenInference フォーマットのログ発行情報の有無 |
カスタムヘッダーを含む例:
halo path_to_your_traces.jsonl \ -p "Diagnose errors you find and suggest fixes" \ --base-url https://openrouter.ai/api/v1 \ -H "HTTP-Referer: https://example.com"
テレメトリ(ログ出力)
HALO は自身の LLM、ツール、エージェンシー活動に関する OpenInference フォーマットのログを発行します。デフォルトは無効です。
halo TRACE_PATH --prompt "..." --telemetry
有効化時の挙動:
が設定されている場合:OTLP を介して Catalyst へスパンアップロード。CATALYST_OTLP_TOKEN- 未設定の場合:作業ディレクトリに
を作成。./halo-telemetry-{run_id}.jsonl
テレメトリ環境変数
| 変数 | デフォルト | 目的 |
|---|---|---|
| 未設定 | トークンあり:Catalyst へアップロード / なし:ローカル JSONL 出力 |
| Catalyst デフォルト | OTLP エンドポイント URL (例:) |
| 未設定 | に設定すると OTLP エクスポートエラーを表示 |
| 未設定 | ハロー実行 ID(生成された UUID を上書き) |
| ./halo-telemetry-{run_id}.jsonl | ローカルフォールバックファイルパス |
Python API
エンジンから 4 つのEntryPoint が提供され、可視化とコードシンプルさのトレードオフに合わせて使い分けます。
定義済み型:
engine/models/engine_output.py
: ステップ完了データAgentOutputItem
: トークンごとの差分データAgentTextDelta
| 関数 | タイプ | リターン値 | 使用タイミング |
|---|---|---|---|
| async | | ストリーミングデルタが必要な場合(ライブ UI など) |
| async | | 各ステップの完了事項を逐次記録・永続化する場合 |
| async | | 最終結果のみを取得する簡易ケース |
| sync | | 同期ジェネレーターで全イベント生成 |
| sync | | 同期ジェネレーターで完了アイテムのみ生成 |
| sync | | 同期リクエストの簡易代替手段 |
使用例:
from engine.main import stream_engine_output_async async for item in stream_engine_output_async(messages, cfg, trace_path): logger.info("step", extra={"sequence": item.sequence, "agent": item.agent_name}) # item.item は AgentMessage(アシスタント/ツール等)
ベンチマーク結果
HALO はシステム最適化により、ベンチマークにおける改善を常に実現しています。
AppWorld ベンチマーク
Spotify、Venmo、ファイルシステムなど多様なサービスを用いた LLM エージェントタスクです。
- 検証方法: 開発用データセットで HALO を反復して改善し、テスト用ノーマルデータセットで過学習の有無を確認。
検出された主な不具合:
- 虚構のツール呼び出し
- ツール内の冗長な引数
- 拒否ループ
- セマンティック正確性の問題
ベースラインに対する最大改善率:
| モデル | 開発セット (SGC) | テストセット (Normal SGC) |
|---|---|---|
| Gemini 3 Flash | 36.8% → 52.6% (+15.8 ポイント) | 37.5% → 48.2% (+10.7 ポイント) |
| Sonnet 4.6 | 73.7% → 89.5% (+15.8 ポイント) | 62.5% → 73.2% (+10.7 ポイント) |
開発
ローカル開発には
uv(依存関係管理)と go-task(タスクランナー)を使用します。
セットアップ
git clone https://github.com/context-labs/HALO cd HALO task env:setup
- セットアップ内容:
不足時はインストール、uv
で仮想環境同期、Gitフック設定。uv.lock - 実行方法:
またはuv run halo ...
アクティベーション後使用。.venv/
一般的なタスク
| タスク | 実装内容 |
|---|---|
| プリコミットチェック(固定版、リンティング、フォーマット、型チェック、単体テスト) |
| リンティング・フォーマット問題の自動修正付きチェック |
| 以下の単体テスト実行 |
| 以下の結合テスト実行 |
ライセンス
MIT License
コントリビューション
コントリビュートをご歓迎します!プルリクエストの提出も大歓迎です。