{"id":"eb70f952-77a6-4f6f-bacf-36a6074d3bd8","shortId":"pYNmCQ","kind":"skill","title":"pilot-service-agents","tagline":"Discover and query the pilot-service-agents catalogue — ~370 always-on data agents reachable over Pilot Protocol that wrap real-world APIs (Google Maps, OpenAlex, NHTSA, USGS, CoinGecko, NASA, aviation weather, and many more) so callers don't need their own API keys, rate limits,","description":"# pilot-service-agents\n\nEvery service agent on Pilot Protocol exposes the **same four-command interface**\nover the overlay, so once you understand one you understand them all. The\ncatalogue itself is served by a directory agent called `list-agents` — always\nstart there.\n\n## The flow: discover → pick → invoke → read inbox\n\n```\npilotctl send-message list-agents --data \"/data {filters}\"   (find agents)\npilotctl send-message <hostname>   --data \"/help\"            (read contract)\npilotctl send-message <hostname>   --data \"/data {filters}\"  (fetch data)\npilotctl inbox                                               (read response)\n```\n\nThe send-message call returns an ACK immediately; the **actual response comes\nback as an inbox message** a few seconds later from the agent you called.\n\n## Discovering agents via list-agents\n\n`list-agents` is the directory. Talk to it like any other agent.\n\n### List all commands it supports\n```bash\npilotctl --json send-message list-agents --data \"/help\"\npilotctl --json inbox\n```\n\n### Filter the catalogue\n```bash\npilotctl --json send-message list-agents --data '/data {\"category\":\"academic\",\"limit\":20}'\npilotctl --json inbox\n```\n\nSupported filter fields on `list-agents` `/data`:\n\n| field | type | meaning |\n|---|---|---|\n| `category` | string | academic, geo, finance, news, health, science, security, … |\n| `tier` | string | `free` (no per-request cost) or `premium` (paid, higher quality, e.g. Google Cloud) |\n| `search` | string | substring match on hostname + category + description |\n| `hostname` | string | exact hostname match |\n| `limit` | int | max items (default 50, max 500) |\n\nThe response envelope contains `items`, `count`, `total`, `groups` (counts per\ncategory), and `tiers.free` / `tiers.premium` buckets with their disclaimers.\n\n### Gemini summary of matches\n```bash\npilotctl --json send-message list-agents --data '/summary {\"category\":\"flights\"}'\npilotctl --json inbox\n```\n\n### Free-text question over the catalogue\n```bash\npilotctl --json send-message list-agents --data 'which agent gives me Formula 1 race results?'\npilotctl --json inbox\n```\n\n## Talking to a specific service agent\n\nOnce you have a hostname, the **same four commands** work on every agent:\n\n| message | what it does |\n|---|---|\n| `/help` | prints the filter schema + pagination + example call |\n| `/data {json}` | fetch real data, returns a normalised envelope |\n| `/summary {json}` | same fetch, piped through Gemini for prose |\n| `<any free text>` | Gemini picks filters and fetches |\n\nFilter shape for `/data` is agent-specific. Always read `/help` first — it lists\nevery filter with type, required flag, default, and description. Premium agents\n(hostname prefix `gcp-`) announce themselves with a `[PREMIUM]` tag in `/help`.\n\n### Canonical response envelope\nEvery `/data` response has this shape:\n\n```json\n{\n  \"source\": \"<hostname>\",\n  \"items\":  [...],\n  \"count\":  <int>,\n  \"total\":  <int|null>,\n  \"page\":   <int|null>,\n  \"next\":   <cursor|null>,\n  \"truncated\": <bool>,\n  \"upstream_url\": \"<resolved upstream URL>\"\n}\n```\n\n## Pagination\n\nIf an agent's `/help` shows `Pagination: page|offset|cursor`, pass the knob in\nyour filter JSON. The knobs the agent recognises are in the same `/help`\noutput. Omit pagination and you get the upstream's default page.\n\n## Workflow Example\n\nAnswer \"what aircraft are currently over Manhattan?\" with zero upfront API\nknowledge:\n\n```bash\n# 1. Find the right category\npilotctl --json send-message list-agents --data '/data {\"category\":\"flights\",\"limit\":5}'\nsleep 5\npilotctl --json inbox   # pick e.g. adsb-lol-latlon\n\n# 2. Read its filter contract\npilotctl --json send-message adsb-lol-latlon --data '/help'\nsleep 5\npilotctl --json inbox\n\n# 3. Query with the filters you just learned\npilotctl --json send-message adsb-lol-latlon \\\n  --data '/data {\"lat\":40.78,\"lon\":-73.97,\"radius\":8}'\nsleep 5\npilotctl --json inbox\n```\n\n## What to expect across the catalogue\n\nThe catalogue grows; treat every hostname list as a snapshot. To stay current,\nalways start with `list-agents /data` — never hard-code a list.\n\n- **Free agents** — community API wrappers. Best for volume, exploration,\n  unauthenticated lookups. Rate-limited on the upstream's side.\n- **Premium agents** — `gcp-*` hostnames, backed by Google Cloud credits\n  managed centrally. Higher accuracy, SLA-grade freshness, real cost per call.\n- **Every agent caches upstream responses** for ~60s and serves stale data on\n  upstream errors (`\"cached\": true, \"cache_age_seconds\": N` fields appear in\n  the envelope when that happens).\n- **Authentication is handled agent-side.** You never hold an API key.\n\n## Related skills (per category)\n\nThere is a dedicated `pilot-service-agents-<category>` skill for each category\nin the catalogue — read one of those once you know which kind of data you\nneed. Discover the list with:\n\n```bash\npilotctl --json send-message list-agents --data '/data {}'\n```\n\nThen look for the matching `pilot-service-agents-*` skill.\n\n## Dependencies\n\nRequires pilot-protocol core skill, a running `pilotctl daemon` joined to\nnetwork 9 (`pilotctl --json network join 9`), and the `list-agents` directory\nagent reachable on the overlay.","tags":["pilot","service","agents","skills","teoslayer","agent-skills","ai-agents","clawhub","networking","openclaw","overlay-network","p2p"],"capabilities":["skill","source-teoslayer","skill-pilot-service-agents","topic-agent-skills","topic-ai-agents","topic-clawhub","topic-networking","topic-openclaw","topic-overlay-network","topic-p2p","topic-pilot-protocol"],"categories":["pilot-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/TeoSlayer/pilot-skills/pilot-service-agents","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add TeoSlayer/pilot-skills","source_repo":"https://github.com/TeoSlayer/pilot-skills","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (5,173 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:15:03.849Z","embedding":null,"createdAt":"2026-05-18T13:22:51.636Z","updatedAt":"2026-05-18T19:15:03.849Z","lastSeenAt":"2026-05-18T19:15:03.849Z","tsv":"'-73.97':589 '/data':113,130,216,231,378,404,441,530,585,622,755 '/help':122,199,370,411,436,467,489,561 '/summary':313,387 '1':341,516 '2':546 '20':220 '3':567 '370':14 '40.78':587 '5':534,536,563,593 '50':278 '500':280 '60s':675 '8':591 '9':780,785 'academ':218,237 'accuraci':660 'ack':145 'across':600 'actual':148 'adsb':543,557,581 'adsb-lol-latlon':542,556,580 'age':686 'agent':4,12,19,56,59,90,94,111,116,162,166,170,173,183,197,214,230,311,334,337,352,365,407,425,465,483,528,621,630,649,670,701,720,753,764,790,792 'agent-sid':700 'agent-specif':406 'aircraft':505 'alway':16,95,409,616 'always-on':15 'announc':429 'answer':503 'api':29,49,513,632,707 'appear':690 'authent':697 'aviat':37 'back':151,652 'bash':189,206,303,326,515,745 'best':634 'bucket':295 'cach':671,683,685 'call':91,142,164,377,668 'caller':43 'canon':437 'catalogu':13,83,205,325,602,604,727 'categori':217,235,266,291,314,520,531,712,724 'central':658 'cloud':259,655 'code':626 'coingecko':35 'come':150 'command':68,186,361 'communiti':631 'contain':284 'contract':124,550 'core':771 'cost':251,666 'count':286,289,449 'credit':656 'current':507,615 'cursor':457,472 'daemon':776 'data':18,112,121,129,133,198,215,312,335,382,529,560,584,679,738,754 'dedic':716 'default':277,421,499 'depend':766 'descript':267,423 'directori':89,176,791 'disclaim':298 'discov':5,100,165,741 'e.g':257,541 'envelop':283,386,439,693 'error':682 'everi':57,364,415,440,607,669 'exact':270 'exampl':376,502 'expect':599 'explor':637 'expos':63 'fetch':132,380,390,400 'field':226,232,689 'filter':114,131,203,225,373,398,401,416,478,549,571 'financ':239 'find':115,517 'first':412 'flag':420 'flight':315,532 'flow':99 'formula':340 'four':67,360 'four-command':66 'free':246,320,629 'free-text':319 'fresh':664 'gcp':428,650 'gemini':299,393,396 'geo':238 'get':495 'give':338 'googl':30,258,654 'grade':663 'group':288 'grow':605 'handl':699 'happen':696 'hard':625 'hard-cod':624 'health':241 'higher':255,659 'hold':705 'hostnam':265,268,271,357,426,608,651 'immedi':146 'inbox':104,135,154,202,223,318,346,539,566,596 'int':274,451,454 'interfac':69 'invok':102 'item':276,285,448 'join':777,784 'json':191,201,208,222,305,317,328,345,379,388,446,479,522,538,552,565,576,595,747,782 'key':50,708 'kind':736 'knob':475,481 'know':734 'knowledg':514 'lat':586 'later':159 'latlon':545,559,583 'learn':574 'like':180 'limit':52,219,273,533,642 'list':93,110,169,172,184,196,213,229,310,333,414,527,609,620,628,743,752,789 'list-ag':92,109,168,171,195,212,228,309,332,526,619,751,788 'lol':544,558,582 'lon':588 'look':757 'lookup':639 'manag':657 'manhattan':509 'mani':40 'map':31 'match':263,272,302,760 'max':275,279 'mean':234 'messag':108,120,128,141,155,194,211,308,331,366,525,555,579,750 'n':688 'nasa':36 'need':46,740 'network':779,783 'never':623,704 'news':240 'next':456 'nhtsa':33 'normalis':385 'null':452,455,458 'offset':471 'omit':491 'one':77,729 'openalex':32 'output':490 'overlay':72,796 'page':453,470,500 'pagin':375,462,469,492 'paid':254 'pass':473 'per':249,290,667,711 'per-request':248 'pick':101,397,540 'pilot':2,10,22,54,61,718,762,769 'pilot-protocol':768 'pilot-service-ag':1,9,53,717,761 'pilotctl':105,117,125,134,190,200,207,221,304,316,327,344,521,537,551,564,575,594,746,775,781 'pipe':391 'prefix':427 'premium':253,424,433,648 'print':371 'prose':395 'protocol':23,62,770 'qualiti':256 'queri':7,568 'question':322 'race':342 'radius':590 'rate':51,641 'rate-limit':640 'reachabl':20,793 'read':103,123,136,410,547,728 'real':27,381,665 'real-world':26 'recognis':484 'relat':709 'request':250 'requir':419,767 'respons':137,149,282,438,442,673 'result':343 'return':143,383 'right':519 'run':774 'schema':374 'scienc':242 'search':260 'second':158,687 'secur':243 'send':107,119,127,140,193,210,307,330,524,554,578,749 'send-messag':106,118,126,139,192,209,306,329,523,553,577,748 'serv':86,677 'servic':3,11,55,58,351,719,763 'shape':402,445 'show':468 'side':647,702 'skill':710,721,765,772 'skill-pilot-service-agents' 'sla':662 'sla-grad':661 'sleep':535,562,592 'snapshot':612 'sourc':447 'source-teoslayer' 'specif':350,408 'stale':678 'start':96,617 'stay':614 'string':236,245,261,269 'substr':262 'summari':300 'support':188,224 'tag':434 'talk':177,347 'text':321 'tier':244 'tiers.free':293 'tiers.premium':294 'topic-agent-skills' 'topic-ai-agents' 'topic-clawhub' 'topic-networking' 'topic-openclaw' 'topic-overlay-network' 'topic-p2p' 'topic-pilot-protocol' 'total':287,450 'treat':606 'true':684 'truncat':459 'type':233,418 'unauthent':638 'understand':76,79 'upfront':512 'upstream':460,497,645,672,681 'url':461 'usg':34 'via':167 'volum':636 'weather':38 'work':362 'workflow':501 'world':28 'wrap':25 'wrapper':633 'zero':511","prices":[{"id":"ce2657b0-6cde-40a3-b2ce-6a54c517f50b","listingId":"eb70f952-77a6-4f6f-bacf-36a6074d3bd8","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"TeoSlayer","category":"pilot-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:22:51.636Z"}],"sources":[{"listingId":"eb70f952-77a6-4f6f-bacf-36a6074d3bd8","source":"github","sourceId":"TeoSlayer/pilot-skills/pilot-service-agents","sourceUrl":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-service-agents","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:51.636Z","lastSeenAt":"2026-05-18T19:15:03.849Z"}],"details":{"listingId":"eb70f952-77a6-4f6f-bacf-36a6074d3bd8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"TeoSlayer","slug":"pilot-service-agents","github":{"repo":"TeoSlayer/pilot-skills","stars":6,"topics":["agent-skills","ai-agents","clawhub","networking","openclaw","overlay-network","p2p","pilot-protocol"],"license":"agpl-3.0","html_url":"https://github.com/TeoSlayer/pilot-skills","pushed_at":"2026-05-13T06:08:49Z","description":"80+ agent skills for Pilot Protocol — communication, file transfer, trust, task routing, swarm coordination, and more","skill_md_sha":"fbdd7603a1beacabde40e1d9064c982557e67873","skill_md_path":"skills/pilot-service-agents/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-service-agents"},"layout":"multi","source":"github","category":"pilot-skills","frontmatter":{"name":"pilot-service-agents","license":"AGPL-3.0","description":"Discover and query the pilot-service-agents catalogue — ~370 always-on data agents reachable over Pilot Protocol that wrap real-world APIs (Google Maps, OpenAlex, NHTSA, USGS, CoinGecko, NASA, aviation weather, and many more) so callers don't need their own API keys, rate limits, or HTTP plumbing.  Use this skill when: 1. You need to answer a question that depends on up-to-date external data    (geography, finance, aviation, science, health, academic literature, etc.)    and do not want to hit the upstream APIs yourself. 2. You want to discover which agents exist for a topic before invoking one. 3. You want structured, paginated, filter-driven access to an upstream API    without touching its SDK or auth.  Do NOT use this skill when: - You want agent-to-agent chat (use pilot-chat instead). - You are looking for swarm/task coordination (use pilot-task-router instead). - You need to run your own data source — these agents are consumer-side only.","compatibility":"Requires pilot-protocol skill and pilotctl binary on PATH. The daemon must be running (pilotctl daemon start) and joined to network 9 (data-exchange), which is where the catalogue lives."},"skills_sh_url":"https://skills.sh/TeoSlayer/pilot-skills/pilot-service-agents"},"updatedAt":"2026-05-18T19:15:03.849Z"}}