Skip to content

feat(adapters): add standalone embedder functions#66

Merged
EmersonBraun merged 2 commits into
mainfrom
feat/adapter-embedders
Apr 6, 2026
Merged

feat(adapters): add standalone embedder functions#66
EmersonBraun merged 2 commits into
mainfrom
feat/adapter-embedders

Conversation

@EmersonBraun

Copy link
Copy Markdown
Collaborator

Summary

  • Add EmbedFn type to @agentskit/core as the shared embedding contract
  • Add 6 embedder functions to @agentskit/adapters: openaiEmbedder, geminiEmbedder, ollamaEmbedder, deepseekEmbedder, grokEmbedder, kimiEmbedder
  • Shared openaiCompatibleEmbedder factory powers DeepSeek/Grok/Kimi thin wrappers
  • On error, fetches available embedding models from provider API for helpful error messages
  • All use raw fetch — no SDK dependencies, consistent with existing chat adapters

Test plan

  • 32 new tests pass: unit tests per embedder + contract tests for all 6
  • Existing 4 adapter tests unaffected
  • pnpm build succeeds across all packages
  • pnpm --filter @agentskit/adapters lint passes
  • pnpm --filter @agentskit/core lint passes

Closes #10

Add openaiEmbedder, geminiEmbedder, ollamaEmbedder, deepseekEmbedder,
grokEmbedder, and kimiEmbedder to @agentskit/adapters. Each returns an
EmbedFn (text → number[]) using raw fetch with no SDK dependencies.

- Add EmbedFn type to @agentskit/core
- Shared openaiCompatibleEmbedder factory for DeepSeek/Grok/Kimi
- Model discovery on error: fetches available models from provider API
- Verbose fallback error when model list fetch also fails
- Contract tests + unit tests with msw for HTTP mocking

Closes #10
The msw package was installed locally but not committed to package.json,
causing CI to fail with "Cannot find package 'msw'" errors.
@EmersonBraun EmersonBraun merged commit 9a936c8 into main Apr 6, 2026
1 check passed
@EmersonBraun EmersonBraun deleted the feat/adapter-embedders branch April 6, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adapter embedders (openaiEmbedder, geminiEmbedder, etc.)

1 participant