インターフェース
Agent NAS は、データ面にはファイルを、制御面にはツールを使います。バイトはマウント、Git、S3 を流れ、認可、承認、記憶、検索、説明は MCP、HTTP、CLI を通ります。どのインターフェースも同じデータの投影であり、意味の違いは、なかったことにせず、明示的なエラーで表します。
指針
- データ面にはファイル、制御面にはツール。 バイトはマウント、Git、S3 を流れ、認可、承認、記憶、検索、説明は MCP、HTTP、CLI を通ります。
- ゲートウェイは状態を持ちません。 認可は Trust 層のただ 1 つの地点でだけ行われます。
- どのインターフェースも投影です。 意味の違いは、明示的なエラーのマッピングで表します(たとえば「ゲート待ち」は、説明ファイルを添えた
EACCESに対応します)。S3 にブランチがあるようには装いません。 - ツールの面は狭く。 エージェントに向けた MCP ツールは 10 個以内です。人間や運用者向けの操作は、別のオペレーター用インターフェースに置きます。
- アダプターがプロトコルの変化を隔離します。 MCP や A2A のバージョンの変化が及ぶのは、アダプターだけです。
インターフェースの一覧
| インターフェース | 面 | 対象 | マッピング | レベル |
|---|---|---|---|---|
| マウント(FUSE、NFS、SMB) | データ | エージェント、人間、あらゆるプログラム | ブランチのビュー。エラーのマッピングは下記 | L0 |
| Git(SSH、HTTPS) | データ | エージェント、人間、CI | 実行のブランチは Git のブランチ。Agent PR はマージリクエスト | L0 |
| S3 互換 | データ | データパイプライン、バッチ処理 | バケットは 1 つのツリーのブランチビューに対応。バージョン ID はコミット | L0(任意) |
| WebDAV | データ | 人間(Finder、エクスプローラー) | 読み取り専用のアクティビティビュー | L0(任意) |
CLI nas | 制御 | 人間、スクリプト | HTTP API と 1 対 1 | L0 |
| HTTP API | 制御 | オーケストレーター、コントロールルーム | すべて POST と JSON。フィールドは snake_case | L1 |
| MCP | 制御 | エージェント | 9 つのツール(下記) | L1、L2 |
| A2A | 制御 | 他のエージェント | タスクは inbox/ と outbox/ に対応 | L4(任意) |
MCP のツール面
エージェントに向けたツールは 9 つだけです。
| ツール | 何をするか | 必要なリースの操作 | 備考 |
|---|---|---|---|
nas_list | ディレクトリを一覧する。ラベルとレビュー状態つき | list | リースの外のパスは見えません。 |
nas_read | 予算つきの読み取り:ビュー、範囲、予算 | read | Budgeted Reads |
nas_search | 検索(全文、任意でベクトル)。スニペットとポインタを返す | read | 隔離エリアは既定で除外されます。 |
nas_write | ブランチの中のファイルに書く。任意で intent を添える | write | ほとんどのランタイムはマウントを直接使うので、不要です。 |
nas_branch | ブランチの作成、チェックポイント、復元、一覧 | write | Agent Branch |
nas_propose | Agent PR を作る | propose | ゲートが起動することがあります。 |
nas_lease | より狭い子リースを申請する。現在のリースと予算を照会する。より広い権限を要求する(ゲート経由) | なし | Capability Lease |
nas_remember | ノートを書く。出典と種類つき | write | Agent Memory |
nas_recall | ノートを想起する:予算つきで、出典とレビュー状態つき | read | Agent Memory |
人間と運用者だけの操作
explain、gate approve/deny、forget、trash restore、label admin、lease revoke、policy edit は、エージェントには 公開されません。これらの操作は保証そのものを変えるもので、制約を受ける側が呼べるべきではありません。エージェントは、一部(権限の拡大、忘却)を 要求 することはできますが、実行はできません。
マウントの意味
- マウントは 1 つのブランチと 1 つのリース に結びつきます。リースの期限が切れると、マウントは読み取り専用になり、その後アンマウントされます。
- 自動コミット(デバウンス。たとえば静かな状態が 5 秒続いたあと)。
fsyncがコミットを起動します。 - リースの外のパスは、ディレクトリの一覧に現れません。これは情報の漏えいを減らし、プロンプトインジェクションの攻撃面も小さくします。
- サンドボックスにやさしい:root は不要。FUSE か NFS のどちらか一方で、カーネルモジュールは要らず、読み取り専用のマウントもできます。
| 状況 | POSIX のエラー | 説明 |
|---|---|---|
| リースの外のパス | ENOENT(見えるが拒否されるときは EACCES) | 拒否は記録されます。 |
| クォータまたは予算の枯渇 | EDQUOT | 実行が自分でペースを落とせるようにします。 |
| ゲート待ち | EACCES。説明は /.nas/pending に置く | エージェントが延々と再試行するのを防ぎます。 |
| リースの期限切れ | ESTALE、その後は読み取り専用 | ブランチはそれ自身の TTL が切れるまで残ります。 |
Git
- 実行のブランチは
<role>/<run_id>と名づけます。mainは保護されており、サーバー側のpre-receiveフックが直接のプッシュを拒否します。 nas proposeが Agent PR を作ります。- コミットには、
Run:、Lease:、Principal:などのトレーラーが自動で付きます。
S3
- バケットは 1 つのツリーのブランチビューに対応し、オブジェクトのバージョン ID はコミットです。
- ブランチのように S3 にない意味は、バケットのプレフィックスかリクエストヘッダー(
x-nas-branch)で表します。これは 縮退した投影 です。データパイプラインは読み書きできますが、ブランチの完全な体験は得られません。 - リースは、STS 形式の一時的な認証情報として渡されます。
A2A(任意)
- 受け取ったタスクは、
inbox/にタスクファイルとして入り、成果物はoutbox/に置かれます。 - Agent Card が、ロールのスキルと、必要なリースを宣言します。
- NAS は A2A の参加者ではありません。 ロールのために動くランタイムが参加者です。NAS が担うのは、タスクと成果物の保管、ハンドオフバンドル、リースだけです。
HTTP API の規約
- **すべてのエンドポイントが
POSTを使い、パラメーターは JSON のボディに入れます。** レスポンスのフィールドは、常にsnake_caseです。 - パスにはバージョンを付けます:
/v1/...。 - 冪等性:書き込み操作は
idempotency_keyを受け取ります。 - ページネーション:
cursorとlimit。 - 予算とレート制限は、レスポンスヘッダー(残りのバイト数、残りのリクエスト数)で返し、ランタイムが自分でペースを落とせるようにします。
予算つきの読み取りのリクエストとレスポンスは、おおよそ次のようになります。
POST /v1/files/read
{ "path": "/agents/cleo/memory/notes/customer-acme.md",
"view": "outline", "budget_tokens": 400 }
200 OK
{ "view": "outline", "tokens": 212, "generated": false, "truncated": false,
"content": "# Acme\n## Renewal (L12-L18)\n## Contacts (L19-L31)\n## Open issues (L32-L40)",
"evidence": [
{ "pointer": "nas://home-box/agents/cleo/memory/notes/customer-acme.md@9f2c1de#L1-L40" }
] } エラーは、統一された構造を使います。
{
"error": {
"code": "gate_required",
"message": "This merge requires human approval.",
"retryable": false,
"request_id": "req_01JB7W2X4N",
"details": { "gate_id": "gt_2Mx4" }
}
} 発見
- 機械が読める入口は、このサイトと同じです。
/.well-known/ai-catalog.json、MCP の Server Card、llms.txt。 nas://の証拠ポインタを解決して検証するエンドポイント。- MCP の
server/discover。
このページを引用する
読者・検索エンジン・エージェントのための恒久的な URL と、推奨する引用形式です。
- Markdown 版
- https://agentnas.com/ja/interfaces/index.md
- 推奨する引用形式
- Agent NAS project. “インターフェース.” agentnas.com, 2026-11-11. https://agentnas.com/ja/interfaces/