-
-
Notifications
You must be signed in to change notification settings - Fork 2
plugin retrieval
Hybrid retrieval plugin: pgvector ANN + tsvector BM25 merged with Reciprocal Rank Fusion (RRF). Provides the search backend for ɳClaw memory and nself-ai-mcp search/recall tools. Pro plugin — requires license.
nself license set nself_pro_xxxxx...
nself plugin install plugin-retrievalplugin-retrieval is a hybrid retrieval service that combines two complementary search strategies and merges them using Reciprocal Rank Fusion (RRF). It is the retrieval backend consumed by the nself-ai-mcp plugin's search and recall tools.
- pgvector ANN: Cosine-distance approximate nearest-neighbor search over 1536-dim embeddings (OpenAI ada-002 compatible).
-
tsvector BM25: PostgreSQL full-text search using
ts_rank_cdwithplainto_tsquery. - RRF fusion: Merges both ranked lists using the standard RRF formula (k=60, Cormack et al. 2009).
Embeddings are caller-provided — the plugin does not call any external AI provider. This keeps it provider-agnostic and eliminates SSRF risk.
RRF score for a document d:
score(d) = Σ_{list L} 1 / (k + rank_of_d_in_L)
where k = 60 (smoothing constant). Documents appearing in both the vector list and the text list receive additive scores, promoting documents that are relevant by both measures. Documents appearing in only one list receive a single-list score.
Hybrid search over indexed documents.
Request:
{
"query": "how to configure plugins",
"embedding": [0.12, -0.34, ...],
"top_k": 10,
"source_account_id": "primary"
}| Field | Required | Description |
|---|---|---|
query |
No | Full-text search query (tsvector) |
embedding |
No | Caller-provided float32 vector (pgvector ANN) |
top_k |
No | Max results (default 10) |
source_account_id |
No | Multi-app isolation key (default: "primary") |
At least one of query or embedding must be provided. If both are provided, both searches run and results are merged via RRF.
Response:
{
"results": [
{
"id": "doc-abc123",
"source_account_id": "primary",
"title": "Plugin configuration guide",
"content": "To configure plugins...",
"rrf_score": 0.0316,
"similarity": 0.87,
"text_rank": 0.0
}
],
"count": 1
}Upsert a document and optionally its embedding.
Request:
{
"id": "doc-abc123",
"title": "Plugin configuration guide",
"content": "To configure plugins, edit plugin.json...",
"embedding": [0.12, -0.34, ...],
"source_account_id": "primary"
}| Field | Required | Description |
|---|---|---|
id |
Yes | Unique document ID (within source_account_id) |
content |
Yes | Plain-text document body |
title |
No | Optional title |
embedding |
No | Float32 vector; if absent, only text index updated |
source_account_id |
No | Multi-app isolation key (default: "primary") |
Response: 201 Created
{"status": "indexed"}Returns {"status":"ok"} when Postgres is reachable. Returns 503 otherwise.
| Table | Purpose |
|---|---|
np_retrieval_documents |
Text corpus: id, title, content, tsvector GIN index |
np_retrieval_embeddings |
pgvector ANN index: 1536-dim embeddings, IVFFlat (lists=100) |
np_embeddings |
BGE-M3 1024-dim embeddings (E7 extension) |
np_retrieval_index |
RRF metadata + tsvector for hybrid scoring |
All tables use source_account_id TEXT NOT NULL DEFAULT 'primary' for multi-app isolation.
| Variable | Default | Description |
|---|---|---|
DATABASE_URL |
— | PostgreSQL connection string |
PORT |
3825 |
HTTP bind port |
| Port | Purpose |
|---|---|
| 3825 | HTTP API (search, index, health) |
All tables have source_account_id row-level filters. nself_user role can only read/write documents belonging to their own source_account_id. The embedding column is not exposed via GraphQL (pgvector not yet supported by Hasura).
All queries include WHERE source_account_id = $N. The pgvector ANN query joins np_retrieval_embeddings back to np_retrieval_documents using both document_id and source_account_id, preventing cross-account embedding hits from returning another account's document content.
docker pull nself/plugin-retrieval:latest
docker run -e DATABASE_URL=postgres://... -p 3825:3825 nself/plugin-retrieval:latestRequires nclaw bundle or ɳSelf+ subscription.
nself license set nself_pro_xxxxx...
nself plugin install plugin-retrieval
nself plugin status plugin-retrievalɳSelf CLI v1.0.9. MIT licensed. Docs CC BY 4.0.
GitHub · Issues · Discussions · nself.org · docs.nself.org
Getting Started
Commands
- Commands, Overview
- Lifecycle: cmd-init · cmd-build · cmd-start · cmd-stop · cmd-restart · cmd-dev
- Monitoring: cmd-status · cmd-logs · cmd-health · cmd-urls · cmd-doctor · cmd-monitor · cmd-alerts · cmd-sentry · cmd-watchdog · cmd-dogfood
- Data: cmd-db · cmd-backup · cmd-dr · cmd-queue · cmd-webhooks
- Config: cmd-config · cmd-service · cmd-env · cmd-promote
- Networking: cmd-ssl · cmd-trust · cmd-dns-setup
- Security: cmd-security · cmd-secrets · cmd-waf
- Tenancy: cmd-tenant · cmd-billing
- Plugins: cmd-plugin · cmd-license
- AI: cmd-ai · cmd-claw · cmd-model
- Templates: cmd-template
- Utilities: cmd-exec · cmd-clean · cmd-reset · cmd-update · cmd-upgrade · cmd-version · cmd-admin · cmd-migrate · cmd-migrate-firebase · cmd-migrate-supabase · cmd-completion
Features
- Features, Overview
- Feature-Auth
- Feature-Storage
- Feature-Search
- Feature-Functions
- Feature-Email
- Feature-Monitoring
- Feature-Plugins
- Feature-ɳClaw, AI Assistant
- Feature-ɳChat, Messaging
- Feature-ɳTV, Media Player
- Feature-ɳFamily, Family Social
- Feature-ɳCloud, Managed Hosting
- Feature-Memory-Rooms, Knowledge Organization
- Feature-Agent-Dashboard, Agent Metrics
- Feature-Image-Generation, AI Image Generation
Configuration
- Configuration, Overview
- Config-Env-Vars
- Config-Postgres
- Config-Hasura
- Config-Auth
- Config-Nginx
- Config-Optional-Services
- Config-Custom-Services
- Config-System
Plugins (87 + 10 monitoring)
Free (25)
- plugin-backup
- plugin-content-acquisition
- plugin-content-progress
- plugin-cron
- plugin-donorbox
- plugin-feature-flags
- plugin-github
- plugin-github-runner
- plugin-invitations
- plugin-jobs
- plugin-link-preview
- plugin-mdns
- plugin-mlflow
- plugin-monitoring
- plugin-notifications
- plugin-notify
- plugin-paypal
- plugin-search
- plugin-shopify
- plugin-stripe
- plugin-subtitle-manager
- plugin-tokens
- plugin-torrent-manager
- plugin-vpn
- plugin-webhooks
Pro (62)
- plugin-access-controls
- plugin-activity-feed
- plugin-admin-api
- nself-ai-gateway
- nself-ai-cc
- nself-ai-mcp
- plugin-analytics
- plugin-auth
- plugin-backup-pro
- plugin-bots
- plugin-browser
- plugin-calendar
- plugin-cdn
- plugin-chat
- plugin-claw
- plugin-claw-budget
- plugin-claw-news
- plugin-claw-web
- plugin-cloudflare
- plugin-cms
- plugin-compliance
- plugin-cron-pro
- plugin-ddns
- plugin-devices
- plugin-documents
- plugin-donorbox-pro
- plugin-entitlements
- plugin-epg
- plugin-file-processing
- plugin-game-metadata
- plugin-geocoding
- plugin-geolocation
- plugin-google
- plugin-home
- plugin-idme
- plugin-knowledge-base
- plugin-linkedin
- plugin-livekit
- plugin-media-processing
- plugin-meetings
- plugin-moderation
- plugin-mux
- plugin-notify-pro
- plugin-object-storage
- plugin-observability
- plugin-paypal-pro
- plugin-photos
- plugin-podcast
- plugin-post
- plugin-realtime
- plugin-recording
- plugin-retro-gaming
- plugin-rom-discovery
- plugin-shopify-pro
- plugin-social
- plugin-sports
- plugin-stream-gateway
- plugin-streaming
- plugin-stripe-pro
- plugin-support
- plugin-tmdb
- plugin-voice
- plugin-web3
- plugin-workflows
Planned (26)
plugin-auditplugin-blogplugin-checkoutplugin-commerceplugin-drmplugin-exportplugin-flowplugin-importplugin-ldapplugin-mailgunplugin-mediaplugin-oauth-providersplugin-pagesplugin-postmarkplugin-rate-limitplugin-reportsplugin-samlplugin-schedulerplugin-sendgridplugin-ssoplugin-subscriptionplugin-thumbplugin-transcoderplugin-twilioplugin-wafplugin-watermark
Guides
- Guide-Production-Deployment
- Guide-SSL-Setup
- Guide-Multi-Tenancy
- Guide-Security-Hardening
- Guide-Monitoring-Setup
- Guide-Backup-Restore
- Guide-Custom-Services
- Guide-Migration-from-v1
Architecture
Reference
- API-Reference
- reference-error-codes, Error Codes
Licensing
Security
Brand
Operations
- operations/release-cascade, Release Cascade
- operations/self-healing, Self-Healing Schema
- operations/redis-tuning, Redis Pool Tuning
- operations/meilisearch-warmup, MeiliSearch Warm-Up
- operations/jwt-rotation, JWT Key Rotation
- operations/windows-wsl2-setup, Windows / WSL2 Setup
- operations/gemini-oauth-reauth, Gemini OAuth Reauth
Contributing
Admin
- USER-ACTION-QUEUE, Pending Admin Actions