About convex-agent
A skill for building an in-app AI agent and RAG backend with `@convex-dev/agent`. It covers durable threads, message history, tool calls, and vector search, using the Convex AI Gateway for model calls by default.
Key features
- 01Persist threads and message history
- 02Define agent tools and instructions
- 03Stream messages
- 04Add vector search and RAG
- 05Call models through Convex AI Gateway
- 06Keep provider keys in Convex env
Use cases
- 01Build an in-app agent with durable conversations
- 02Add document retrieval to agent tools
- 03Avoid managing model-provider keys when using the gateway
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ convex/ agent-skills --skill convex-agentAfter installing, type/convex-agentin Claude Code to confirm it loaded.
Details
From the project READMEAdd an AI agent / RAG backend
Install @convex-dev/agent for durable threads, message history, tool-calls, and vector search/RAG — the backend for an in-app AI agent. Call models through the Convex AI Gateway by default: Convex holds the provider credentials, so there is no LLM key to obtain, store, or rotate.
Workflow
- Install @convex-dev/agent + @convex-dev/ai-sdk-provider; add the agent component to convex.config.ts.
- Define the agent (tools, instructions) with
languageModel: convexGateway("provider/model")— no API key needed (needs convex 1.45+ on a Convex Cloud deployment, paid plan). - Create threads + stream messages; persist history in Convex.
- For RAG: embed docs into a vector index and retrieve in the tool. The gateway does not serve embeddings yet, so store the embedding provider's key via the
envmicro power. - Only if the gateway is unavailable (free plan, self-hosted, local backend): call the provider SDK with a key stored via the
envmicro power.
Rules
- Default to the Convex AI Gateway (
convexGatewayfrom @convex-dev/ai-sdk-provider) for model calls; fall back to a provider key in Convex env only where the gateway is unavailable (free plan, self-hosted, local backend). - Never expose a provider API key client-side; when one is needed (embeddings, gateway fallback), keep it in Convex env via the
envmicro power. - Run model calls in actions ('use node' if the SDK needs it).
- Persist threads/messages in Convex for durability + reactivity.
Comments
Markdown supported