็ณป็ปๅผๅๅฃๅพไฟฎ่ฎข๏ผ2026-03-08๏ผ AIOS ็ปไธๅฎไนไธบ AI ๅ็ๆไฝ็ณป็ป / ็ณป็ป่ฝฏไปถๅทฅ็จใๆฌๆๅฆๆๅๆก้ขๅบ็จใElectron ๅฎขๆท็ซฏใๅบ็จ้้ ๅจใApp ๅฎ่ฃ ็ญๅ ๅฎน๏ผ้ค้ๆ็กฎๆ ๆณจไธบโๅๅๆ / ๅ ผๅฎนๅฑ / ๅๅฒๅฎ็ฐโ๏ผๅฆๅไธๅไปฃ่กจ็ฎๆ ๅฝขๆใ ๅฝๅๆ้ซ็บฆๆ๏ผ็ณป็ป้ๅใ็ณป็ปๆๅกใ็ณป็ปๅฃณๅฑใ่ฎพๅค/่ฝๅๆฝ่ฑกใๆ้ไธๆดๆฐๆขๅคใ
็ๆฌ: 2.0.0 ๆดๆฐๆฅๆ: 2026-01-09 ็ถๆ: ๆ็ฅ่งๅ้ถๆฎต
ๆฌๆๆกฃๅฎไน AIOS Protocol ็้้ ๅจๅ็ฐๅๆณจๅๆบๅถ๏ผๅ ๆฌ Adapter Card ่ง่ใๅ็ฐ็ซฏ็นๅ่ฝๅๅๅใ
| ็ฎๆ | ่ฏดๆ |
|---|---|
| ๆ ๅๅ | ๆไพๆ ๅๅ็ๅ็ฐ็ซฏ็น๏ผๅฏน้ฝ A2A Agent Card |
| ๅฎๅ จๆง | ๆฏๆ็ญพๅ้ช่ฏ๏ผ็กฎไฟ้้ ๅจ่บซไปฝๅฏไฟก |
| ็ตๆดปๆง | ๆฏๆๆฌๅฐๅ็ฐๅ่ฟ็จๅ็ฐ |
| ๅ ผๅฎนๆง | ไธ็ฐๆ .desktop ๅ tool.aios.yaml ๆบๅถๅ ผๅฎน |
| ็นๆง | MCP | A2A | AIOS |
|---|---|---|---|
| ๅ็ฐ็ซฏ็น | ้ ็ฝฎๆไปถ | /.well-known/agent-card.json | /.well-known/aios-adapter.json |
| ่ฝๅๅฃฐๆ | initialize ๆกๆ | Agent Card | Adapter Card + initialize |
| ่บซไปฝ้ช่ฏ | - | JWS ็ญพๅ | JWS ็ญพๅ |
| ๆฌๅฐๅ็ฐ | - | - | .desktop + inotify |
| ๅบๆฏ | ็ซฏ็น |
|---|---|
| HTTP ่ฟ็จ้้ ๅจ | /.well-known/aios-adapter.json |
| ๆฌๅฐ้้ ๅจ | /aios/adapter.json ๆ tool.aios.yaml |
{
"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..."
}
}| ๅญๆฎต | ็ฑปๅ | ๅฟ ้ | ่ฏดๆ |
|---|---|---|---|
id |
string | โ | ้้ ๅจๅฏไธๆ ่ฏ็ฌฆ (ๅๅๅๅๆ ผๅผ) |
name |
string | โ | ้้ ๅจๆพ็คบๅ็งฐ |
description |
string | โ | ้้ ๅจๆ่ฟฐ |
version |
string | โ | ้้ ๅจ็ๆฌ (SemVer) |
protocol_version |
string | โ | ๆฏๆ็ AIOS ๅ่ฎฎ็ๆฌ |
author |
string | โ | ไฝ่ /็ป็ป |
homepage |
string | โ | ไธป้กต URL |
license |
string | โ | ่ฎธๅฏ่ฏ |
| ๅญๆฎต | ็ฑปๅ | ้ป่ฎคๅผ | ่ฏดๆ |
|---|---|---|---|
streaming |
boolean | false | ๆฏๆๆตๅผไผ ่พ |
batch_operations |
boolean | false | ๆฏๆๆน้ๆไฝ |
async_tasks |
boolean | false | ๆฏๆๅผๆญฅไปปๅก |
push_notifications |
boolean | false | ๆฏๆๆจ้้็ฅ |
state_transition_history |
boolean | false | ๆฏๆ็ถๆๅๅฒ |
ๆ่ฝๅ่กจ๏ผๅฏนๅบ้้ ๅจๆไพ็่ฝๅ๏ผ
| ๅญๆฎต | ็ฑปๅ | ๅฟ ้ | ่ฏดๆ |
|---|---|---|---|
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 |
| ๅญๆฎต | ็ฑปๅ | ่ฏดๆ |
|---|---|---|
required |
boolean | ๆฏๅฆ้่ฆ่ฎค่ฏ |
schemes |
array | ๆฏๆ็่ฎค่ฏๆนๅผ (oauth2/api_key/bearer/mtls) |
| ๅญๆฎต | ็ฑปๅ | ่ฏดๆ |
|---|---|---|
rpc |
string | JSON-RPC ็ซฏ็น (unix socket ๆ TCP) |
http |
string | HTTP ็ซฏ็น (ๅฏ้) |
health |
string | ๅฅๅบทๆฃๆฅ็ซฏ็น |
metrics |
string | ๆๆ ็ซฏ็น (ๅฏ้) |
JWS ็ญพๅ๏ผ็จไบ้ช่ฏ Adapter Card ็็ๅฎๆง๏ผ
| ๅญๆฎต | ็ฑปๅ | ่ฏดๆ |
|---|---|---|
algorithm |
string | ็ญพๅ็ฎๆณ (RS256/ES256) |
key_id |
string | ๅฏ้ฅๆ ่ฏ็ฌฆ |
value |
string | ็ญพๅๅผ (Base64) |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๆฌๅฐ้้
ๅจๅ็ฐๆต็จ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ 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 โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ่ฟ็จ้้
ๅจๅ็ฐๆต็จ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ 1. ่ทๅ Adapter Card โ
โ GET https://adapter.example.com/.well-known/aios-adapter.json
โ โ
โ 2. ้ช่ฏ็ญพๅ โ
โ โโโ ่ทๅๅ
ฌ้ฅ (ไป key_id ๆ JWKS ็ซฏ็น) โ
โ โโโ ้ช่ฏ JWS ็ญพๅ โ
โ โ
โ 3. ้ช่ฏๅ่ฎฎ็ๆฌๅ
ผๅฎนๆง โ
โ โ
โ 4. ๆณจๅๅฐๅทฅๅ
ทๆณจๅ่กจ โ
โ โ
โ 5. ๅปบ็ซ่ฟๆฅ (ๆ้) โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๆนๆณ: 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"
}
}Adapter Card ็ญพๅไฝฟ็จ JWS (JSON Web Signature, RFC 7515) ๆ ผๅผ๏ผ
Header.Payload.Signature
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()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| ๆนๅผ | ่ฏดๆ |
|---|---|
| JWKS ็ซฏ็น | /.well-known/jwks.json |
| ๅ ็ฝฎไฟกไปป | AIOS ๅ ็ฝฎ็ๅไฟกไปปๅ ฌ้ฅ |
| ๆๅจๅฏผๅ ฅ | ็จๆทๆๅจๅฏผๅ ฅๅ ฌ้ฅ |
ๅฝๅทฅๅ ทๆณจๅ่กจๅ็ๅๅๆถ๏ผๅ้้็ฅ๏ผ
{
"jsonrpc": "2.0",
"method": "aios/notification.tools_changed",
"params": {
"added": [
{
"id": "org.aios.browser.chrome",
"name": "Chrome ๆต่งๅจ้้
ๅจ"
}
],
"removed": [],
"updated": []
}
}ๆนๆณ: aios/registry.subscribe
่ฏทๆฑ๏ผ
{
"jsonrpc": "2.0",
"id": "4",
"method": "aios/registry.subscribe",
"params": {
"events": ["added", "removed", "updated"]
}
}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 |
ๅฝๅไธ้้ ๅจๅๆถๅญๅจๅค็งๆ่ฟฐๆถ๏ผ
- Adapter Card JSON (ๆ้ซไผๅ ็บง)
- tool.aios.yaml
- .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