{"id":"99050847-9d2b-4d72-955a-85673b97012a","shortId":"b3UBwn","kind":"skill","title":"pilot-api-gateway-manager-setup","tagline":"Deploy an API gateway management system with 4 agents.  Use this skill when: 1. User wants to set up API gateway management with service discovery, routing, auth, and monitoring 2. User is configuring agents for API request routing, rate limiting, or backend health tracking 3. Us","description":"# API Gateway Manager Setup\n\nDeploy 4 agents: discovery, router, auth, and monitor.\n\n## Roles\n\n| Role | Hostname | Skills | Purpose |\n|------|----------|--------|---------|\n| discovery | `<prefix>-discovery` | pilot-discover, pilot-health, pilot-heartbeat-monitor | Registers backends, maintains service registry, health checks |\n| router | `<prefix>-router` | pilot-load-balancer, pilot-task-router, pilot-metrics | Routes API requests by path, headers, and load |\n| auth | `<prefix>-auth` | pilot-verify, pilot-audit-log, pilot-blocklist | Validates API keys/JWT, enforces rate limits and quotas |\n| monitor | `<prefix>-monitor` | pilot-metrics, pilot-alert, pilot-slack-bridge | Tracks latency, error rates, throughput; alerts on anomalies |\n\n## Setup Procedure\n\n**Step 1:** Ask the user which role this agent should play and what prefix to use.\n\n**Step 2:** Install the skills for the chosen role:\n```bash\n# For discovery:\nclawhub install pilot-discover pilot-health pilot-heartbeat-monitor\n# For router:\nclawhub install pilot-load-balancer pilot-task-router pilot-metrics\n# For auth:\nclawhub install pilot-verify pilot-audit-log pilot-blocklist\n# For monitor:\nclawhub install pilot-metrics pilot-alert pilot-slack-bridge\n```\n\n**Step 3:** Set the hostname:\n```bash\npilotctl --json set-hostname <prefix>-<role>\n```\n\n**Step 4:** Write the setup manifest:\n```bash\nmkdir -p ~/.pilot/setups\ncat > ~/.pilot/setups/api-gateway-manager.json << 'MANIFEST'\n<INSERT ROLE MANIFEST FROM BELOW>\nMANIFEST\n```\n\n**Step 5:** Tell the user to initiate handshakes with direct communication peers.\n\n## Manifest Templates Per Role\n\n### discovery\n```json\n{\n  \"setup\": \"api-gateway-manager\", \"setup_name\": \"API Gateway Manager\",\n  \"role\": \"discovery\", \"role_name\": \"Service Discovery\",\n  \"hostname\": \"<prefix>-discovery\",\n  \"description\": \"Registers and discovers backend microservices, maintains service registry, runs health checks.\",\n  \"skills\": {\"pilot-discover\": \"Register and discover backend microservice instances.\", \"pilot-health\": \"Run periodic health checks against registered backends.\", \"pilot-heartbeat-monitor\": \"Detect unresponsive backends via heartbeat timeouts.\"},\n  \"peers\": [{\"role\": \"router\", \"hostname\": \"<prefix>-router\", \"description\": \"Receives service registry updates\"}, {\"role\": \"monitor\", \"hostname\": \"<prefix>-monitor\", \"description\": \"Sends health feedback\"}],\n  \"data_flows\": [{\"direction\": \"send\", \"peer\": \"<prefix>-router\", \"port\": 1002, \"topic\": \"service-registry\", \"description\": \"Service registry updates with healthy backends\"}, {\"direction\": \"receive\", \"peer\": \"<prefix>-monitor\", \"port\": 1002, \"topic\": \"health-feedback\", \"description\": \"Health feedback to deregister failing backends\"}],\n  \"handshakes_needed\": [\"<prefix>-router\", \"<prefix>-monitor\"]\n}\n```\n\n### router\n```json\n{\n  \"setup\": \"api-gateway-manager\", \"setup_name\": \"API Gateway Manager\",\n  \"role\": \"router\", \"role_name\": \"Request Router\",\n  \"hostname\": \"<prefix>-router\",\n  \"description\": \"Routes incoming API requests to appropriate backends based on path, headers, and load.\",\n  \"skills\": {\"pilot-load-balancer\": \"Distribute requests across healthy backend instances.\", \"pilot-task-router\": \"Match request paths and headers to backend services.\", \"pilot-metrics\": \"Track routing decisions, request counts, and backend utilization.\"},\n  \"peers\": [{\"role\": \"discovery\", \"hostname\": \"<prefix>-discovery\", \"description\": \"Sends service registry updates\"}, {\"role\": \"auth\", \"hostname\": \"<prefix>-auth\", \"description\": \"Receives auth requests\"}],\n  \"data_flows\": [{\"direction\": \"receive\", \"peer\": \"<prefix>-discovery\", \"port\": 1002, \"topic\": \"service-registry\", \"description\": \"Service registry updates with healthy backends\"}, {\"direction\": \"send\", \"peer\": \"<prefix>-auth\", \"port\": 1002, \"topic\": \"auth-request\", \"description\": \"Auth requests for incoming API calls\"}],\n  \"handshakes_needed\": [\"<prefix>-discovery\", \"<prefix>-auth\"]\n}\n```\n\n### auth\n```json\n{\n  \"setup\": \"api-gateway-manager\", \"setup_name\": \"API Gateway Manager\",\n  \"role\": \"auth\", \"role_name\": \"Auth Gateway\",\n  \"hostname\": \"<prefix>-auth\",\n  \"description\": \"Validates API keys and JWT tokens, enforces rate limits and quotas, blocks bad actors.\",\n  \"skills\": {\"pilot-verify\": \"Validate API keys and JWT tokens against trusted issuers.\", \"pilot-audit-log\": \"Log all access decisions with client metadata for compliance.\", \"pilot-blocklist\": \"Maintain and enforce blocklists for abusive clients and IPs.\"},\n  \"peers\": [{\"role\": \"router\", \"hostname\": \"<prefix>-router\", \"description\": \"Sends auth requests\"}, {\"role\": \"monitor\", \"hostname\": \"<prefix>-monitor\", \"description\": \"Receives access logs\"}],\n  \"data_flows\": [{\"direction\": \"receive\", \"peer\": \"<prefix>-router\", \"port\": 1002, \"topic\": \"auth-request\", \"description\": \"Auth requests for incoming API calls\"}, {\"direction\": \"send\", \"peer\": \"<prefix>-monitor\", \"port\": 1002, \"topic\": \"access-log\", \"description\": \"Access logs with auth decisions and client metadata\"}],\n  \"handshakes_needed\": [\"<prefix>-router\", \"<prefix>-monitor\"]\n}\n```\n\n### monitor\n```json\n{\n  \"setup\": \"api-gateway-manager\", \"setup_name\": \"API Gateway Manager\",\n  \"role\": \"monitor\", \"role_name\": \"API Monitor\",\n  \"hostname\": \"<prefix>-monitor\",\n  \"description\": \"Tracks latency, error rates, and throughput. Generates dashboards and alerts on anomalies.\",\n  \"skills\": {\"pilot-metrics\": \"Compute latency percentiles, error rates, and throughput metrics.\", \"pilot-alert\": \"Fire alerts when error rates or latency exceed thresholds.\", \"pilot-slack-bridge\": \"Post API health summaries and incident alerts to Slack.\"},\n  \"peers\": [{\"role\": \"auth\", \"hostname\": \"<prefix>-auth\", \"description\": \"Sends access logs\"}, {\"role\": \"discovery\", \"hostname\": \"<prefix>-discovery\", \"description\": \"Receives health feedback\"}],\n  \"data_flows\": [{\"direction\": \"receive\", \"peer\": \"<prefix>-auth\", \"port\": 1002, \"topic\": \"access-log\", \"description\": \"Access logs with auth decisions\"}, {\"direction\": \"send\", \"peer\": \"<prefix>-discovery\", \"port\": 1002, \"topic\": \"health-feedback\", \"description\": \"Health feedback to deregister failing backends\"}, {\"direction\": \"send\", \"peer\": \"external\", \"port\": 443, \"topic\": \"api-alert\", \"description\": \"API alerts to ops dashboards and Slack\"}],\n  \"handshakes_needed\": [\"<prefix>-auth\", \"<prefix>-discovery\"]\n}\n```\n\n## Data Flows\n\n- `discovery -> router` : service-registry updates with healthy backends (port 1002)\n- `router -> auth` : auth-request for incoming API calls (port 1002)\n- `auth -> monitor` : access-log with auth decisions and client metadata (port 1002)\n- `monitor -> discovery` : health-feedback to deregister failing backends (port 1002)\n- `monitor -> external` : api-alert via Slack and dashboards (port 443)\n\n## Handshakes\n\n```bash\n# discovery <-> router:\npilotctl --json handshake <prefix>-router \"setup: api-gateway-manager\"\npilotctl --json handshake <prefix>-discovery \"setup: api-gateway-manager\"\n# router <-> auth:\npilotctl --json handshake <prefix>-auth \"setup: api-gateway-manager\"\npilotctl --json handshake <prefix>-router \"setup: api-gateway-manager\"\n# auth <-> monitor:\npilotctl --json handshake <prefix>-monitor \"setup: api-gateway-manager\"\npilotctl --json handshake <prefix>-auth \"setup: api-gateway-manager\"\n# monitor <-> discovery:\npilotctl --json handshake <prefix>-discovery \"setup: api-gateway-manager\"\npilotctl --json handshake <prefix>-monitor \"setup: api-gateway-manager\"\n```\n\n## Workflow Example\n\n```bash\n# On discovery -- publish service registry:\npilotctl --json publish <prefix>-router service-registry '{\"service\":\"user-api\",\"instances\":[{\"host\":\"10.0.1.5\",\"port\":8080,\"health\":\"passing\"}]}'\n# On router -- publish auth request:\npilotctl --json publish <prefix>-auth auth-request '{\"request_id\":\"req-88210\",\"path\":\"/api/v2/users\",\"api_key\":\"key_example_4eC39H\"}'\n# On auth -- publish access log:\npilotctl --json publish <prefix>-monitor access-log '{\"request_id\":\"req-88210\",\"client\":\"acme-corp\",\"decision\":\"allow\",\"latency_ms\":12}'\n# On monitor -- publish health feedback:\npilotctl --json publish <prefix>-discovery health-feedback '{\"service\":\"user-api\",\"instance\":\"10.0.1.6:8080\",\"status\":\"failing\",\"error_rate\":0.42}'\n```\n\n## Dependencies\n\nRequires `pilot-protocol` skill, `pilotctl` binary, `clawhub` binary, and a running daemon.","tags":["pilot","api","gateway","manager","setup","skills","teoslayer","agent-skills","ai-agents","clawhub","networking","openclaw"],"capabilities":["skill","source-teoslayer","skill-pilot-api-gateway-manager-setup","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-api-gateway-manager-setup","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 (8,267 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:14:51.124Z","embedding":null,"createdAt":"2026-05-18T13:22:33.880Z","updatedAt":"2026-05-18T19:14:51.124Z","lastSeenAt":"2026-05-18T19:14:51.124Z","tsv":"'-88210':980,1003 '/.pilot/setups':255 '/.pilot/setups/api-gateway-manager.json':257 '/api/v2/users':982 '0.42':1036 '1':20,153 '10.0.1.5':960 '10.0.1.6':1030 '1002':363,380,489,506,619,636,748,764,810,821,834,845 '12':1012 '2':36,169 '3':51,236 '4':14,58,247 '443':781,856 '4ec39h':987 '5':261 '8080':962,1031 'abus':591 'access':576,610,639,642,731,751,754,825,991,998 'access-log':638,750,824,997 'acm':1006 'acme-corp':1005 'across':437 'actor':556 'agent':15,40,59,160 'alert':137,147,230,684,701,703,721,785,788,850 'allow':1009 'anomali':149,686 'api':3,9,26,42,53,103,123,280,285,400,405,419,516,526,531,544,562,629,658,663,670,716,784,787,818,849,867,876,887,896,907,916,927,936,957,983,1028 'api-alert':783,848 'api-gateway-manag':279,399,525,657,866,875,886,895,906,915,926,935 'appropri':422 'ask':154 'audit':117,216,572 'auth':33,62,110,111,208,475,477,480,504,509,512,521,522,535,538,541,602,622,625,645,726,728,746,757,796,812,814,822,828,880,884,899,913,968,973,975,989 'auth-request':508,621,813,974 'backend':48,83,300,315,327,334,374,391,423,439,451,462,500,775,808,843 'bad':555 'balanc':94,199,434 'base':424 'bash':177,240,252,858,941 'binari':1044,1046 'block':554 'blocklist':121,220,585,589 'bridg':141,234,714 'call':517,630,819 'cat':256 'check':88,307,324 'chosen':175 'clawhub':180,194,209,223,1045 'client':579,592,648,831,1004 'communic':270 'complianc':582 'comput':691 'configur':39 'corp':1007 'count':460 'daemon':1050 'dashboard':682,791,854 'data':356,482,612,741,798 'decis':458,577,646,758,829,1008 'depend':1037 'deploy':7,57 'deregist':389,773,841 'descript':296,343,352,368,385,416,469,478,494,511,542,600,608,624,641,674,729,737,753,769,786 'detect':332 'direct':269,358,375,484,501,614,631,743,759,776 'discov':74,184,299,311,314 'discoveri':31,60,70,71,179,276,289,293,295,466,468,487,520,734,736,762,797,800,836,859,873,920,924,943,1021 'distribut':435 'enforc':125,549,588 'error':144,677,694,705,1034 'exampl':940,986 'exceed':709 'extern':779,847 'fail':390,774,842,1033 'feedback':355,384,387,740,768,771,839,1017,1024 'fire':702 'flow':357,483,613,742,799 'gateway':4,10,27,54,281,286,401,406,527,532,539,659,664,868,877,888,897,908,917,928,937 'generat':681 'handshak':267,392,518,650,794,857,863,872,883,892,903,912,923,932 'header':107,427,449 'health':49,77,87,187,306,320,323,354,383,386,717,739,767,770,838,963,1016,1023 'health-feedback':382,766,837,1022 'healthi':373,438,499,807 'heartbeat':80,190,330,336 'host':959 'hostnam':67,239,245,294,341,350,414,467,476,540,598,606,672,727,735 'id':978,1001 'incid':720 'incom':418,515,628,817 'initi':266 'instal':170,181,195,210,224 'instanc':317,440,958,1029 'ip':594 'issuer':569 'json':242,277,397,523,655,862,871,882,891,902,911,922,931,948,971,994,1019 'jwt':547,565 'key':545,563,984,985 'keys/jwt':124 'latenc':143,676,692,708,1010 'limit':46,127,551 'load':93,109,198,429,433 'log':118,217,573,574,611,640,643,732,752,755,826,992,999 'maintain':84,302,586 'manag':5,11,28,55,282,287,402,407,528,533,660,665,869,878,889,898,909,918,929,938 'manifest':251,258,259,272 'match':445 'metadata':580,649,832 'metric':101,134,206,227,455,690,698 'microservic':301,316 'mkdir':253 'monitor':35,64,81,130,131,191,222,331,349,351,378,395,605,607,634,653,654,667,671,673,823,835,846,900,904,919,933,996,1014 'ms':1011 'name':284,291,404,411,530,537,662,669 'need':393,519,651,795 'op':790 'p':254 'pass':964 'path':106,426,447,981 'peer':271,338,360,377,464,486,503,595,616,633,724,745,761,778 'per':274 'percentil':693 'period':322 'pilot':2,73,76,79,92,96,100,113,116,120,133,136,139,183,186,189,197,201,205,212,215,219,226,229,232,310,319,329,432,442,454,559,571,584,689,700,712,1040 'pilot-alert':135,228,699 'pilot-api-gateway-manager-setup':1 'pilot-audit-log':115,214,570 'pilot-blocklist':119,218,583 'pilot-discov':72,182,309 'pilot-health':75,185,318 'pilot-heartbeat-monitor':78,188,328 'pilot-load-balanc':91,196,431 'pilot-metr':99,132,204,225,453,688 'pilot-protocol':1039 'pilot-slack-bridg':138,231,711 'pilot-task-rout':95,200,441 'pilot-verifi':112,211,558 'pilotctl':241,861,870,881,890,901,910,921,930,947,970,993,1018,1043 'play':162 'port':362,379,488,505,618,635,747,763,780,809,820,833,844,855,961 'post':715 'prefix':165 'procedur':151 'protocol':1041 'publish':944,949,967,972,990,995,1015,1020 'purpos':69 'quota':129,553 'rate':45,126,145,550,678,695,706,1035 'receiv':344,376,479,485,609,615,738,744 'regist':82,297,312,326 'registri':86,304,346,367,370,472,493,496,804,946,953 'req':979,1002 'request':43,104,412,420,436,446,459,481,510,513,603,623,626,815,969,976,977,1000 'requir':1038 'role':65,66,158,176,275,288,290,339,348,408,410,465,474,534,536,596,604,666,668,725,733 'rout':32,44,102,417,457 'router':61,89,90,98,193,203,340,342,361,394,396,409,413,415,444,597,599,617,652,801,811,860,864,879,893,950,966 'run':305,321,1049 'send':353,359,470,502,601,632,730,760,777 'servic':30,85,292,303,345,366,369,452,471,492,495,803,945,952,954,1025 'service-registri':365,491,802,951 'set':24,237,244 'set-hostnam':243 'setup':6,56,150,250,278,283,398,403,524,529,656,661,865,874,885,894,905,914,925,934 'skill':18,68,172,308,430,557,687,1042 'skill-pilot-api-gateway-manager-setup' 'slack':140,233,713,723,793,852 'source-teoslayer' 'status':1032 'step':152,168,235,246,260 'summari':718 'system':12 'task':97,202,443 'tell':262 'templat':273 'threshold':710 'throughput':146,680,697 'timeout':337 'token':548,566 'topic':364,381,490,507,620,637,749,765,782 'topic-agent-skills' 'topic-ai-agents' 'topic-clawhub' 'topic-networking' 'topic-openclaw' 'topic-overlay-network' 'topic-p2p' 'topic-pilot-protocol' 'track':50,142,456,675 'trust':568 'unrespons':333 'updat':347,371,473,497,805 'us':52 'use':16,167 'user':21,37,156,264,956,1027 'user-api':955,1026 'util':463 'valid':122,543,561 'verifi':114,213,560 'via':335,851 'want':22 'workflow':939 'write':248","prices":[{"id":"27115a92-9902-4713-a8df-6b40d029b70e","listingId":"99050847-9d2b-4d72-955a-85673b97012a","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:33.880Z"}],"sources":[{"listingId":"99050847-9d2b-4d72-955a-85673b97012a","source":"github","sourceId":"TeoSlayer/pilot-skills/pilot-api-gateway-manager-setup","sourceUrl":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-api-gateway-manager-setup","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:33.880Z","lastSeenAt":"2026-05-18T19:14:51.124Z"}],"details":{"listingId":"99050847-9d2b-4d72-955a-85673b97012a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"TeoSlayer","slug":"pilot-api-gateway-manager-setup","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":"34d9d983b6809352f2c58f0db4a521ac285d7dd6","skill_md_path":"skills/pilot-api-gateway-manager-setup/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-api-gateway-manager-setup"},"layout":"multi","source":"github","category":"pilot-skills","frontmatter":{"name":"pilot-api-gateway-manager-setup","license":"AGPL-3.0","description":"Deploy an API gateway management system with 4 agents.  Use this skill when: 1. User wants to set up API gateway management with service discovery, routing, auth, and monitoring 2. User is configuring agents for API request routing, rate limiting, or backend health tracking 3. User asks about API gateway pipelines, service registries, or request authentication workflows  Do NOT use this skill when: - User wants a single load balancer (use pilot-load-balancer instead) - User wants to verify a single token (use pilot-verify instead) - User only needs health checks (use pilot-health instead)"},"skills_sh_url":"https://skills.sh/TeoSlayer/pilot-skills/pilot-api-gateway-manager-setup"},"updatedAt":"2026-05-18T19:14:51.124Z"}}