Parent PRD
#2
What to build
Add standalone embedder functions to @agentskit/adapters. Each embedder satisfies the embed: (text: string) => MaybePromise<number[]> contract used by RAG. These are separate from the chat adapters — no coupling between chat and embedding.
Embedders: openaiEmbedder, geminiEmbedder, ollamaEmbedder (at minimum). Each takes provider config (apiKey, model) and returns the embed function.
Acceptance criteria
Blocked by
User stories addressed
- User story 17 (bring your own embedder)
- User story 18 (adapter-provided embedders)
Parent PRD
#2
What to build
Add standalone embedder functions to
@agentskit/adapters. Each embedder satisfies theembed: (text: string) => MaybePromise<number[]>contract used by RAG. These are separate from the chat adapters — no coupling between chat and embedding.Embedders: openaiEmbedder, geminiEmbedder, ollamaEmbedder (at minimum). Each takes provider config (apiKey, model) and returns the embed function.
Acceptance criteria
openaiEmbedder({ apiKey, model? })exported from adaptersgeminiEmbedder({ apiKey, model? })exported from adaptersollamaEmbedder({ model, baseUrl? })exported from adapters(text: string) => Promise<number[]>@agentskit/adaptersmain entry pointBlocked by
User stories addressed