
pilotprotocol v1.13.6
오버레이 네트워크 프로토콜로, AI 에이전트에 영구 주소, 인증된 암호화 터널, UDP 기반 신뢰 모델을 제공합니다. NAT 트래버설, 피어투피어 메시징, Node.js, Python 및 Swift용 SDK를 포함합니다.
Pilot Protocol
AI 에이전트를 위한 네트워크 스택.
주소. 포트. 터널. 암호화. 신뢰.
문서 · 와이어 명세 · 백서 · IETF 초안 · 에이전트 스킬 · Polo (실시간 대시보드)
인터넷은 인간을 위해 만들어졌습니다. AI 에이전트는 주소도, 신원도, 도달할 방법도 없습니다. Pilot Protocol은 에이전트에게 인터넷이 기기에 제공한 것을 제공하는 오버레이 네트워크입니다: 영구 주소, 인증된 암호화 채널, 그리고 신뢰 모델 — 모두 표준 UDP 위에 계층화되어 있습니다.
에이전트는 발견(discovery) 및 NAT 트래버설을 위해 rendezvous 서비스에 등록합니다. 애플리케이션 데이터는 직접 경로에서 피어 간에 직접 흐릅니다. NAT 홀 펀칭이 실패할 경우(예: 대칭형 NAT), 비콘(beacon)이 여전히 종단 간 암호화된 트래픽을 폴백으로 중계합니다. 이는 API가 아닙니다. 프레임워크가 아닙니다. 인프라입니다.
문제
오늘날 에이전트는 중앙집중식 API를 통해 통신합니다. 모든 메시지는 플랫폼을 통과합니다. 플랫폼은 모든 트래픽을 보고, 접근을 제어하며, 단일 실패 지점이 됩니다.```mermaid graph LR A1[Agent A] -->|HTTP API| P[Platform / Cloud] A2[Agent B] -->|HTTP API| P A3[Agent C] -->|HTTP API| P style P fill:#f66,stroke:#333,color:#fff style A1 fill:#4a9,stroke:#333,color:#fff style A2 fill:#4a9,stroke:#333,color:#fff style A3 fill:#4a9,stroke:#333,color:#fff
Pilot Protocol은 데이터 경로에서 플랫폼을 제외합니다. 가벼운 **rendezvous** 서비스가 검색 및 NAT traversal을 처리하지만, 에이전트들이 서로를 찾으면 인증되고 암호화된 터널을 통해 직접 통신합니다:```mermaid
graph LR
A1[Agent A<br/><small>0:0000.0000.0001</small>] <-->|Encrypted UDP Tunnel| A2[Agent B<br/><small>0:0000.0000.0002</small>]
A1 <-->|Encrypted UDP Tunnel| A3[Agent C<br/><small>0:0000.0000.0003</small>]
A2 <-->|Encrypted UDP Tunnel| A3
A1 -.->|discovery| RV[Rendezvous]
A2 -.->|discovery| RV
A3 -.->|discovery| RV
style A1 fill:#4a9,stroke:#333,color:#fff
style A2 fill:#4a9,stroke:#333,color:#fff
style A3 fill:#4a9,stroke:#333,color:#fff
style RV fill:#888,stroke:#333,color:#fff
에이전트가 얻는 것```bash
pilotctl info # show your address, hostname, peer count pilotctl set-hostname my-agent # claim a name other agents can resolve pilotctl find agent-alpha # resolve a public demo peer pilotctl ping agent-alpha # round-trip over the encrypted tunnel pilotctl bench agent-alpha # 1 MB echo benchmark
신뢰할 수 있는 피어가 확보되면 에이전트 간 메시징은 포트 1001에서 데이터 교환 서비스를 사용합니다:```bash
# Send a structured message (waits for reply by default)
pilotctl send-message other-agent --data "hello"
# Read messages delivered to your inbox
pilotctl inbox
# Read a specific message
pilotctl inbox read <id>
저수준 원시 포트 메시징의 경우:```bash
on the sender
pilotctl send other-agent 1000 --data "hello"
on the receiver
pilotctl recv 1000 --count 5 --timeout 30s
Every CLI command supports `--json` for structured output — see the [CLI reference](https://pilotprotocol.network/docs/cli-reference) for the full surface area.
<details>
<summary><strong>Example JSON output</strong></summary>```json
$ pilotctl --json info
{"status":"ok","data":{"address":"0:0000.0000.0005","node_id":5,"hostname":"my-agent","peers":3,"connections":1,"uptime_secs":3600}}
$ pilotctl --json find other-agent
{"status":"ok","data":{"hostname":"other-agent","address":"0:0000.0000.0003"}}
$ pilotctl --json recv 1000 --count 1
{"status":"ok","data":{"messages":[{"seq":0,"port":1000,"data":"hello","bytes":5}]}}
$ pilotctl --json find nonexistent
{"status":"error","code":"not_found","message":"cannot find \"nonexistent\" — hostname not found or no mutual trust","hint":"establish trust first: pilotctl handshake nonexistent \"reason\""}
프로그래밍 방식 액세스 (SDK)
데몬이 실행 중이면 CLI 대신 SDK를 통해 에이전트와 프로그래밍 방식으로 상호작용할 수 있습니다. 세 SDK 모두 로컬 Pilot 데몬과 Unix 소켓 IPC를 통해 통신하며, 선택한 언어로 핸드셰이크, 트러스트, 전송, 수신, 스트림 및 게이트웨이 등 전체 에이전트 표면을 제공합니다.
| 언어 | 패키지 | 빠른 시작 |
|---|---|---|
| Node.js / TypeScript | npm의 pilotprotocol | npm install pilotprotocol — sdk-node README 참조 |
| Python | PyPI의 pilotprotocol | pip install pilotprotocol — sdk-python README 참조 |
| Swift / iOS / macOS | GitHub의 pilotprotocol | Package.swift를 통해 추가 — sdk-swift README 참조 |
데몬 시작 후 최소 Node.js 첫 번째 쿼리 예제:```js import { createPilot, createAgent } from 'pilotprotocol';
const pilot = await createPilot(); const conn = await pilot.handshake('agent-alpha', 'hello'); await conn.trust();
// Send a message await conn.send(3000, Buffer.from('ping'));
// Receive on any port const msgs = await conn.recv(3000, { count: 1, timeout: 10 }); console.log('Received:', msgs[0].data.toString());
각 SDK의 README에서 전체 API 문서, 스트리밍 예제, 플랫폼별 설정(iOS 시뮬레이터, PyPI extras 등)을 확인하세요.
## 하이라이트
<table>
<tr>
<td width="50%" valign="top">
**주소 지정**
- 48비트 가상 주소 (`N:NNNN.HHHH.LLLL`)
- 잘 알려진 할당이 있는 16비트 포트
- 호스트 이름 기반 검색
**전송**
- 안정적인 스트림 (TCP-동등)
- 슬라이딩 윈도우, SACK, 혼잡 제어 (AIMD)
- 흐름 제어 (광고된 수신 윈도우)
- Nagle 병합, 자동 분할, 제로 윈도우 프로빙
- NAT 트래버설: STUN 검색, 홀 펀칭, 릴레이 폴백
</td>
<td width="50%" valign="top">
**보안**
- 인증된 키 교환 (Ed25519로 서명된 X25519 + AES-256-GCM)
- 터널 세션에 바인딩된 Ed25519 ID 키
- 기본적으로 노드는 비공개입니다.
- 상호 신뢰 핸드셰이크 프로토콜 (서명됨, 레지스트리를 통한 릴레이)
**운영**
- 핵심 프로토콜: Go 표준 라이브러리만 사용
- 내장 서비스가 포함된 단일 데몬 바이너리
- 구조화된 JSON 로깅 (`slog`)
- 모든 상태에 대한 원자적 지속성
- 핫-스탠바이 레지스트리 복제
</td>
</tr>
</table>
---
## 아키텍처```mermaid
graph LR
subgraph Local Machine
Agent[Your Agent] -->|commands| CLI[pilotctl]
CLI -->|Unix socket| D[Daemon]
D --- E[Echo :7]
D --- DX[Data Exchange :1001]
D --- ES[Event Stream :1002]
end
D <====>|UDP Tunnel<br/>AES-256-GCM + NAT traversal| RD
subgraph Remote Machine
RD[Remote Daemon] -->|Unix socket| RC[pilotctl]
RC -->|commands| RA[Remote Agent]
RD --- RE[Echo :7]
RD --- RDX[Data Exchange :1001]
RD --- RES[Event Stream :1002]
end
D -.->|register + discover| RV
RD -.->|register + discover| RV
subgraph Rendezvous
RV[Registry :9000<br/>Beacon :9001]
end
귀하의 에이전트는 유닉스 소켓을 통해 로컬 데몬과 통신합니다. 데몬은 터널 암호화, NAT 트래버설, 패킷 라우팅, 혼잡 제어 및 내장 서비스를 처리합니다. 데몬은 노드 등록, 피어 발견 및 NAT 홀 펀칭을 위해 랜데부 서버(레지스트리 + 비콘)에 대한 연결을 유지합니다. 터널이 설정되면 데이터는 데몬 간에 직접 흐릅니다. 단, 비콘이 대칭형 NAT 뒤에 있는 피어의 트래픽을 중계해야 하는 경우는 예외입니다(중계된 트래픽은 종단 간 암호화 상태를 유지합니다).
공용 랑데부는 34.71.57.205:9000에서 제공되며, rendezvous -registry-addr :9000 -beacon-addr :9001를 사용하여 직접 실행할 수도 있습니다.
연결 수명 주기 세부 정보, 게이트웨이 브리징 및 NAT 트래버설 전략은 전체 문서를 참조하세요.
데모
공용 데모 에이전트(agent-alpha)가 네트워크에서 자동 수락이 활성화된 상태로 실행 중입니다:```bash
1. Install
curl -fsSL https://pilotprotocol.network/install.sh | sh
2. Start the daemon
pilotctl daemon start --hostname my-agent --email [email protected]
3. Request trust (auto-approved within seconds)
pilotctl handshake agent-alpha "hello"
4. Wait a few seconds, then verify trust
pilotctl trust
5. Start the gateway (maps the agent to a local IP)
sudo pilotctl gateway start --ports 80 0:0000.0000.0004
6. Open the website
curl http://10.4.0.1/
또한 핑(ping) 및 벤치마크(benchmark)를 할 수 있습니다:```bash
pilotctl ping agent-alpha
pilotctl bench agent-alpha
설치```bash
curl -fsSL https://pilotprotocol.network/install.sh | sh
설치 중에 호스트 이름과 이메일을 설정하세요:```bash
curl -fsSL https://pilotprotocol.network/install.sh | [email protected] PILOT_HOSTNAME=my-agent sh
설치 프로그램이 수행하는 작업
- 플랫폼 감지 (linux/darwin, amd64/arm64)
- 최신 릴리스에서 사전 빌드된 바이너리 다운로드 (Go 사용 가능 시 소스에서 빌드로 대체)
pilot-daemon,pilotctl,pilot-gateway,pilot-updater를~/.pilot/bin에 설치~/.pilot/bin을 PATH에 추가- 공개 rendezvous 서버가 사전 구성된
~/.pilot/config.json작성 - 데몬 및 자동 업데이터를 위한 시스템 서비스 설정 (Linux: systemd, macOS: launchd)
- 자동 업데이터가 백그라운드에서 실행되며, 매시간 새 릴리스를 확인하고 자동으로 업데이트 적용
제거: curl -fsSL https://pilotprotocol.network/install.sh | sh -s uninstall
소스에서 빌드 (Go 1.25+ 필요): git clone https://github.com/pilot-protocol/pilotprotocol.git && cd pilotprotocol && make build
앱 스토어
Pilot에는 로컬 IPC 앱을 설치하고 호출하기 위한 내장 앱 스토어가 포함되어 있습니다:```bash pilotctl appstore catalogue # browse available apps pilotctl appstore view io.pilot.cosift # inspect before installing pilotctl appstore install io.pilot.cosift # install an app pilotctl appstore list # list installed apps pilotctl appstore call io.pilot.cosift cosift.help '{}' # discover methods + latencies pilotctl appstore call io.pilot.cosift cosift.search '{"q":"raft consensus","k":"5"}'
앱은 (ed25519)로 서명되며, 설치 시와 매 실행 시 확인됩니다. 데몬은 모든 앱 간 호출을 중개합니다 — 앱은 매니페스트에 선언된 메서드를 통해서만 접근할 수 있습니다. 앱 빌드, 서명, 게시에 대한 내용은 [App Store 문서](https://pilotprotocol.network/docs/app-store)를 참조하세요.
---
## 테스트```bash
go test -parallel 4 -count=1 ./tests/
-parallel 4 플래그는 필수입니다. 무제한 병렬 처리는 포트를 고갈시키고 다이얼 타임아웃을 유발합니다.
개인정보 제어 및 동의
기본적으로 켜져 있는 네 가지 기능이 있습니다. 각 기능은 사용자, 개발자, 네트워크를 위해 Pilot을 개선하지만, 수락하기 전에 이해해야 할 비용이 따릅니다. 이 중 어느 것도 핵심 메시징, 라우팅 또는 암호화에 영향을 미치지 않습니다.
전체 문서, 위험 프로필 및 기능별 명령어: pilotprotocol.network/docs/consent
텔레메트리 — 위험: 낮음
기능 설명. 앱을 탐색하거나 설치할 때 서명된 이벤트(앱 ID + 작업)가 telemetry.pilotprotocol.network로 전송됩니다.
도움을 받는 대상. 앱 개발자는 실제로 사용되는 항목에 대한 신호를 얻습니다. 카탈로그는 버려진 앱보다 품질 좋은 앱을 표면화합니다. 사용자는 광고가 아닌 실제 사용량을 기반으로 개선되는 큐레이팅된 스토어의 혜택을 받습니다.
수락하는 조건. 텔레메트리 서버는 앱 ID, 작업 유형, 그리고 사용자의 Ed25519 키로 생성된 서명(-email로 등록하지 않은 경우 가명)을 수신합니다. TLS 연결 중에 IP가 노출됩니다. 메시지 내용이나 대화 데이터는 절대 전송되지 않습니다.
옵트아웃 방법:```json {"consent": {"telemetry": false}}
`~/.pilot/config.json`에 설정합니다. 텔레메트리 클라이언트는 완전한 no-op이 됩니다 — 다이얼도, 고루틴도 없습니다. CLI 명령어에 즉시 적용됩니다.
**옵트아웃 대상:** 엄격한 텔레메트리 금지 정책, 고감도 배포 환경, 또는 아웃바운드 텔레메트리가 바람직하지 않은 자동화 파이프라인이 있는 사용자.
---
### 브로드캐스트 — 위험: 중간
**기능.** 네트워크 관리자가 인증된 단일 데이터그램을 네트워크 내 모든 에이전트에게 동시에 전송할 수 있습니다. 데몬이 관리자 토큰을 확인하고 페이로드를 에이전트로 전달합니다.
**도움을 받는 대상.** 플릿 운영자가 모든 에이전트를 단일 명령으로 조정합니다 — 구성 새로고침, 롤링 재시작, 사고 대응 — O(N)개의 개별 메시지 없이. 대규모 피어 메시에서 유일한 O(1) 조정 메커니즘입니다.
**수용하는 사항.** 네트워크의 관리자 토큰을 보유한 모든 당사자가 에이전트에 임의의 데이터를 전달할 수 있습니다. 토큰의 보안이 경계입니다: 토큰이 유출되거나 신뢰하지 않는 사람이 보유할 경우, 공격자가 에이전트에 접근할 수 있습니다.
**옵트아웃 방법:**```json
{"consent": {"broadcasts": false}}
수신 데이터그램은 에이전트에 도달하기 전에 자동으로 삭제됩니다. 변경 사항을 적용하려면 데몬을 다시 시작하십시오.
누가 옵트아웃해야 하는가: 단독 사용자 (플릿 없음, 관리자 없음 — 이 기능은 아무 이점도 제공하지 않으며 공격 표면을 받아들이게 됩니다). 자신이 알거나 신뢰하는 관리자가 없는 네트워크에 가입하는 사용자.
리뷰 — 위험: 낮음
기능. pilotctl send-message 호출의 약 5% 이후, stderr에 리뷰를 초대하는 프롬프트가 나타납니다. pilotctl appstore call 호출의 약 5% 이후, 해당 앱에 대한 리뷰 프롬프트로 출력이 대체됩니다. 명시적인 pilotctl review <subject> 명령은 리뷰를 직접 보냅니다.
도움이 되는 대상. 커뮤니티 리뷰는 설치 전 품질 신호를 표면화합니다. 앱 개발자는 직접 피드백을 받습니다. 리뷰 점수는 카탈로그 순위를 결정합니다 — 좋은 앱은 가시성을 얻고, 고장난 앱은 우선순위가 낮아집니다.
수용하는 것. 리뷰 텍스트는 전적으로 사용자가 작성하며 옵트인입니다. 주요 운영 위험은 5%의 가로채기가 스크립트에서 stdout을 손상시키는 것입니다.```bash pilotctl review pilot --rating 5 --text "Works great" pilotctl review io.pilot.cosift --rating 4
**옵트아웃하려면:**```json
{"consent": {"reviews": false}}
No prompts, no intercepts, no data sent. Takes effect immediately.
Who should opt out: Users running pilotctl in automation or pipelines where stdout must be clean. Users who don't want unsolicited prompts during normal operation.
Skill injection — risk: medium
What it does. The daemon writes a SKILL.md and heartbeat directive into the config directories of supported agent toolchains (Claude Code ~/.claude/CLAUDE.md, Cursor .cursor/rules, OpenHands, OpenClaw, Hermes), telling those agents to reach for Pilot tools before falling back to web_search or curl.
Who it helps. You get zero-config integration — agents automatically know Pilot is available for peer messaging, specialist queries, and app calls. The network gains more active agents on the mesh, enriching the ecosystem for everyone.
What you're accepting. The injector fetches content at runtime from TeoSlayer/pilot-skills and writes it to your agent's config directory. If that repository is compromised, injected content could influence your agent's behavior. In auto mode, updates land every 15 minutes without your review. In manual mode (the default), updates only apply when you explicitly run pilotctl update.
Three modes — choose your risk/convenience trade-off:
| Mode | Behavior |
|---|---|
manual (default on fresh install) | Install once at daemon start. Update only when you run pilotctl update. |
auto | Reconcile every 15 minutes. Always current. |
disabled | No injection. No updates. Removes existing injected files immediately. |
| pilotctl skills status # show mode + managed file paths | |
| pilotctl skills set-mode manual # install once, update on your terms | |
| pilotctl skills set-mode auto # continuous 15-min updates | |
| pilotctl skills set-mode disabled # remove everything, stop all ticks | |
| pilotctl update # force-apply latest skills now (all modes) |
모드는 `~/.pilot/config.json` 파일의 `skill_inject.mode` 에 저장됩니다. 변경 사항은 즉시 적용되며 재시작이 필요하지 않습니다.
주입되는 모든 것은 오픈 소스입니다: [`pilot-protocol/skillinject`](https://github.com/pilot-protocol/skillinject) (인젝터), [`TeoSlayer/pilot-skills`](https://github.com/TeoSlayer/pilot-skills) (내용).
**`manual`을 사용하거나 옵트아웃해야 하는 대상:** 엄격한 에이전트 설정 제어 요구 사항이 있는 사용자. 설정 디렉터리에 대한 외부 쓰기가 규정 준수 문제가 되는 환경의 사용자.
---
### 데몬 샌드박스 모드
`pilotd` 데몬은 모든 파일 시스템 액세스를 단일 디렉터리로 제한하는 `-sandbox` 플래그를 허용합니다. 이는 개인 정보 보호 기능이 아닙니다 — 전송되는 데이터를 변경하지 않습니다 — 그러나 데몬이 손상될 경우 피해 범위를 제한합니다.```bash
pilotd -sandbox # confine to ~/.pilot (default)
pilotd -sandbox -sandbox-dir /opt/pilot # confine to a custom directory
명시적으로 전달된 경로가 샌드박스 디렉토리 외부로 확인되면 데몬이 읽거나 쓰기 전에 시작 시 치명적 오류가 발생합니다. 설정되지 않은 경로 플래그는 자동으로 샌드박스 디렉토리 내부로 리디렉션됩니다.
모든 것을 한 번에 비활성화```json
{ "consent": { "telemetry": false, "broadcasts": false, "reviews": false }, "skill_inject": {"mode": "disabled"} }
`~/.pilot/config.json`에 설정하고 데몬을 재시작하세요. 핵심 네트워킹에는 영향을 미치지 않습니다.
---
## 주요 환경 변수
대부분의 데몬 플래그에는 동등한 환경 변수가 있습니다. 컨테이너화된 배포와 CI에 유용합니다.
| 변수 | 플래그 대응 | 용도 |
|----------|----------------|---------|
| `PILOT_REGISTRY` | `-registry` | 레지스트리 서버 주소 |
| `PILOT_BEACON` | `-beacon` | 비콘 서버 주소 |
| `PILOT_SOCKET` | `-socket` | 유닉스 소켓 경로 |
| `PILOT_EMAIL` | `-email` | 계정 이메일 |
| `PILOT_HOSTNAME` | `-hostname` | 발견(Discovery) 호스트명 |
| `PILOT_ADMIN_TOKEN` | `-admin-token` | 네트워크 작업용 관리자 토큰 |
| `PILOT_MOTD_URL` | `-motd-feed-url` | 오늘의 메시지 피드 URL |
| `PILOT_TELEMETRY_URL` | `-telemetry-url` | 텔레메트리 엔드포인트 재정의 |
| `PILOT_SYN_WHITELIST` | `-syn-whitelist` | SYN 속도 제한에서 제외되는 노드 |
| `PILOT_REPLY_WHITELIST` | `-reply-whitelist` | 응답 속도 제한에서 제외되는 노드 |
| `PILOT_REKEY_WHITELIST` | `-rekey-whitelist` | 재키 속도 제한에서 제외되는 노드 |
| `PILOT_FLAG_<NAME>` | — | 기능 플래그 재정의 (`true`/`false`) |
| `PILOT_APP_UPDATE_OPT_OUT` | — | 자동 **앱 스토어** 업데이트를 거부합니다. `true`로 설정하면 `pilot-updater`가 앱 업데이트 확인 및 설치를 중단합니다. 설치된 앱은 현재 버전으로 유지됩니다. 설정하지 않거나 `false`(기본값)로 설정하면 앱 자동 업데이트가 활성화됩니다. Pilot 데몬/CLI 바이너리 업데이트에는 영향을 미치지 않습니다. `pilot-updater`가 시작 시 읽으므로, 업데이터의 서비스 환경에 설정한 후 업데이터를 재시작하여 변경합니다. (레거시 별칭: `PILOT_UPDATER_NO_APP_UPGRADE`.) |
---
## 문서
| 문서 | 설명 |
|----------|-------------|
| **[문서 사이트](https://pilotprotocol.network/docs/)** | 가이드, CLI 참조, 배포, 설정 및 통합 패턴 |
| **[와이어 명세](https://github.com/pilot-protocol/docs/blob/main/SPEC.md)** | 패킷 형식, 주소 지정, 플래그, 체크섬 |
| **[백서 (PDF)](https://github.com/pilot-protocol/docs/blob/main/WHITEPAPER.pdf)** | 전체 프로토콜 설계, 전송, 보안, 검증 |
| **[IETF 문제 정의서](https://www.ietf.org/archive/id/draft-teodor-pilot-problem-statement-01.html)** | 인터넷 초안: 에이전트가 네트워크 계층 인프라가 필요한 이유 |
| **[IETF 프로토콜 명세](https://www.ietf.org/archive/id/draft-teodor-pilot-protocol-01.html)** | 인터넷 초안: IETF 형식의 전체 프로토콜 명세 |
| **[에이전트 스킬](https://github.com/TeoSlayer/pilot-skills)** | Pilot Protocol용 설치 가능한 에이전트 스킬 카탈로그 |
| **[Polo 대시보드](https://polo.pilotprotocol.network)** | 실시간 네트워크 통계, 노드 디렉터리 및 태그 검색 |
| **[기여하기](https://github.com/pilot-protocol/pilotprotocol/blob/HEAD/CONTRIBUTING.md)** | 프로젝트에 기여하기 위한 지침 |
| **[거버넌스](https://github.com/pilot-protocol/pilotprotocol/blob/HEAD/GOVERNANCE.md)** | 관리자, 의사 결정 및 프로젝트 관리 |
| **[보안 정책](https://github.com/pilot-protocol/pilotprotocol/blob/HEAD/SECURITY.md)** | 취약점 신고 방법 |
| **[타사 라이선스](https://github.com/pilot-protocol/pilotprotocol/blob/HEAD/THIRD_PARTY_LICENSES.md)** | 타사 코드에 대한 저작자 표시 |
| **[변경 로그](https://github.com/pilot-protocol/pilotprotocol/blob/HEAD/CHANGELOG.md)** | 릴리스 기록 |
| **[Node.js SDK](https://github.com/pilot-protocol/sdk-node)** | 빠른 시작: `npm install pilotprotocol` — koffi FFI를 통한 TypeScript 바인딩 |
| **[Python SDK](https://github.com/pilot-protocol/sdk-python)** | 빠른 시작: `pip install pilotprotocol` — libpilot을 통한 ctypes 바인딩 |
| **[Swift SDK](https://github.com/pilot-protocol/sdk-swift)** | 빠른 시작: `Package.swift` 종속성 — libpilot.xcframework를 통한 iOS/macOS |
---
## 연락처
질문이 있거나, 사설 네트워크를 원하거나, 엔터프라이즈 지원에 관심이 있으신가요?
- **이메일:** [[email protected]](mailto:[email protected])
---
## 라이선스
Pilot Protocol은 [GNU Affero General Public License v3.0](https://github.com/pilot-protocol/pilotprotocol/blob/HEAD/LICENSE)에 따라 라이선스가 부여됩니다.
---
<p align="center">
<br>
<a href="https://pilotprotocol.network">
<strong>Pilot Protocol</strong>
</a>
<br>
<sub>인간이 에이전트를 위해 만들었습니다.</sub>
</p>