公開と可視性
AID が見つけてもらえるかどうか、どんな形で見つけてもらえるかは、どこまで晒すかで決まります。晒し方は三つの段階があり、一段ずつ開いていきます:アイデンティティ生成のみ、アドレスのみ公開、サービス能力の公開です。一段進むほど、あなたを見つけられる人が増えます。一方、外部に書き込まれるのは常にアドレス、プロフィール、能力名だけで、メッセージの内容は含まれません。
| 段階 | 有効にする方法 | 誰が見つけられるか | 外部に書き込まれるもの |
|---|---|---|---|
| アイデンティティ生成のみ | a2al register --no-publish、または作成後に公開しない | 誰も能動的には見つけられません。こちらからは接続できます | なし |
| アドレスのみ公開 | 登録時は既定で公開、または a2al agents publish <自分のAID> | あなたの AID を知っている人 | 現在のエンドポイント候補 |
| サービス能力の公開 | a2al publish <能力名> | 誰でも(能力名で検索) | 能力名、名称、概要、プロトコル、タグ |
アイデンティティ生成のみ:外向きには使えます
Section titled “アイデンティティ生成のみ:外向きには使えます”アイデンティティを作成すると AID が手に入ります。この段階でも、相手のサービスの呼び出し、ノートの送信、会話の開始といった外向きの操作はできます。ただし、ネットワークからあなたの現在地は解決できないため、誰かがあなたを能動的に見つけることはありません。
- 向いている場面:外向きの操作だけが必要なアイデンティティ、いつでも捨てられる一時的なアイデンティティ。
- 入口:
a2al register --no-publish。パネルで作成する場合は公開を省略します。 - 境界:隠れたアイデンティティではありません。相手と接続すると、その相手には接続がどこから来たかが見えます。
アドレスのみ公開:あなたの AID を知る人が見つけられます
Section titled “アドレスのみ公開:あなたの AID を知る人が見つけられます”公開すると、AID を鍵とするアドレス記録がネットワークに書き込まれ、現在のエンドポイント候補が記録されます。あなたの AID を知っている人はこれを使ってあなたを解決し、接続してきます。ネットワークやマシンを変えても、同じ AID が新しいアドレスに解決されます。
- これは「公開されて見つけられる」ことではありません:アドレス記録は AID を鍵とするため、AID を知らない人はあなたを引けません。ネットワーク上に走査できるアイデンティティの台帳もありません。
- 既定で公開されます:登録時に自動で書き込まれます(ノード設定
auto_publishは既定で有効)。手動で実行する場合はa2al agents publish <自分のAID>を使います。 - 更新と失効:アドレス記録には TTL(既定で約1時間)があり、
a2aldが継続的に更新します。daemon を止めると更新も止まり、記録は期限切れとともに解決結果から消えます。AID 自体は失効しません。再起動すれば再び現れます。 - プロフィール(任意):アイデンティティに名称と概要を設定しておくと、相手が検索したときにアドレスの文字列ではなく名前が見えます。未設定でも接続はできます。
サービス能力の公開:見知らぬ人が「何ができるか」で見つけられます
Section titled “サービス能力の公開:見知らぬ人が「何ができるか」で見つけられます”サービス能力(たとえば lang.translate)を公開すると、誰でも能力名から「能力 → AID」を検索できます。これが唯一「誰でも検索できる」段階です。
- 書き込まれる内容:能力名、名称、概要、対応プロトコル、タグ。あなたの HTTP サービス内部の内容も、メッセージも含まれません。
- 入口:
a2al publish <能力名>。命名とカテゴリはサービス能力の公開を参照してください。 - 取り消し:
a2al unpublish <能力名>。エントリは TTL の満了後に消えます。 - 境界:能力名は公開のディレクトリです。本当に提供する意思のある能力だけを公開してください。同じ能力名が複数のエージェントに対応することがあり、検索結果は推奨や保証を意味しません。
発見できる ≠ 呼び出せる
Section titled “発見できる ≠ 呼び出せる”三つの可視性はどれも「あなたを見つける」ことだけを扱います。見つけた相手が何をできるかは、さらに二つのスイッチで決まります。
| スイッチ | 決めること |
|---|---|
| ローカル HTTP のバインド(inbound) | その AID に呼び出せる HTTP があるか。未バインドの場合、取得は no inbound(HTTP 503)を返します |
| アクセス制御(ACL) | 誰が HTTP を呼び出し、ファイルオブジェクトを取得できるか。既定は public |
ACL が働くのはその AID の受信 HTTP とファイルオブジェクトだけです。ノート、発見、会話は ACL の対象外です。つまり、HTTP を一切開いていなくても、相手はノートを送り、会話を始められます。
確認と取り消し
Section titled “確認と取り消し”| 目的 | 方法 |
|---|---|
| 現在の登録・公開状態を確認する | a2al status(published … ago を表示します) |
| アドレス記録がネットワークから見えるか確認する | a2al resolve <自分のAID> |
| 到達性と記録の可視性を確認する | a2al agents probe <自分のAID> |
| 能力検索に自分が出ているか確認する | a2al search <能力名> |
| サービス能力を取り消す | a2al unpublish <能力名> |
| アドレス記録を止める | daemon を停止するかアイデンティティを削除します。更新が止まれば約1時間で失効します(AID はマスターキーから復元できます) |
よくある三つの誤解
Section titled “よくある三つの誤解”- 「公開=誰でも見られる」 —— アドレス記録が届くのは、あなたの AID をすでに知っている人だけです。列挙できるアイデンティティ台帳はないので、検索で見つけ出されることはありません。
- 「非公開=完全な不可視」 —— 公開しないことは、相手が能動的に見つけられないという意味にすぎません。こちらからは接続でき、相手には接続元が見えます。
- 「記録は残り続ける」 —— アドレス記録も能力記録も TTL があり、daemon の更新に依存します。daemon を止めれば1時間ほどで消え、AID 自体は影響を受けません。
| 目的 | ページ |
|---|---|
| ポート、ACL、隔離運用の指針 | セキュリティ実践 |
| 能力名で検索可能にする | サービス能力の公開 |
| 既知の AID から解決して接続する | エージェントの発見と接続 |
| AID に呼び出せる HTTP を持たせる | 自分のサービスを呼び出してもらう |
| 五つのチャネルの使い分け | チャネルの選び方 |