コアアーキテクチャモジュール
コアアーキテクチャ
レーンベースのゲートウェイ
Clawdbotは基本的にTypeScript CLIアプリケーションであり、Webアプリではありません。デーモンとしてマシン上で実行され、すべての外部接続(Telegram、Slackなど)のゲートウェイとして機能します。
コアアーキテクチャは「レーンベース」のデザインパターンを使用しています:
- チャンネルアダプタ: 異なるチャンネルからのメッセージ入力を標準化します。
- ゲートウェイサーバー: 同時リクエストを処理するタスク調整センター。
- レーンキュー: デフォルトは直列(シリアル)。各セッションに専用のレーンが割り当てられ、非同期/待機の競合状態の地獄を回避します。明示的に低リスクなタスクのみが並列で処理されます。
TypeScriptCLISerial Queue

画像ソース:レンダリング完了
// Gateway Coordinator
class Gateway {
// Map session ID to dedicated Serial Lane
private lanes = new Map<string, SerialLane>();
async handleRequest(req: Request) {
const lane = this.lanes.get(req.sessionId)
|| new SerialLane();
// High-risk/Stateful -> Serial Lane (Queue)
if (req.isStateful) {
await lane.add(new Task(req));
}
// Low-risk/Read-only -> Parallel execution
else {
await runParallel(new Task(req));
}
}
}
// Serial Lane: Prevents race conditions
class SerialLane {
private queue: Task[] = [];
private isRunning = false;
async add(task: Task) {
this.queue.push(task);
if (!this.isRunning) this.process();
}
private async process() {
this.isRunning = true;
while (this.queue.length > 0) {
// Execute one by one
await this.queue.shift()?.execute();
}
this.isRunning = false;
}
}メモリシステムモジュール
メモリシステム
ハイブリッド検索アーキテクチャ
メモリがなければ、AIは金魚の記憶に過ぎません。Clawdbotはデュアルレイヤーシステムで永続性を解決します:
- セッションのトランスクリプト (JSONL): コンテキストの構築のため、完全なセッション履歴を記録します。
- メモリファイル (Markdown):
memory/*.mdに保存される長期メモリ。
ハイブリッド検索
ベクトル検索 (SQLite)とキーワード検索 (FTS5)を組み合わせます。「authentication bug」を検索すると、意味的に関連する「auth issues」が見つかり、正確なフレーズとも一致します。エージェントはブラックボックスのAPIを使わず、標準のファイル書き込みツールを介して直接メモリを管理します。
JSONLMarkdownSQLiteFTS5

画像ソース:レンダリング完了
// Memory Structure
memory/
├── user_profile.md
├── project_claudia.md
└── tech_stack_notes.md
// Search Query
SELECT * FROM memory
WHERE vec_search(embedding, query)
OR text_match(content, query);コンピュータ使用モジュール
コンピュータ使用
サンドボックス化された実行
Clawdbotはエージェントに実際のコンピュータ運用権限を与えますが、厳格なセキュリティ制限があります:
- 実行環境: デフォルトではDockerサンドボックス。直接ホストでの操作にも設定可能。
- 許可リスト (Allowlist): ユーザーが明示的に承認したコマンド (例: npm, git)。
- ブロックリスト (Blocklist): デフォルトでは危険な操作をブロックします (例:
rm -rf /、コマンド置換、システムファイルへのリダイレクト)。
DockerSandboxAllowlist
// ~/.clawdbot/exec-approvals.json
{
"allowlist": [
{ "pattern": "/usr/bin/npm", "lastUsed": 1706644800 },
{ "pattern": "/opt/homebrew/bin/git", "lastUsed": 1706644900 }
],
"blocked": [
"rm -rf /",
"cat file > /etc/hosts"
]
}セマンティックビジョンモジュール
セマンティックビジョン
ピクセル上のアクセシビリティツリー
ブラウザツールはスクリーンショットに頼るのではなく、セマンティックスナップショットを使用します。
これはページのアクセシビリティツリー (ARIA)のテキスト表現です。
画像スナップショット
サイズ 約5MB
高いトークンコスト
セマンティックスナップショット
サイズ <50KB
構造のみ
ウェブの閲覧は基本的にはセマンティックな理解のタスクであり、単なる視覚的なタスクではありません。エージェントはボタン、入力、見出しの構造化されたリストを見るのです。
PlaywrightARIALow-Token

画像ソース:レンダリング完了
- button "Sign In" [ref=1]
- textbox "Email" [ref=2]
- textbox "Password" [ref=3]
- link "Forgot password?" [ref=4]
- heading "Welcome back"