@agentskit/rag
v0.3.3
Published
Plug-and-play retrieval-augmented generation for AgentsKit.
Maintainers
Readme
@agentskit/rag
Plug-and-play retrieval-augmented generation: chunk documents, embed them, and retrieve the right context at query time.
Tags: ai · agents · llm · agentskit · rag · retrieval · vector-search · embeddings · ai-agents · semantic-search · knowledge-base
Why rag
- Your data, your agent — no fine-tuning required; ingest plain text and query with natural language
- Composable stack — uses any
EmbedFnand anyVectorMemoryfrom@agentskit/adaptersand@agentskit/memory; swap either layer without touching RAG logic - Retriever-ready —
createRAG()returns aRetrieveryou pass to@agentskit/runtimeoruseChatso context is injected automatically - Tune chunking without a PhD —
chunkSize,chunkOverlap, or a customsplitfunction — three knobs that cover 95% of use cases
Install
npm install @agentskit/rag @agentskit/memory @agentskit/adaptersQuick example
import { createRAG } from '@agentskit/rag'
import { openaiEmbedder } from '@agentskit/adapters'
import { fileVectorMemory } from '@agentskit/memory'
const rag = createRAG({
embed: openaiEmbedder({ apiKey: process.env.OPENAI_API_KEY! }),
store: fileVectorMemory({ path: './vectors' }),
})
await rag.ingest([
{ id: 'doc-1', content: 'AgentsKit is a JavaScript agent toolkit...' },
])
const docs = await rag.search('How does AgentsKit work?', { topK: 5 })With runtime (retriever)
Pass the RAG instance as retriever so the runtime injects retrieved context into the task:
import { createRuntime } from '@agentskit/runtime'
import { openai } from '@agentskit/adapters'
const runtime = createRuntime({
adapter: openai({ apiKey: process.env.OPENAI_API_KEY!, model: 'gpt-4o' }),
retriever: rag,
})
const result = await runtime.run('Explain the AgentsKit architecture based on ingested docs')
console.log(result.content)You can also call rag.retrieve({ query, messages }) to satisfy the core Retriever contract (for example from a custom controller).
Features
createRAG({ embed, store })— single entry point for ingest + retrieve.rag.ingest(docs)— chunk, embed, and store documents.rag.search(query, { topK })— semantic similarity search.rag.retrieve({ query, messages })—Retrievercontract v1 for runtime/controller injection.- Configurable chunking:
chunkSize,chunkOverlap, customsplit. - Works with any
EmbedFnand anyVectorMemory. - Rerankers:
createRerankedRetriever(Cohere Rerank, BGE, BM25 default),createHybridRetriever(vector + BM25 blend), standalonebm25Score. Recipe. - Document loaders:
loadUrl,loadGitHubFile,loadGitHubTree,loadNotionPage,loadConfluencePage,loadGoogleDriveFile,loadPdf(BYO parser). Recipe.
Ecosystem
| Package | Role |
|---------|------|
| @agentskit/core | Retriever, VectorMemory, types |
| @agentskit/memory | Vector backends (fileVectorMemory, etc.) |
| @agentskit/adapters | openaiEmbedder and other embedders |
| @agentskit/runtime | retriever integration for agents |
| @agentskit/react | useChat + chat UI with the same core types |
Contributors
License
MIT — see LICENSE.
