Tracker は strongDM の Attractor フレームワークの Go 実装です。AI 駆動のソフトウェアファクトリーを構築するための3層システムです。ワークフローを DOT ファイルとして定義し、各ノードがステップとなる有向非巡回グラフとして、Tracker が依存順に実行します。人間が関与するゲート、LLM 駆動のノード、自動チェックポイント、リトライロジックに対応しています。bubbletea の TUI ダッシュボードでパイプラインの進捗をリアルタイムに確認できます。
インストール
go install github.com/2389-research/tracker/cmd/tracker@latest
パイプラインの実行:
tracker pipeline.dot
チェックポイントから再開:
tracker -c .tracker/runs/<runID>/checkpoint.json pipeline.dot
機能
DOT ファイルからの DAG 実行。 標準の Graphviz DOT ファイルとしてパイプラインを定義します。ノードがステップを表し、エッジが依存関係を表します。Tracker はグラフをトポロジカルソートして正しい順序でノードを実行し、可能な場合は独立したブランチを並列で実行します。
人間のゲートノード。 任意のノードを人間のゲートとしてマークすると、Tracker は実行を一時停止して選択肢またはフリーフォームのプロンプトを提示します。TUI モードではキーボードナビゲーション付きのスクロール可能なモーダルダイアログとして表示されます。コンソールモードでは stdin/stdout にフォールバックします。
LLM 駆動のノード。 ノードはパイプラインのコンテキストをプロンプトに自動注入して言語モデルを呼び出せます。トレースのイントロスペクションにより、TUI ダッシュボードとコンソール出力の両方でトークン数、レイテンシ、プロンプト/補完テキストを確認できます。
自動チェックポイント。 Tracker はノードの遷移ごとにパイプラインの状態を .tracker/runs/<runID>/checkpoint.json に保存します。実行が失敗または中断された場合、最後のチェックポイントから再開できます。アーティファクトディレクトリが存在する場合、チェックポイントはデフォルトで有効になります。手動の設定は不要です。
バックオフ付きリトライ。 失敗したノードは設定可能なバックオフで自動的に再試行されます。チェックポイントはリトライ回数を追跡するため、再開した実行は中断した場所から再開します。
TUI ダッシュボード。 bubbletea ベースのターミナル UI がライブのノードリストとステータスインジケーター、LLM トレースの詳細、人間のゲート用のスクロール可能なモーダルプロンプトを表示します。ヘッドレス環境や CI 環境では --no-tui で無効化できます。
仕組み
Tracker は DOT ファイルを DAG に解析してサイクルの有無を検証し、実行計画を構築します。エンジンはグラフをノードごとに辿り、各ノードをその型に基づいてハンドラーに振り分けます。パイプラインのコンテキストはノード間を流れ、前のステップの出力が後のステップの入力として利用できます。
アーティファクトは .tracker/runs/<runID>/ に実行ごとの1ディレクトリとして格納されます。チェックポイント、LLM トレース、ノードが生成したファイルはすべてここに入ります。実行 ID は起動時に生成され、チェックポイントの再開を通じて一貫して使われます。
ハンドラーレジストリはノード型を実装にマッピングします。組み込みハンドラーはシェルコマンド、LLM 呼び出し、人間のゲートをカバーしています。カスタムハンドラーは Go API を通じて追加できます。
必要要件
- Go 1.24+(ソースからビルドする場合)
- パイプラインを定義した DOT ファイル
- LLM ノードの場合:モデルプロバイダーの API 認証情報(環境変数で設定)
