アーキテクチャの概要
ZeroClaw は階層化された Rust ワークスペースです。最上位にはエージェントランタイムがあり、その下にはプラグイン可能なプロバイダー、チャンネル、ツール、メモリが配置されています。サポートするクレートは、設定、サンドボックス化、ハードウェアを処理します。
高レベルの形状
flowchart TB
subgraph External["External world"]
UI["CLI / chat platforms / gateway clients / ACP IDEs"]
LLM["LLM providers<br/>Anthropic · OpenAI · Ollama · ..."]
FS["Filesystem · shell · network"]
end
subgraph Edges["Edge crates: talk to the outside"]
CH["zeroclaw-channels<br/>30+ messaging integrations"]
GW["zeroclaw-gateway<br/>REST · WebSocket · dashboard"]
PR["zeroclaw-providers<br/>LLM clients · retry · routing"]
TL["zeroclaw-tools<br/>browser · HTTP · hardware"]
end
subgraph Core["Core"]
RT["zeroclaw-runtime<br/>agent loop · security · SOP · cron · subagents"]
MEM["zeroclaw-memory<br/>SQLite · embeddings · consolidation"]
CFG["zeroclaw-config<br/>schema · autonomy · secrets"]
end
UI --> CH
UI --> GW
CH --> RT
GW --> RT
RT --> PR
RT --> TL
RT --> MEM
RT --> CFG
PR --> LLM
TL --> FS
スコープ内のクレート
| クレート | 役割 |
|---|---|
zeroclaw-runtime | エージェントループ、セキュリティポリシーの適用、SOPエンジン、cronスケジューラー、SubAgents、zerocode向けのRPCレイヤー |
zeroclaw-config | TOMLスキーマ、シークレットの暗号化、自律レベル、ワークスペース解決 |
zeroclaw-api | 公開トレイト: ModelProvider、Channel、Tool、Memory、Observer、RuntimeAdapter、Peripheral。カーネル ABI |
zeroclaw-providers | すべての LLM クライアント実装(Anthropic、OpenAI、Ollama、…)に加え、ヒントベースのルーティング、再試行、クールダウン、プロファイル間フォールバック |
zeroclaw-channels | 30以上のメッセージングインテグレーション(Discord、Slack、Telegram、Matrix、メール、音声、…) |
zeroclaw-gateway | HTTP / WebSocket ゲートウェイ、Web ダッシュボード、Webhook イングレス |
zeroclaw-tools | エージェントが呼び出す呼び出し可能なツール実装(ブラウザ、HTTP、ハードウェアプローブ) |
zeroclaw-tool-call-parser | モデル側のツール呼び出し構文の解析と正規化 |
zeroclaw-memory | 会話の記憶、埋め込み、ベクトル検索 |
zeroclaw-plugins | サンドボックス化された WASM プラグインホスト(WIT コンポーネントモデル) |
zeroclaw-hardware | ハードウェア抽象化レイヤー (GPIO, I2C, SPI, USB) |
zeroclaw-infra | プロセスレベルのサポート: SQLite セッションバックエンド、デバウンサー、ストールウォッチドッグ |
zeroclaw-log | ログ出力の単一サーフェス: JSONLスキーマ、属性付与、record!/scope!マクロ、/api/logsリーダー、Observerブリッジ |
zeroclaw-spawn | 属性情報を伝播する公式の tokio::spawn ラッパー(spawn! マクロ) |
zeroclaw-macros | 設定とツール登録のためのマクロを生成する |
zerocode | ターミナルUI |
マイクロカーネルのロードマップ(RFC #5574)では、zeroclaw-runtime のさらなる分割が積極的に進められています。カーネル層はエージェントループとポリシー適用へと縮小され、それ以外のすべてはフィーチャーフラグの背後へ移動されます。
リクエストのライフサイクル(短縮版)
sequenceDiagram
participant U as User
participant CH as Channel
participant RT as Runtime
participant SEC as Security
participant PR as Provider
participant TL as Tool
U->>CH: message / DM / webhook
CH->>RT: deliver_message(ctx)
RT->>PR: chat(messages, tools)
PR-->>RT: stream: text · tool_call
RT->>SEC: validate(tool_call)
SEC-->>RT: approved / blocked
RT->>TL: invoke(args)
TL-->>RT: result
RT->>PR: chat(..., + tool_result)
PR-->>RT: stream: text (final)
RT-->>CH: reply (partial / final)
CH-->>U: message
詳細: リクエストのライフサイクル
コアトレイト
Trait契約は zeroclaw-api に存在します。crates/zeroclaw-api/src/ 内のtrait定義が、組み込みのプロバイダー、チャネル、ツール、メモリバックエンド、周辺機器のsource of truthです。コアバイナリの外部に存在すべき機能については、まずプラグインガイドを参照してください。以下の箇条書きは、最も近い関連ドキュメントを示しています。
ModelProvider: OpenAI 互換エンドポイントにはcustomまたは既存のプロバイダーファミリーを使用します。新しいプロバイダーファミリー、認証モデル、機能宣言、またはワイヤープロトコルを追加する場合は、このトレイトを実装します。カスタムプロバイダーを参照してください。Channel: 新しいメッセージングプラットフォーム向けに実装します。インバウンドとアウトバウンドは別々のフックです。Channels の概要を参照してください。Tool: 新しい組み込みエージェント機能を実装します。ツールの概要 を参照してください。Memory: エージェント/セッションのスコープを保持するメモリバックエンド向けに実装する。Peripheral: ハードウェアボードおよびデバイスサーフェス向けに実装します。ハードウェアの概要を参照してください。
その他の公開トレイト(Observer および RuntimeAdapter を含む)は、より低レベルの契約です。それらを変更する前に、アーキテクチャマップ と RFCプロセス を参照してください。
新しい実装は zeroclaw-api のトレイト契約の背後に留め、そのサーフェスを所有するファクトリ、レジストリ、またはフィーチャーゲート経由で配線してください。RFC #5574 はランタイム実装依存の縮小を継続しているため、設計上必要な場合を除き、新しい具象ランタイム依存を追加しないでください。
次の読み物
- クレート: クレートごとの詳細解説
- リクエストのライフサイクル: ストリーミング、ツール呼び出し、承認
- モデルプロバイダー → 概要
- セキュリティ → 概要