Skip to content

REST API リファレンス

viz ダッシュボードサーバ(ari vizari-core/ari/viz/server.py)は バンドルされた Web UI から使用され、外部統合からもアクセス可能な JSON HTTP API を公開しています。エンドポイントは viz/routes.py によって ドメインごとのハンドラモジュール(Phase 3B で分割された viz/api_*.pyviz/checkpoint_api.pyviz/file_api.py など)にディスパッチされます。

すべてのエンドポイントはデフォルトで認証なしです — ari viz127.0.0.1 にバインドし、ローカルユーザ向けに設計されています。 外部に公開する場合は nginx / oauth2-proxy でラップしてください。

規約

  • ベース URL: http://127.0.0.1:<port>(デフォルトポートは ari viz で設定)。
  • 特記がない限り、レスポンスボディはすべて JSON。
  • エラーは非 2xx HTTP コードとともに {"error": "<message>"} として返されます。
  • CORS プリフライト(OPTIONS)は /api/* に対して許可されています。

動作例

最初に触れることの多いエンドポイントの最小限の curl リクエスト/レスポンス例です。 ダッシュボードが既定ポート 8765 で動いている前提です。

ライブ状態を読む:

bash
curl http://localhost:8765/state
json
{
  "phase": "bfts",
  "nodes": { "total": 7, "completed": 5, "running": 2, "failed": 0 },
  "model": { "provider": "ollama", "model": "qwen3:8b" },
  "cost": { "usd": 0.0, "tokens": 0 }
}

実行を起動する:

bash
curl -X POST http://localhost:8765/api/launch \
  -H 'Content-Type: application/json' \
  -d '{"experiment_md": "# Goal\nImprove GFLOP/s of a dense matmul.\n",
       "profile": "laptop", "provider": "ollama", "model": "qwen3:8b",
       "max_nodes": 8, "max_depth": 3, "workers": 2}'
json
{ "ok": true, "pid": 48213, "checkpoint_path": "workspace/checkpoints/20260526T101500_matmul" }

チェックポイント一覧:

bash
curl http://localhost:8765/api/checkpoints
json
[
  { "id": "20260526T101500_matmul", "status": "running", "nodes": 7, "review_score": null },
  { "id": "20260520T090000_sort",   "status": "done",    "nodes": 12, "review_score": 0.71 }
]

エラー形式(任意のエンドポイント、非 2xx):

json
{ "error": "no active checkpoint" }

状態 + ダッシュボード

メソッドパス用途ソース
GET/stateダッシュボードのライブビューが使用する現在の BFTS 状態スナップショットroutes.py:211
GET/api/gpu-monitorGPU 使用率ポーリングroutes.py:654
GET/api/resource-metricsCPU / メモリ / ディスクメトリクスroutes.py:886
GET/api/logsアクティブな実行の最近のログ行routes.py:903

モデル + スキル

メソッドパス用途
GET/api/modelsLiteLLM + Ollama 経由で利用可能な LLM を探索
GET/api/ollama-resourcesモデルに必要なメモリ / ディスク
GET/api/ollama/<...>ローカル Ollama デーモンへのプロキシ
GET/api/skills登録済みスキルとそのツール数を列挙
GET/api/skill/<skill_name>スキルごとのメタデータ(ツール一覧、環境変数)
GET/api/tools全スキルを横断した統合ツールカタログ
GET/api/scheduler/detectlocal / slurm / apptainer 自動検出
GET/api/slurm/partitionsSLURM パーティション一覧
GET/api/container/infoコンテナランタイムのプローブ
GET/api/container/imagesキャッシュ済み SIF / OCI イメージ
POST/api/container/pullARI_CONTAINER_IMAGE が参照するイメージを取得 / ビルド

チェックポイントブラウジング

メソッドパス用途
GET/api/checkpointsARI_CHECKPOINT_DIR 親配下のすべてのチェックポイントを一覧
GET/api/checkpoint/<id>/summary実行サマリ(目標、ノード数、ステータス、上位メトリクス)
GET/api/checkpoint/<id>/memoryLetta メモリの内容
GET/api/checkpoint/<id>/memory_accessメモリ書き込み / 読み取りのテレメトリ
GET/api/checkpoint/<id>/filesサイズ + タイプ付きのファイル一覧
GET/api/checkpoint/<id>/file?path=...生ファイルコンテンツ(テキストまたは base64)
GET/api/checkpoint/<id>/file/raw同上、代替ルート
GET/api/checkpoint/<id>/filetree階層ツリービュー
GET/api/checkpoint/<id>/filecontent複数ファイルの一括読み取り
GET/api/active-checkpoint現在選択されているチェックポイント
POST/api/switch-checkpointアクティブなチェックポイントを変更
POST/api/delete-checkpointチェックポイントを削除(対応する Letta エージェントも削除)
POST/api/checkpoint/file/saveチェックポイント内のファイルをインプレース編集
POST/api/checkpoint/file/deleteチェックポイントからファイルを削除
POST/api/checkpoint/compile論文草稿に対して pdflatex を実行

実行ライフサイクル

メソッドパス用途
POST/api/launch新しい BFTS 実行を開始(ari run をプログラム的に)
POST/api/run-stage単一のパイプラインステージを実行
POST/api/stopアクティブな実行を停止

サブ実験 + lineage

メソッドパス用途
GET/api/sub-experimentsすべてのサブ実験レコード
GET/api/sub-experiments/<run_id>単一のサブ実験の詳細
POST/api/sub-experiments/launch親チェックポイントを継承する子実行を起動
GET/api/lineage-decisions/<run_id>停滞ルールが出力した決定(v0.7.0)

メモリバックエンド

メソッドパス用途
GET/api/memory/healthLetta ヘルスプローブ
GET/api/memory/detect実行中の Letta デプロイパスのインベントリ
POST/api/memory/start-localローカル Letta サーバを起動
POST/api/memory/stop-localローカル Letta サーバを停止
POST/api/memory/restartローカル Letta サーバを再起動

設定 + ワークフロー

メソッドパス用途
GET/api/settingssettings.json を読み取り
POST/api/settingssettings.json に書き込み
GET/api/profiles保存済みプロファイル一覧
GET/api/env-keysARI が認識している環境変数キー(値なし)
POST/api/env-keys環境変数のキー / 値ペアを .env に永続化
GET/api/workflowアクティブな workflow.yaml
GET/api/workflow/defaultバンドル済みデフォルト
GET/api/workflow/flowDAG ノード / エッジとして可視化されたワークフロー
POST/api/workflowworkflow.yaml を保存
POST/api/workflow/flowDAG ビューを保存
POST/api/workflow/skills有効なスキルを切り替え
POST/api/workflow/disabled-toolsスキルごとのツールホワイトリスト / ブラックリスト

ウィザード / 設定生成

メソッドパス用途
GET/api/experiment-detailウィザードがパースした experiment.md
POST/api/config/generateウィザードの回答から ari.yaml を生成
POST/api/chat-goalLLM 補助による目標ナラティブの精錬
POST/api/ssh/testSSH クラスタのログインをプローブ

アップロード + few-shot コーパス

メソッドパス用途
POST/api/uploadアクティブなチェックポイントへのマルチパートアップロード
POST/api/upload/deleteアップロードされたファイルを削除
GET/api/fewshot/<rubric_id>ルーブリックの few-shot 例
POST/api/fewshot/<rubric_id>/sync公開コーパスを取得
POST/api/fewshot/<rubric_id>/upload例を追加
POST/api/fewshot/<rubric_id>/delete例を削除
GET/api/rubrics利用可能な査読ルーブリック(ARI_RUBRIC で制御)

ノードレポート

メソッドパス用途
GET/api/nodes/<...>/reportノードごとの node_report.json

EAR + 公開 (v0.7.0)

メソッドパス用途
GET/api/ear/<run_id>実行の EAR バンドルメタデータ
GET/api/ear/<run_id>/publish-yaml生成された publish.yaml プレビュー
POST/api/ear/<run_id>/curateキュレートステップを実行
POST/api/ear/<run_id>/publish-yamlpublish.yaml を保存
POST/api/ear/clone-verifyハッシュでリモートバンドルを検証
GET/api/publish/settingsバックエンド設定
POST/api/publish/settingsバックエンド設定を更新
GET/api/publish/<run_id>/preview公開前ペイロードのプレビュー
GET/api/publish/<run_id>/recordpublish_record.json を読み取り
POST/api/publish/<run_id>/promotestagedunlisted / public に昇格
POST/api/publish/<run_id>設定済みバックエンドにプッシュ

静的ファイル + フロントエンド

メソッドパス用途
GET/static/<path>バンドル済み UI アセット
GET/memory/<path>メモリインスペクタ静的ページ
GET/codefile?path=...ソースファイルビューア

このリファレンスの更新方法

ルートテーブルは ari-core/ari/viz/routes.py のディスパッチチェーンです — ルートを追加した場合はここにも反映してください。 将来的な改善として、同じ理由でマスタープランが提案している OpenAPI 生成を使ってこのページを自動生成することが考えられます。

関連ドキュメント

  • docs/concepts/architecture.md — viz パッケージの概要。
  • ari-core/ari/viz/__init__.py — 現在のサブモジュールマップを含む モジュールレベルの docstring。