skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
sstobo/convex-skills0 installs

Convex Agents RAG

Implements Retrieval-Augmented Generation (RAG) patterns to enhance agents with custom knowledge bases. Use this when agents need to search through documents, retrieve context from a knowledge base, or ground responses in specific data.

How do I install this agent skill?

npx skills add https://github.com/sstobo/convex-skills --skill convex-agents-rag
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill implements a standard Retrieval-Augmented Generation (RAG) pattern. The main security concern is a risk of indirect prompt injection where untrusted data from the knowledge base or user queries could influence agent behavior. It also relies on external dependencies from the @convex-dev npm scope.

  • Socketpass

    No alerts

  • Snykwarn

    Risk: MEDIUM · No issues

  • Runlayerpass

    1 file scanned · No issues

What does this agent skill do?

Purpose

Enables agents to search through custom content and knowledge bases to provide accurate, context-grounded responses. RAG combines LLM capabilities with semantic search.

When to Use This Skill

  • Agents need to reference a knowledge base or document collection
  • Grounding answers in specific data (policies, product docs, etc.)
  • Semantic search across custom content
  • Building a search + generation system (FAQ, documentation, support)
  • Reducing hallucinations by constraining responses to known information
  • Managing user-specific or team-specific knowledge namespaces

Setup

Install and configure RAG in your convex.config.ts:

import { defineApp } from "convex/server";
import agent from "@convex-dev/agent/convex.config";
import rag from "@convex-dev/rag/convex.config";

const app = defineApp();
app.use(agent);
app.use(rag);

export default app;

Add Content

Ingest documents into a namespace:

import { rag } from "@convex-dev/rag";

export const addContent = action({
  args: { userId: v.string(), key: v.string(), text: v.string() },
  handler: async (ctx, { userId, key, text }) => {
    const namespace = `user:${userId}`;
    await rag.addContent(ctx, components.rag, {
      namespace,
      key,
      text,
      filters: { filterNames: [filename] },
    });
  },
});

Search and Generate

Use RAG with agents:

export const answerWithContext = action({
  args: { threadId: v.string(), userId: v.string(), question: v.string() },
  handler: async (ctx, { threadId, userId, question }) => {
    const { thread } = await myAgent.continueThread(ctx, { threadId });

    const context = await rag.search(ctx, components.rag, {
      namespace: `user:${userId}`,
      query: question,
      limit: 10,
    });

    const augmentedPrompt = `# Context:\n\n${context.text}\n\n# Question:\n\n${question}`;
    const result = await thread.generateText({ prompt: augmentedPrompt });

    return result.text;
  },
});

Key Principles

  • Namespaces isolate data: Use user:userId or team:teamId for multi-tenant safety
  • Hybrid search: Combine text and vector search for better results
  • Filtering: Use filterNames to target specific documents

Next Steps

  • See fundamentals for basic agent setup
  • See context for advanced context customization

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/sstobo/convex-skills/convex-agents-rag">View Convex Agents RAG on skillZs</a>