あなたのエージェントに体が与えられる
すべてのKitサービスはHTTPSエンドポイントです。コンテナをスポーンすると18のHTTPツールが手に入ります。あなたのエージェントはもう HTTP を知っています — それが要点です。
$ curl -N -X POST https://abc123-def456-workspaces-1.node-us-1.containers.hoody.com/api/v1/agent/prompt -H "Content-Type: application/json" -d '{"parts":[{"type":"text","text":"Build auth + tests"}]}'
[tool_use] { tool: "bash", command: "npm install" }
[tool_use] { tool: "Write", path: "/app/src/auth.ts" }
[tool_result] { output: "3 tests passed" }
[tool_use] { tool: "bash", command: "npm run dev" }
[completed] session finished in 4m 12s
1 つの POST。3 つのパターン。
タスクを送信、WebSocket ストリームを見守る、失敗した実験をロールバック — すべて標準 HTTP コールから。
タスクを送信してイベントをストリーム
自然言語の説明を POST してタスクを作成し、WebSocket を開いてリアルタイムですべてのツール呼び出しと結果をストリーム。
# Submit a prompt — omit wait to stream Server-Sent Events
POST /api/v1/agent/prompt
{
"parts": [{ "type": "text", "text": "Install deps, write auth.ts, run tests" }],
"autoApprove": true
}
# The stream emits tool calls, tool results and assistant
# messages as they happen. The final message payload:
{
"sessionID": "5f9b3a2e1c8d4f0001a2b3c4",
"messageID": "msg_01HXYZABCDEF",
"status": "completed",
"info": { "role": "assistant", "finish": "stop" },
"parts": [{ "type": "text", "text": "Done — 14 tests passing." }]
}
すべてのエージェントに完全なコンピューターを
1回のコンテナ作成コールで18のHTTPサービスがプロビジョニングされます。セットアップ不要、ドライバー管理不要。
エージェントがエージェントをスポーン。コーディネーター不要。
エージェントAがHTTP経由でエージェントBのコンテナを作成し、エージェントサービスAPIでタスクを割り当てます。
// Agent A spawns Agent B and assigns work
const worker = await client.api.containers.create(PROJECT_ID, {
name: "ai-worker-backend",
server_id: "us-east-1",
container_image: "debian-12",
hoody_kit: true,
});
await fetch(
`https://${PROJECT_ID}-${worker.id}-workspaces-1.${SRV}/api/v1/agent/prompt/sync`,
{ method: "POST", body: JSON.stringify({
parts: [{ type: "text", text: "Build payment module" }],
autoApprove: true
})}
);
ネットワークトポロジー
エージェントはピアです。どのコンテナも他のコンテナをHTTP経由で呼び出せます。バスなし、コーディネーターなし。
並列ワーカー
10の専門エージェントを同時にディスパッチ。フロントエンド、バックエンド、テスト — すべて並列で。
クロスコンテナ読み取り
エージェントAがKitファイルサービス経由でエージェントBのファイルを読み取る。実行を止めずに検査。
分離された障害
1つのエージェントのクラッシュは自身のサンドボックスのみを破壊します。障害は伝播しません。
すべてのプロンプトを制御。プロキシコード不要。
7つのイベントフック、5種のアクション、宣言的JSONルール。ルールエンジンがエージェントとLLMの間で実行されます。
chat.system.transform
LLMが見る前に、すべての本番セッションのシステムプロンプトに安全ルールを追加。
tool.execute.before
エージェントがbashを実行する前に人間に通知。インループ、プロキシなし。
session.error
フリート全体で任意のセッションが失敗した場合にPagerDutyへWebhookを発火。
{
"rules": [
{
"id": "inject-safety-prompt",
"name": "Inject safety prompt",
"enabled": true,
"severity": "info",
"trigger": {
"event": "chat.system.transform",
"tags": ["prod"]
},
"action": {
"type": "prompt-inject",
"content": "Always confirm before shell commands.",
"position": "prepend",
"target": "system"
}
}
]
}
300以上のモデル。切り替えは設定1つ。
https://ai.hoody.com/api/v1にAIクライアントを向けます。キーとしてcontainer-Xを使用。
300+ モデル、15+ プロバイダー
Anthropic、OpenAI、Google、Meta、Mistral など ── プロバイダーとモデル ID を組み合わせて、プロンプトごとに選べます。会話の途中でモデルを切り替えても、移行作業は一切不要。
anthropic/claude-sonnet-4.5
@hoody.com Skill 発見
Web アクセスを持つ任意の AI エージェントが @hoody.com に送信すれば、HTTP API 全体を記述する Skill が返ってきます——プラグインも SDK もカスタムエンドポイントも不要。
すべてのエージェント実行前にスナップショット
スナップショットなしでエージェントがコンテナを変更しないようにする。1回のAPIコール。即座に回復。
POST /api/v1/containers/{id}/snapshots
{ "alias": "before-agent-experiment" }
6 つのエンドポイント。完全なエージェント制御。
タスクのライフサイクル、リアルタイム監視、MCP 接続 — すべて標準 HTTP と WebSocket。
プロンプト
3 エンドポイントPOST /api/v1/agent/prompt
セッション
2 エンドポイントGET /api/v1/agent/sessions/live
MCP + Web UI
2 エンドポイントPOST /api/v1/workspaces/{workspaceID}/mcp
エージェントが実際にできること
プロンプトエンジニアリングではどうにもならない 3 つの能力 — それらはプラットフォームに組み込まれている。
名前付きエージェント、プライマリとサブエージェント
ワークスペースにはそれぞれ名前付きのエージェントが備わっています ── build はプライマリとして、explore は読み取り専用のサブエージェントとして動きます。agent フィールドでプロンプトごとに 1 つ選択でき、各エージェントが独自のモデル、権限、プロンプトを持ちます。
MCP ランタイムツール発見
MCP 互換サーバー — GitHub、Slack、Jira — を実行時に接続。エージェントが新しいツールを発見し、アクティブセッションに瞬時にマージ。
埋め込み可能なライブセッションウォール
ライブセッションウォールは、実行中のすべてのエージェントを、ダッシュボードの iframe に埋め込むための HTML ビューとして表示します ── ポーリングなしで全体を見渡せます。