Using an agent
Add a registry agent to your project, run it, and keep it in sync.
Add
npx agentskit add <agent>Copies the agent's source into ./agents/<agent>/ (override with --out). You own the code.
npx agentskit add legal-contract-reviewer
npm install @agentskit/core @agentskit/runtime @agentskit/adaptersimport { openai } from '@agentskit/adapters'
import { createLegalContractReviewerAgent } from './agents/legal-contract-reviewer/agent'
const agent = createLegalContractReviewerAgent({
adapter: openai({ apiKey: process.env.OPENAI_API_KEY!, model: 'gpt-4o' }),
})
const { content } = await agent.run('Review this NDA: …')Swap the adapter for any provider (anthropic, gemini, ollama, …) — no lock-in.
Run it in one command
npx agentskit add <agent> --run "<task>" --provider ollamaCopies and runs the agent (its system prompt, as data — never executing the copied code).
Use --provider/--model/--api-key, or a local model with --provider ollama (no key).
Keep it up to date
npx agentskit diff <agent> # show how your copy differs from the registry
npx agentskit update <agent> # apply the registry versionCompose, ground, secure
Every agent's factory accepts optional config — all overridable:
createXAgent({
adapter,
tools, // tools / integrations / MCP (toolsFromMcpClient)
memory, // conversation context
retriever, // RAG grounding
delegates, // sub-agents (orchestration)
onConfirm, // per-tool permission gate (HITL / RBAC)
observers, // tracing / audit
})Agents also expose .asHandle() for multi-agent topologies (supervisor, swarm, …).