コンテンツへスキップ
Smasher

Smasher

DOT有向グラフをマルチステップAIワークフローに変換するRustパイプラインランナー。ストリーミング、Webダッシュボード、ヒューマンインザループゲートを備える。

GitHub ← 全プロダクト

Smasher は strongDMのattractor をRustで再実装したものです。DOT有向グラフとしてAIワークフローを定義し、smashterがノードごとに実行します。5つのクレートが生のLLM呼び出しからWebダッシュボードまでを処理し、ブラウザでパイプラインの実行を監視してヒューマンゲートの質問に回答できます。

インストール

git clone https://github.com/2389-research/smasher.git
cd smasher
cargo build --release

少なくとも1つのプロバイダーキーを設定:

export ANTHROPIC_API_KEY=sk-ant-...
# or OPENAI_API_KEY, or GEMINI_API_KEY

できること

DOTグラフパイプラインエンジン。 9つのノードタイプが一般的なワークフローパターンをカバー: LLMエージェントタスク用 box、条件分岐用 diamond、人間へのインタビュー用 oval、承認ゲート用 house、人間へのインタビュー用 hexagon、ツール用 parallelogram、並列ファンアウト用 component。エッジはトランジション。属性が動作を設定します。標準のGraphviz DOT — プロプライエタリな要素なし。

マルチプロバイダーLLMクライアント。 smasher-llm は1つの統合インターフェースでOpenAI (Responses API)、Anthropic (Messages API)、Geminiと通信します。ストリーミング、リトライ、プロバイダー固有の癖はこのレイヤーで処理されるため、上位レイヤーが気にする必要はありません。

ツール付きエージェントループ。 smasher-agent は6つの組み込みツール — read、write、edit、shell、grep、glob — を持つコーディングエージェントを実行します。ステアリングルールがノードごとのエージェント動作を制約します。サブエージェントでパイプラインステップ内に委譲できます。

Webダッシュボード。 smasher serve でポート21541にHTMXフロントエンドを起動。ライブSSEイベントストリーム、ステータスオーバーレイ付きグラフビジュアライゼーション、ヒューマンインザループゲート用のQ&Aインターフェース。ブラウザまたはCLIからパイプラインを送信できます。

その他すべてのCLI。 ワンショットプロンプト用 smasher complete、6つのツール付きインタラクティブREPL用 smasher chat、ヘッドレスパイプライン実行用 smasher run、さらに resumerenderingestarchivelint

仕組み

5つのクレート、各クレートは下のレイヤーにのみ依存:

LayerCrateRole
1smasher-llmLLMクライアント、プロバイダーカタログ、リクエスト/レスポンス型
2smasher-agentエージェントループ、ツールディスパッチ、ステアリング、イベントシステム
3smasher-attractorDOTパーサー (winnow)、グラフエンジン、ノードハンドラー
4smasher-cliCLIバイナリ (clap)
5smasher-webWebダッシュボード (axum + askama + HTMX)

DOTパーサーはwinnowで標準のGraphviz有向グラフを読み込みます。ノードシェイプがハンドラータイプにマッピングされます。グラフエンジンはDAGを走査し、各ノードをそのハンドラーにディスパッチし、Webダッシュボードの SSEストリーム用に tokio::broadcast でイベントをブロードキャストします。

必要要件

  • Rust 1.85+
  • 少なくとも1つのAPIキー: Anthropic、OpenAI、またはGemini
GitHub で見る →
31 ページ · hugo 0.148.2 · 1ee4278 · 構築済み Aug 10 22:58
2389 Radio
2389 RADIO ステーションを選択