@agentskit/rag — for agents
Plug-and-play RAG. Chunking + ingest + retrieve + rerank + hybrid + eleven document loaders.
#Install
npm install @agentskit/rag#Primary exports
createRAG({ embed, store, chunkSize, chunkOverlap, topK, threshold })—ingest(InputDocument[])+retrieve({ query, messages })+search(query, { topK?, threshold? }).InputDocumentusescontent, nottext. Chunk defaults: 512 / 50.chunkText(text, { chunkSize, chunkOverlap, split? })— lower-level splitter.splitis(text: string) => string[].createRerankedRetriever(base, { candidatePool, topK, rerank })— pluggable reranker (BM25 default). See RAG reranking.createHybridRetriever(base, { vectorWeight?, bm25Weight?, topK?, candidatePool? })— vector + BM25 hybrid; defaults to0.6/0.4, 20 candidates, and 5 results.bm25Score,bm25Rerank— standalone helpers.voyageReranker(config)— Voyage AI reranker.jinaReranker(config)— Jina AI reranker.RagError/RagErrorCodes— typed error (extendsAgentsKitError) thrown by loaders + rerankers; narrow onerror.code(AK_RAG_LOAD_FAILED,AK_RAG_PEER_MISSING,AK_RAG_RERANK_FAILED).
#Document loaders
loadUrl(url)— raw response text asInputDocument.content.loadGitHubFile(owner, repo, path, opts),loadGitHubTree(owner, repo, { filter?, ... }),loadNotionPage(pageId, { token }),loadConfluencePage(pageId, { baseUrl, token?, authorization? }),loadGoogleDriveFile(fileId, { accessToken }),loadPdf(url, { parsePdf }). All returnInputDocument[]. See Doc loaders.- Cloud storage:
loadS3,loadGcs,loadDropbox,loadOneDrive.
#Failure and cancellation contract
- Loader request, response-body, pagination, and total-download failures throw
RagErrorwithAK_RAG_LOAD_FAILED. Tree loaders may return partial success only after at least one eligible document loaded. - Loader options accept
signal?: AbortSignal; Voyage and Jina reranker options accept the same additive field. - Notion and OneDrive follow provider pagination and reject repeated or missing continuation cursors instead of returning truncated content.
- Scoreless Retriever results keep their order. If any score is present, all scores must be finite and the result is ordered descending; malformed mixed score sets throw.
- Hybrid retrieval min-max normalizes candidate scores and normalizes relative weights before blending.
#Minimal example
import { createRAG, loadGitHubTree } from '@agentskit/rag'
import { fileVectorMemory } from '@agentskit/memory'
import { openaiEmbedder } from '@agentskit/adapters'
const rag = createRAG({
embed: openaiEmbedder({ apiKey }),
store: fileVectorMemory({ path: './kb-vectors' }),
})
await rag.ingest(await loadGitHubTree('org', 'repo', { token }))
const hits = await rag.search('onboarding flow')#Related
- @agentskit/memory — vector stores.
- @agentskit/adapters — embedders.
#Source
- npm: https://www.npmjs.com/package/@agentskit/rag
- repo: https://github.com/AgentsKit-io/agentskit/tree/main/packages/rag
Explore nearby
- PeerFor agents — overview
Dense, LLM-friendly reference for every AgentsKit package. Designed to paste into an agent's context window.
- Peer@agentskit/core — for agents
Zero-dependency foundation. Contracts, chat controller, primitives, and a dozen feature subpaths.
- Peer@agentskit/adapters — for agents
Provider adapters (OpenAI-compatible + native) + router + ensemble + fallback + generic factory.