{"id":"002b4c76-5795-496f-9977-e411dff1570f","shortId":"hRwSMQ","kind":"skill","title":"pilot-knowledge-base-rag-setup","tagline":"Deploy a knowledge base RAG pipeline with 4 agents.  Use this skill when: 1. User wants to set up a document ingestion and retrieval pipeline 2. User is configuring an ingestion, embedding, indexing, or query agent 3. User asks about RAG, vector search, or knowledge base setups  ","description":"# Knowledge Base (RAG) Setup\n\nDeploy 4 agents: ingest, embed, index, and query.\n\n## Roles\n\n| Role | Hostname | Skills | Purpose |\n|------|----------|--------|---------|\n| ingest | `<prefix>-rag-ingest` | pilot-s3-bridge, pilot-share, pilot-chunk-transfer, pilot-cron | Pulls and chunks documents |\n| embedder | `<prefix>-rag-embedder` | pilot-task-parallel, pilot-share, pilot-metrics, pilot-task-chain | Generates vector embeddings |\n| indexer | `<prefix>-rag-indexer` | pilot-database-bridge, pilot-share, pilot-task-chain, pilot-health | Stores embeddings in vector DB |\n| query | `<prefix>-rag-query` | pilot-api-gateway, pilot-health, pilot-load-balancer, pilot-metrics | Serves search queries |\n\n## Setup Procedure\n\n**Step 1:** Ask the user which role and prefix.\n\n**Step 2:** Install skills:\n```bash\n# ingest:\nclawhub install pilot-s3-bridge pilot-share pilot-chunk-transfer pilot-cron\n# embedder:\nclawhub install pilot-task-parallel pilot-share pilot-metrics pilot-task-chain\n# indexer:\nclawhub install pilot-database-bridge pilot-share pilot-task-chain pilot-health\n# query:\nclawhub install pilot-api-gateway pilot-health pilot-load-balancer pilot-metrics\n```\n\n**Step 3:** Set hostname and write manifest to `~/.pilot/setups/knowledge-base-rag.json`.\n\n**Step 4:** Handshake along the pipeline: ingest↔embedder, embedder↔indexer, indexer↔query.\n\n## Manifest Templates Per Role\n\n### ingest\n```json\n{\n  \"setup\": \"knowledge-base-rag\", \"role\": \"ingest\", \"role_name\": \"Document Ingestion\",\n  \"hostname\": \"<prefix>-rag-ingest\",\n  \"skills\": {\n    \"pilot-s3-bridge\": \"Pull documents from S3 buckets.\",\n    \"pilot-share\": \"Send document files to embedder.\",\n    \"pilot-chunk-transfer\": \"Split large documents into chunks.\",\n    \"pilot-cron\": \"Schedule periodic ingestion sweeps.\"\n  },\n  \"data_flows\": [{ \"direction\": \"send\", \"peer\": \"<prefix>-rag-embedder\", \"port\": 1001, \"topic\": \"doc-ingested\", \"description\": \"Document chunks\" }],\n  \"handshakes_needed\": [\"<prefix>-rag-embedder\"]\n}\n```\n\n### embedder\n```json\n{\n  \"setup\": \"knowledge-base-rag\", \"role\": \"embedder\", \"role_name\": \"Embedding Generator\",\n  \"hostname\": \"<prefix>-rag-embedder\",\n  \"skills\": {\n    \"pilot-task-parallel\": \"Generate embeddings in parallel for throughput.\",\n    \"pilot-share\": \"Receive docs from ingest, send embeddings to indexer.\",\n    \"pilot-metrics\": \"Track embedding throughput and latency.\",\n    \"pilot-task-chain\": \"Chain chunking and embedding steps.\"\n  },\n  \"data_flows\": [\n    { \"direction\": \"receive\", \"peer\": \"<prefix>-rag-ingest\", \"port\": 1001, \"topic\": \"doc-ingested\", \"description\": \"Document chunks\" },\n    { \"direction\": \"send\", \"peer\": \"<prefix>-rag-indexer\", \"port\": 1001, \"topic\": \"embeddings-ready\", \"description\": \"Vector embeddings\" }\n  ],\n  \"handshakes_needed\": [\"<prefix>-rag-ingest\", \"<prefix>-rag-indexer\"]\n}\n```\n\n### indexer\n```json\n{\n  \"setup\": \"knowledge-base-rag\", \"role\": \"indexer\", \"role_name\": \"Vector Indexer\",\n  \"hostname\": \"<prefix>-rag-indexer\",\n  \"skills\": {\n    \"pilot-database-bridge\": \"Write embeddings to vector database.\",\n    \"pilot-share\": \"Receive embeddings from embedder.\",\n    \"pilot-task-chain\": \"Chain indexing operations.\",\n    \"pilot-health\": \"Monitor index health and query latency.\"\n  },\n  \"data_flows\": [\n    { \"direction\": \"receive\", \"peer\": \"<prefix>-rag-embedder\", \"port\": 1001, \"topic\": \"embeddings-ready\", \"description\": \"Vector embeddings\" },\n    { \"direction\": \"receive\", \"peer\": \"<prefix>-rag-query\", \"port\": 1001, \"topic\": \"search-query\", \"description\": \"Search queries\" },\n    { \"direction\": \"send\", \"peer\": \"<prefix>-rag-query\", \"port\": 1001, \"topic\": \"search-results\", \"description\": \"Ranked results\" }\n  ],\n  \"handshakes_needed\": [\"<prefix>-rag-embedder\", \"<prefix>-rag-query\"]\n}\n```\n\n### query\n```json\n{\n  \"setup\": \"knowledge-base-rag\", \"role\": \"query\", \"role_name\": \"Query Server\",\n  \"hostname\": \"<prefix>-rag-query\",\n  \"skills\": {\n    \"pilot-api-gateway\": \"Accept search queries from external clients.\",\n    \"pilot-health\": \"Monitor query endpoint health.\",\n    \"pilot-load-balancer\": \"Distribute queries across indexer replicas.\",\n    \"pilot-metrics\": \"Track QPS, latency, result quality.\"\n  },\n  \"data_flows\": [\n    { \"direction\": \"send\", \"peer\": \"<prefix>-rag-indexer\", \"port\": 1001, \"topic\": \"search-query\", \"description\": \"Search queries\" },\n    { \"direction\": \"receive\", \"peer\": \"<prefix>-rag-indexer\", \"port\": 1001, \"topic\": \"search-results\", \"description\": \"Ranked results\" }\n  ],\n  \"handshakes_needed\": [\"<prefix>-rag-indexer\"]\n}\n```\n\n## Data Flows\n\n- `ingest → embedder` : document chunks (port 1001)\n- `embedder → indexer` : vector embeddings (port 1001)\n- `query ↔ indexer` : search queries and results (port 1001)\n\n## Workflow Example\n\n```bash\n# On ingest:\npilotctl --json send-file <prefix>-rag-embedder ./docs/guide.pdf\npilotctl --json publish <prefix>-rag-embedder doc-ingested '{\"doc_id\":\"doc-42\",\"chunks\":24}'\n# On embedder:\npilotctl --json publish <prefix>-rag-indexer embeddings-ready '{\"doc_id\":\"doc-42\",\"vectors\":24,\"dims\":1536}'\n# On query:\npilotctl --json task submit <prefix>-rag-indexer --task '{\"query\":\"How does auth work?\",\"top_k\":5}'\n```\n\n## Dependencies\n\nRequires `pilot-protocol` skill, `pilotctl` binary, `clawhub` binary, and a running daemon.","tags":["pilot","knowledge","base","rag","setup","skills","teoslayer","agent-skills","ai-agents","clawhub","networking","openclaw"],"capabilities":["skill","source-teoslayer","skill-pilot-knowledge-base-rag-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-knowledge-base-rag-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 (5,224 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:57.294Z","embedding":null,"createdAt":"2026-05-18T13:22:42.698Z","updatedAt":"2026-05-18T19:14:57.294Z","lastSeenAt":"2026-05-18T19:14:57.294Z","tsv":"'-42':678,695 '/.pilot/setups/knowledge-base-rag.json':250 '/docs/guide.pdf':665 '1':20,161 '1001':327,405,420,495,510,525,602,617,637,643,651 '1536':699 '2':32,170 '24':680,697 '3':43,243 '4':14,59,252 '5':717 'accept':563 'across':582 'agent':15,42,60 'along':254 'api':143,230,561 'ask':45,162 'auth':713 'balanc':151,238,579 'base':4,10,52,55,272,345,441,546 'bash':173,654 'binari':725,727 'bridg':78,121,180,214,288,457 'bucket':293 'chain':110,128,207,221,390,391,473,474 'chunk':84,91,186,304,310,334,392,412,635,679 'clawhub':175,192,209,226,726 'client':568 'configur':35 'cron':88,190,313 'daemon':731 'data':318,396,486,593,630 'databas':120,213,456,462 'db':136 'depend':718 'deploy':7,58 'descript':332,410,425,500,515,530,607,622 'dim':698 'direct':320,398,413,488,503,518,595,610 'distribut':580 'doc':330,372,408,673,675,677,692,694 'doc-ingest':329,407,672 'document':27,92,278,290,298,308,333,411,634 'emb':62 'embed':38,113,133,351,363,376,383,394,423,427,459,467,498,502,641,690 'embedd':93,96,191,258,259,301,325,339,340,348,356,469,493,537,633,638,664,671,682 'embeddings-readi':422,497,689 'endpoint':574 'exampl':653 'extern':567 'file':299,661 'flow':319,397,487,594,631 'gateway':144,231,562 'generat':111,352,362 'handshak':253,335,428,533,625 'health':131,147,224,234,479,482,571,575 'hostnam':68,245,280,353,449,554 'id':676,693 'index':39,63,114,117,208,260,261,378,418,435,436,444,448,452,475,481,583,600,615,629,639,645,688,708 'ingest':28,37,61,71,74,174,257,267,275,279,283,316,331,374,403,409,432,632,656,674 'instal':171,176,193,210,227 'json':268,341,437,542,658,667,684,703 'k':716 'knowledg':3,9,51,54,271,344,440,545 'knowledge-base-rag':270,343,439,544 'larg':307 'latenc':386,485,590 'load':150,237,578 'manifest':248,263 'metric':106,154,203,241,381,587 'monitor':480,572 'name':277,350,446,551 'need':336,429,534,626 'oper':476 'parallel':100,197,361,365 'peer':322,400,415,490,505,520,597,612 'per':265 'period':315 'pilot':2,76,80,83,87,98,102,105,108,119,123,126,130,142,146,149,153,178,182,185,189,195,199,202,205,212,216,219,223,229,233,236,240,286,295,303,312,359,369,380,388,455,464,471,478,560,570,577,586,721 'pilot-api-gateway':141,228,559 'pilot-chunk-transf':82,184,302 'pilot-cron':86,188,311 'pilot-database-bridg':118,211,454 'pilot-health':129,145,222,232,477,569 'pilot-knowledge-base-rag-setup':1 'pilot-load-balanc':148,235,576 'pilot-metr':104,152,201,239,379,585 'pilot-protocol':720 'pilot-s3-bridge':75,177,285 'pilot-shar':79,101,122,181,198,215,294,368,463 'pilot-task-chain':107,125,204,218,387,470 'pilot-task-parallel':97,194,358 'pilotctl':657,666,683,702,724 'pipelin':12,31,256 'port':326,404,419,494,509,524,601,616,636,642,650 'prefix':168 'procedur':159 'protocol':722 'publish':668,685 'pull':89,289 'purpos':70 'qps':589 'qualiti':592 'queri':41,65,137,140,157,225,262,484,508,514,517,523,540,541,549,552,557,565,573,581,606,609,644,647,701,710 'rag':5,11,47,56,73,95,116,139,273,282,324,338,346,355,402,417,431,434,442,451,492,507,522,536,539,547,556,599,614,628,663,670,687,707 'rag-embedd':94,323,337,354,491,535,662,669 'rag-index':115,416,433,450,598,613,627,686,706 'rag-ingest':72,281,401,430 'rag-queri':138,506,521,538,555 'rank':531,623 'readi':424,499,691 'receiv':371,399,466,489,504,611 'replica':584 'requir':719 'result':529,532,591,621,624,649 'retriev':30 'role':66,67,166,266,274,276,347,349,443,445,548,550 'run':730 's3':77,179,287,292 'schedul':314 'search':49,156,513,516,528,564,605,608,620,646 'search-queri':512,604 'search-result':527,619 'send':297,321,375,414,519,596,660 'send-fil':659 'serv':155 'server':553 'set':24,244 'setup':6,53,57,158,269,342,438,543 'share':81,103,124,183,200,217,296,370,465 'skill':18,69,172,284,357,453,558,723 'skill-pilot-knowledge-base-rag-setup' 'source-teoslayer' 'split':306 'step':160,169,242,251,395 'store':132 'submit':705 'sweep':317 'task':99,109,127,196,206,220,360,389,472,704,709 'templat':264 'throughput':367,384 'top':715 'topic':328,406,421,496,511,526,603,618 'topic-agent-skills' 'topic-ai-agents' 'topic-clawhub' 'topic-networking' 'topic-openclaw' 'topic-overlay-network' 'topic-p2p' 'topic-pilot-protocol' 'track':382,588 'transfer':85,187,305 'use':16 'user':21,33,44,164 'vector':48,112,135,426,447,461,501,640,696 'want':22 'work':714 'workflow':652 'write':247,458","prices":[{"id":"0fe4f77c-5ba0-4880-83df-2dd0a0d490c9","listingId":"002b4c76-5795-496f-9977-e411dff1570f","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:42.698Z"}],"sources":[{"listingId":"002b4c76-5795-496f-9977-e411dff1570f","source":"github","sourceId":"TeoSlayer/pilot-skills/pilot-knowledge-base-rag-setup","sourceUrl":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-knowledge-base-rag-setup","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:42.698Z","lastSeenAt":"2026-05-18T19:14:57.294Z"}],"details":{"listingId":"002b4c76-5795-496f-9977-e411dff1570f","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"TeoSlayer","slug":"pilot-knowledge-base-rag-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":"c1afac7b72e189455fa9fc43ea77582dcb27ded3","skill_md_path":"skills/pilot-knowledge-base-rag-setup/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-knowledge-base-rag-setup"},"layout":"multi","source":"github","category":"pilot-skills","frontmatter":{"name":"pilot-knowledge-base-rag-setup","license":"AGPL-3.0","description":"Deploy a knowledge base RAG pipeline with 4 agents.  Use this skill when: 1. User wants to set up a document ingestion and retrieval pipeline 2. User is configuring an ingestion, embedding, indexing, or query agent 3. User asks about RAG, vector search, or knowledge base setups  Do NOT use this skill when: - User wants to transfer a single file (use pilot-share instead) - User wants a single database query (use pilot-database-bridge instead)"},"skills_sh_url":"https://skills.sh/TeoSlayer/pilot-skills/pilot-knowledge-base-rag-setup"},"updatedAt":"2026-05-18T19:14:57.294Z"}}