Skip to content

Latest commit

ย 

History

History
521 lines (426 loc) ยท 14.9 KB

File metadata and controls

521 lines (426 loc) ยท 14.9 KB

AIOS Protocol ๅ‘็Žฐๆœบๅˆถ่ง„่Œƒ

็ณป็ปŸๅผ€ๅ‘ๅฃๅพ„ไฟฎ่ฎข๏ผˆ2026-03-08๏ผ‰ AIOS ็ปŸไธ€ๅฎšไน‰ไธบ AI ๅŽŸ็”Ÿๆ“ไฝœ็ณป็ปŸ / ็ณป็ปŸ่ฝฏไปถๅทฅ็จ‹ใ€‚ๆœฌๆ–‡ๅฆ‚ๆๅŠๆกŒ้ขๅบ”็”จใ€Electron ๅฎขๆˆท็ซฏใ€ๅบ”็”จ้€‚้…ๅ™จใ€App ๅฎ‰่ฃ…็ญ‰ๅ†…ๅฎน๏ผŒ้™ค้žๆ˜Ž็กฎๆ ‡ๆณจไธบโ€œๅŽŸๅž‹ๆœŸ / ๅ…ผๅฎนๅฑ‚ / ๅކๅฒๅฎž็Žฐโ€๏ผŒๅฆๅˆ™ไธๅ†ไปฃ่กจ็›ฎๆ ‡ๅฝขๆ€ใ€‚ ๅฝ“ๅ‰ๆœ€้ซ˜็บฆๆŸ๏ผš็ณป็ปŸ้•œๅƒใ€็ณป็ปŸๆœๅŠกใ€็ณป็ปŸๅฃณๅฑ‚ใ€่ฎพๅค‡/่ƒฝๅŠ›ๆŠฝ่ฑกใ€ๆƒ้™ไธŽๆ›ดๆ–ฐๆขๅคใ€‚

็‰ˆๆœฌ: 2.0.0 ๆ›ดๆ–ฐๆ—ฅๆœŸ: 2026-01-09 ็Šถๆ€: ๆˆ˜็•ฅ่ง„ๅˆ’้˜ถๆฎต


ไธ€ใ€ๆฆ‚่ฟฐ

ๆœฌๆ–‡ๆกฃๅฎšไน‰ AIOS Protocol ็š„้€‚้…ๅ™จๅ‘็Žฐๅ’Œๆณจๅ†Œๆœบๅˆถ๏ผŒๅŒ…ๆ‹ฌ Adapter Card ่ง„่Œƒใ€ๅ‘็Žฐ็ซฏ็‚นๅ’Œ่ƒฝๅŠ›ๅๅ•†ใ€‚

1.1 ่ฎพ่ฎก็›ฎๆ ‡

็›ฎๆ ‡ ่ฏดๆ˜Ž
ๆ ‡ๅ‡†ๅŒ– ๆไพ›ๆ ‡ๅ‡†ๅŒ–็š„ๅ‘็Žฐ็ซฏ็‚น๏ผŒๅฏน้ฝ A2A Agent Card
ๅฎ‰ๅ…จๆ€ง ๆ”ฏๆŒ็ญพๅ้ชŒ่ฏ๏ผŒ็กฎไฟ้€‚้…ๅ™จ่บซไปฝๅฏไฟก
็ตๆดปๆ€ง ๆ”ฏๆŒๆœฌๅœฐๅ‘็Žฐๅ’Œ่ฟœ็จ‹ๅ‘็Žฐ
ๅ…ผๅฎนๆ€ง ไธŽ็Žฐๆœ‰ .desktop ๅ’Œ tool.aios.yaml ๆœบๅˆถๅ…ผๅฎน

1.2 ไธŽ MCP/A2A ๅฏนๆฏ”

็‰นๆ€ง MCP A2A AIOS
ๅ‘็Žฐ็ซฏ็‚น ้…็ฝฎๆ–‡ไปถ /.well-known/agent-card.json /.well-known/aios-adapter.json
่ƒฝๅŠ›ๅฃฐๆ˜Ž initialize ๆกๆ‰‹ Agent Card Adapter Card + initialize
่บซไปฝ้ชŒ่ฏ - JWS ็ญพๅ JWS ็ญพๅ
ๆœฌๅœฐๅ‘็Žฐ - - .desktop + inotify

ไบŒใ€Adapter Card ่ง„่Œƒ

2.1 ็ซฏ็‚นไฝ็ฝฎ

ๅœบๆ™ฏ ็ซฏ็‚น
HTTP ่ฟœ็จ‹้€‚้…ๅ™จ /.well-known/aios-adapter.json
ๆœฌๅœฐ้€‚้…ๅ™จ /aios/adapter.json ๆˆ– tool.aios.yaml

2.2 Adapter Card ็ป“ๆž„

{
  "adapter": {
    "id": "org.aios.browser.chrome",
    "name": "Chrome ๆต่งˆๅ™จ้€‚้…ๅ™จ",
    "description": "้€š่ฟ‡ Chrome DevTools Protocol ๆŽงๅˆถ Chrome ๆต่งˆๅ™จ",
    "version": "1.0.0",
    "protocol_version": "0.3.0",
    "author": "AIOS Team",
    "homepage": "https://aios.example.com/adapters/chrome",
    "license": "MIT"
  },

  "capabilities": {
    "streaming": true,
    "batch_operations": true,
    "async_tasks": true,
    "push_notifications": false,
    "state_transition_history": true
  },

  "skills": [
    {
      "id": "compat.browser.open_url",
      "name": "ๆ‰“ๅผ€็ฝ‘ๅ€",
      "description": "ๅœจๆต่งˆๅ™จไธญๆ‰“ๅผ€ๆŒ‡ๅฎš็š„ URL",
      "permission_level": "medium",
      "examples": [
        "ๆ‰“ๅผ€ไบฌไธœ้ฆ–้กต",
        "่ฎฟ้—ฎ https://example.com"
      ],
      "input_schema": {
        "type": "object",
        "properties": {
          "url": {"type": "string", "format": "uri"}
        },
        "required": ["url"]
      }
    },
    {
      "id": "compat.browser.search",
      "name": "ๆœ็ดข",
      "description": "ๅœจๆœ็ดขๅผ•ๆ“Žไธญๆœ็ดขๅ…ณ้”ฎ่ฏ",
      "permission_level": "medium",
      "examples": [
        "ๆœ็ดขๆ— ็บฟ่€ณๆœบ",
        "ๆŸฅๆ‰พ Python ๆ•™็จ‹"
      ]
    },
    {
      "id": "compat.browser.extract_content",
      "name": "ๆๅ–้กต้ขๅ†…ๅฎน",
      "description": "ๆๅ–ๅฝ“ๅ‰้กต้ข็š„ๆ–‡ๆœฌๅ†…ๅฎน",
      "permission_level": "low"
    }
  ],

  "authentication": {
    "required": false,
    "schemes": []
  },

  "endpoints": {
    "rpc": "unix:///run/user/1000/aios/chrome.sock",
    "http": "http://localhost:9527/adapters/chrome",
    "health": "/health",
    "metrics": "/metrics"
  },

  "requirements": {
    "software": {
      "name": "Google Chrome",
      "min_version": "100.0",
      "detection": {
        "desktop_file": "google-chrome.desktop",
        "executable": "/usr/bin/google-chrome",
        "dbus_service": null
      }
    },
    "dependencies": [
      {"name": "chrome-devtools-protocol", "version": ">=1.0"}
    ]
  },

  "extensions": [
    "urn:aios:ext:priority:1.0"
  ],

  "signature": {
    "algorithm": "RS256",
    "key_id": "aios-adapter-key-001",
    "value": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

2.3 ๅญ—ๆฎต่ฏดๆ˜Ž

adapter (ๅฟ…้œ€)

ๅญ—ๆฎต ็ฑปๅž‹ ๅฟ…้œ€ ่ฏดๆ˜Ž
id string โœ… ้€‚้…ๅ™จๅ”ฏไธ€ๆ ‡่ฏ†็ฌฆ (ๅๅ‘ๅŸŸๅๆ ผๅผ)
name string โœ… ้€‚้…ๅ™จๆ˜พ็คบๅ็งฐ
description string โŒ ้€‚้…ๅ™จๆ่ฟฐ
version string โœ… ้€‚้…ๅ™จ็‰ˆๆœฌ (SemVer)
protocol_version string โœ… ๆ”ฏๆŒ็š„ AIOS ๅ่ฎฎ็‰ˆๆœฌ
author string โŒ ไฝœ่€…/็ป„็ป‡
homepage string โŒ ไธป้กต URL
license string โŒ ่ฎธๅฏ่ฏ

capabilities (ๅฟ…้œ€)

ๅญ—ๆฎต ็ฑปๅž‹ ้ป˜่ฎคๅ€ผ ่ฏดๆ˜Ž
streaming boolean false ๆ”ฏๆŒๆตๅผไผ ่พ“
batch_operations boolean false ๆ”ฏๆŒๆ‰น้‡ๆ“ไฝœ
async_tasks boolean false ๆ”ฏๆŒๅผ‚ๆญฅไปปๅŠก
push_notifications boolean false ๆ”ฏๆŒๆŽจ้€้€š็Ÿฅ
state_transition_history boolean false ๆ”ฏๆŒ็Šถๆ€ๅކๅฒ

skills (ๅฟ…้œ€)

ๆŠ€่ƒฝๅˆ—่กจ๏ผŒๅฏนๅบ”้€‚้…ๅ™จๆไพ›็š„่ƒฝๅŠ›๏ผš

ๅญ—ๆฎต ็ฑปๅž‹ ๅฟ…้œ€ ่ฏดๆ˜Ž
id string โœ… ๆŠ€่ƒฝๆ ‡่ฏ†็ฌฆ
name string โœ… ๆŠ€่ƒฝๆ˜พ็คบๅ็งฐ
description string โŒ ๆŠ€่ƒฝๆ่ฟฐ
permission_level string โœ… ๆƒ้™็บงๅˆซ (public/low/medium/high/critical)
examples array โŒ ไฝฟ็”จ็คบไพ‹ (ไพ› AI ๅญฆไน )
input_schema object โŒ ่พ“ๅ…ฅๅ‚ๆ•ฐ JSON Schema
output_schema object โŒ ่พ“ๅ‡บๆ ผๅผ JSON Schema

authentication (ๅฏ้€‰)

ๅญ—ๆฎต ็ฑปๅž‹ ่ฏดๆ˜Ž
required boolean ๆ˜ฏๅฆ้œ€่ฆ่ฎค่ฏ
schemes array ๆ”ฏๆŒ็š„่ฎค่ฏๆ–นๅผ (oauth2/api_key/bearer/mtls)

endpoints (ๅฟ…้œ€)

ๅญ—ๆฎต ็ฑปๅž‹ ่ฏดๆ˜Ž
rpc string JSON-RPC ็ซฏ็‚น (unix socket ๆˆ– TCP)
http string HTTP ็ซฏ็‚น (ๅฏ้€‰)
health string ๅฅๅบทๆฃ€ๆŸฅ็ซฏ็‚น
metrics string ๆŒ‡ๆ ‡็ซฏ็‚น (ๅฏ้€‰)

signature (ๅฏ้€‰ไฝ†ๆŽจ่)

JWS ็ญพๅ๏ผŒ็”จไบŽ้ชŒ่ฏ Adapter Card ็š„็œŸๅฎžๆ€ง๏ผš

ๅญ—ๆฎต ็ฑปๅž‹ ่ฏดๆ˜Ž
algorithm string ็ญพๅ็ฎ—ๆณ• (RS256/ES256)
key_id string ๅฏ†้’ฅๆ ‡่ฏ†็ฌฆ
value string ็ญพๅๅ€ผ (Base64)

ไธ‰ใ€ๅ‘็Žฐๆต็จ‹

3.1 ๆœฌๅœฐๅ‘็Žฐๆต็จ‹

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      ๆœฌๅœฐ้€‚้…ๅ™จๅ‘็Žฐๆต็จ‹                          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                 โ”‚
โ”‚  1. ๅฏๅŠจๆ—ถๅ…จ้‡ๆ‰ซๆ                                               โ”‚
โ”‚     โ”œโ”€โ”€ /usr/share/applications/*.desktop                      โ”‚
โ”‚     โ”œโ”€โ”€ ~/.local/share/applications/*.desktop                  โ”‚
โ”‚     โ”œโ”€โ”€ /usr/share/aios/adapters/*.yaml                        โ”‚
โ”‚     โ””โ”€โ”€ ~/.local/share/aios/adapters/*.yaml                    โ”‚
โ”‚                                                                 โ”‚
โ”‚  2. ๅปบ็ซ‹ inotify ็›‘ๆŽง                                           โ”‚
โ”‚     โ””โ”€โ”€ ็›‘ๆŽงไธŠ่ฟฐ็›ฎๅฝ•็š„ CREATE/DELETE/MODIFY ไบ‹ไปถ                 โ”‚
โ”‚                                                                 โ”‚
โ”‚  3. ่งฃๆž้€‚้…ๅ™จๆ่ฟฐ                                               โ”‚
โ”‚     โ”œโ”€โ”€ .desktop ๆ–‡ไปถ โ†’ ๆๅ–ๅบ”็”จๅ…ƒๆ•ฐๆฎ                          โ”‚
โ”‚     โ””โ”€โ”€ tool.aios.yaml โ†’ ๅฎŒๆ•ด้€‚้…ๅ™จๆ่ฟฐ                         โ”‚
โ”‚                                                                 โ”‚
โ”‚  4. ๅŒน้…้ข„ๅฎšไน‰้€‚้…ๅ™จๅบ“                                           โ”‚
โ”‚     โ””โ”€โ”€ ๆ นๆฎๅบ”็”จ ID ๅŒน้…ๅทฒ็Ÿฅ้€‚้…ๅ™จ                               โ”‚
โ”‚                                                                 โ”‚
โ”‚  5. ้ชŒ่ฏ้€‚้…ๅ™จ็ญพๅ (ๅฆ‚ๆœ‰)                                        โ”‚
โ”‚                                                                 โ”‚
โ”‚  6. ๆณจๅ†Œๅˆฐๅทฅๅ…ทๆณจๅ†Œ่กจ                                             โ”‚
โ”‚                                                                 โ”‚
โ”‚  7. ้€š็Ÿฅ AI ๅผ•ๆ“Žๆ–ฐๅทฅๅ…ทๅฏ็”จ                                       โ”‚
โ”‚     โ””โ”€โ”€ aios/notification.tools_changed                        โ”‚
โ”‚                                                                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3.2 ่ฟœ็จ‹ๅ‘็Žฐๆต็จ‹

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      ่ฟœ็จ‹้€‚้…ๅ™จๅ‘็Žฐๆต็จ‹                          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                 โ”‚
โ”‚  1. ่Žทๅ– Adapter Card                                           โ”‚
โ”‚     GET https://adapter.example.com/.well-known/aios-adapter.json
โ”‚                                                                 โ”‚
โ”‚  2. ้ชŒ่ฏ็ญพๅ                                                    โ”‚
โ”‚     โ”œโ”€โ”€ ่Žทๅ–ๅ…ฌ้’ฅ (ไปŽ key_id ๆˆ– JWKS ็ซฏ็‚น)                       โ”‚
โ”‚     โ””โ”€โ”€ ้ชŒ่ฏ JWS ็ญพๅ                                           โ”‚
โ”‚                                                                 โ”‚
โ”‚  3. ้ชŒ่ฏๅ่ฎฎ็‰ˆๆœฌๅ…ผๅฎนๆ€ง                                           โ”‚
โ”‚                                                                 โ”‚
โ”‚  4. ๆณจๅ†Œๅˆฐๅทฅๅ…ทๆณจๅ†Œ่กจ                                             โ”‚
โ”‚                                                                 โ”‚
โ”‚  5. ๅปบ็ซ‹่ฟžๆŽฅ (ๆŒ‰้œ€)                                              โ”‚
โ”‚                                                                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3.3 ๅ‘็Žฐ API

ๆœ็ดข้€‚้…ๅ™จ

ๆ–นๆณ•: aios/registry.search

่ฏทๆฑ‚๏ผš

{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "aios/registry.search",
  "params": {
    "query": "browser",
    "type": "compat",
    "capabilities": ["streaming"],
    "limit": 10
  }
}

ๅ“ๅบ”๏ผš

{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "adapters": [
      {
        "id": "org.aios.browser.chrome",
        "name": "Chrome ๆต่งˆๅ™จ้€‚้…ๅ™จ",
        "version": "1.0.0",
        "skills_count": 15,
        "status": "available"
      },
      {
        "id": "org.aios.browser.firefox",
        "name": "Firefox ๆต่งˆๅ™จ้€‚้…ๅ™จ",
        "version": "1.0.0",
        "skills_count": 12,
        "status": "available"
      }
    ],
    "total": 2
  }
}

่Žทๅ–้€‚้…ๅ™จ่ฏฆๆƒ…

ๆ–นๆณ•: aios/registry.info

่ฏทๆฑ‚๏ผš

{
  "jsonrpc": "2.0",
  "id": "2",
  "method": "aios/registry.info",
  "params": {
    "adapter_id": "org.aios.browser.chrome"
  }
}

ๅ“ๅบ”๏ผš

{
  "jsonrpc": "2.0",
  "id": "2",
  "result": {
    "adapter": {...},
    "capabilities": {...},
    "skills": [...],
    "status": {
      "available": true,
      "software_installed": true,
      "software_running": false
    }
  }
}

ๅˆทๆ–ฐๅ‘็Žฐ

ๆ–นๆณ•: aios/registry.refresh

่ฏทๆฑ‚๏ผš

{
  "jsonrpc": "2.0",
  "id": "3",
  "method": "aios/registry.refresh",
  "params": {
    "scope": "local"
  }
}

ๅ››ใ€็ญพๅ้ชŒ่ฏ

4.1 ็ญพๅๆ ผๅผ

Adapter Card ็ญพๅไฝฟ็”จ JWS (JSON Web Signature, RFC 7515) ๆ ผๅผ๏ผš

Header.Payload.Signature

4.2 ็ญพๅ็”Ÿๆˆ

import json
import base64
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import padding

def sign_adapter_card(adapter_card: dict, private_key) -> str:
    # ็งป้™ค็Žฐๆœ‰็ญพๅ
    card_copy = {k: v for k, v in adapter_card.items() if k != 'signature'}

    # ่ง„่ŒƒๅŒ– JSON
    payload = json.dumps(card_copy, sort_keys=True, separators=(',', ':'))

    # ็ญพๅ
    signature = private_key.sign(
        payload.encode(),
        padding.PKCS1v15(),
        hashes.SHA256()
    )

    return base64.urlsafe_b64encode(signature).decode()

4.3 ็ญพๅ้ชŒ่ฏ

def verify_adapter_card(adapter_card: dict, public_key) -> bool:
    signature = adapter_card.get('signature', {})
    if not signature:
        return False

    # ็งป้™ค็ญพๅๅญ—ๆฎต
    card_copy = {k: v for k, v in adapter_card.items() if k != 'signature'}

    # ่ง„่ŒƒๅŒ– JSON
    payload = json.dumps(card_copy, sort_keys=True, separators=(',', ':'))

    # ้ชŒ่ฏ
    try:
        public_key.verify(
            base64.urlsafe_b64decode(signature['value']),
            payload.encode(),
            padding.PKCS1v15(),
            hashes.SHA256()
        )
        return True
    except:
        return False

4.4 ๅ…ฌ้’ฅๅˆ†ๅ‘

ๆ–นๅผ ่ฏดๆ˜Ž
JWKS ็ซฏ็‚น /.well-known/jwks.json
ๅ†…็ฝฎไฟกไปป AIOS ๅ†…็ฝฎ็š„ๅ—ไฟกไปปๅ…ฌ้’ฅ
ๆ‰‹ๅŠจๅฏผๅ…ฅ ็”จๆˆทๆ‰‹ๅŠจๅฏผๅ…ฅๅ…ฌ้’ฅ

ไบ”ใ€ๅทฅๅ…ทๅ˜ๆ›ด้€š็Ÿฅ

5.1 ้€š็Ÿฅไบ‹ไปถ

ๅฝ“ๅทฅๅ…ทๆณจๅ†Œ่กจๅ‘็”Ÿๅ˜ๅŒ–ๆ—ถ๏ผŒๅ‘้€้€š็Ÿฅ๏ผš

{
  "jsonrpc": "2.0",
  "method": "aios/notification.tools_changed",
  "params": {
    "added": [
      {
        "id": "org.aios.browser.chrome",
        "name": "Chrome ๆต่งˆๅ™จ้€‚้…ๅ™จ"
      }
    ],
    "removed": [],
    "updated": []
  }
}

5.2 ่ฎข้˜…ๅทฅๅ…ทๅ˜ๆ›ด

ๆ–นๆณ•: aios/registry.subscribe

่ฏทๆฑ‚๏ผš

{
  "jsonrpc": "2.0",
  "id": "4",
  "method": "aios/registry.subscribe",
  "params": {
    "events": ["added", "removed", "updated"]
  }
}

ๅ…ญใ€ไธŽ tool.aios.yaml ็š„ๅ…ณ็ณป

6.1 ๆ ผๅผ่ฝฌๆข

tool.aios.yaml ๅฏไปฅ่ฝฌๆขไธบ Adapter Card JSON ๆ ผๅผ๏ผš

tool.aios.yaml Adapter Card
tool.id adapter.id
tool.name adapter.name
tool.version adapter.version
capabilities[] skills[]
permissions[] ๆ˜ ๅฐ„ๅˆฐ skills[].permission_level

6.2 ไผ˜ๅ…ˆ็บง

ๅฝ“ๅŒไธ€้€‚้…ๅ™จๅŒๆ—ถๅญ˜ๅœจๅคš็งๆ่ฟฐๆ—ถ๏ผš

  1. Adapter Card JSON (ๆœ€้ซ˜ไผ˜ๅ…ˆ็บง)
  2. tool.aios.yaml
  3. .desktop ๆ–‡ไปถ + ่‡ชๅŠจๆŽจๆ–ญ (ๆœ€ไฝŽไผ˜ๅ…ˆ็บง)

ไธƒใ€ๆ–นๆณ•้€ŸๆŸฅ่กจ

ๆ–นๆณ• ่ฏดๆ˜Ž
aios/registry.search ๆœ็ดข้€‚้…ๅ™จ
aios/registry.info ่Žทๅ–้€‚้…ๅ™จ่ฏฆๆƒ…
aios/registry.refresh ๅˆทๆ–ฐๅ‘็Žฐ
aios/registry.subscribe ่ฎข้˜…ๅทฅๅ…ทๅ˜ๆ›ด
aios/registry.unsubscribe ๅ–ๆถˆ่ฎข้˜…

ๆ–‡ๆกฃ็‰ˆๆœฌ: 2.0.0 ๆœ€ๅŽๆ›ดๆ–ฐ: 2026-01-09 ็ปดๆŠค่€…: AIOS Protocol Team