Specialized agents with constrained tool access for safety, efficiency, and predictability
Each agent is designed for a specific purpose with carefully selected tool permissions. This design improves safety (agents can't exceed their role), efficiency (faster responses with focused capabilities), and predictability (consistent, reliable behavior).
/agentsList all available agents/agent coderSwitch to a specific agent/toolsList tools for current agent/statusShow current agent & modelThe default agent with access to all 40+ tools. Use when your task spans multiple domains or when you're not sure which specialized agent to use. It can read files, write code, execute commands, search the web, query databases, and more — all in one conversation.
eldric> /agent general eldric> Users are reporting 500 errors on the checkout page. Find and fix the issue. [WebFetch] Checking error monitoring dashboard... Found: 847 errors in last hour, all from /api/checkout [Grep] Searching for checkout endpoint... Found: src/routes/checkout.ts [Read] src/routes/checkout.ts [Read] src/services/payment.ts [DBQuery] SELECT * FROM orders WHERE status='failed' LIMIT 5 Found: All failed orders have null payment_intent_id Issue identified: Stripe API key expired. The payment service is failing silently and returning null. [Read] .env.example (checking expected vars) [Bash] echo $STRIPE_SECRET_KEY | head -c 10 Output: sk_test_... (truncated, but key exists) [WebFetch] Checking Stripe dashboard for key status... Key sk_test_xxx expired on 2025-01-10 Fix: Need to rotate the Stripe API key. [Edit] Adding better error handling to src/services/payment.ts [Write] Created src/utils/stripe-health-check.ts Done! Added error handling so this fails loudly next time. Action needed: Update STRIPE_SECRET_KEY in production.
A safe, read-only agent for understanding codebases. It can search for files, read their contents, and find patterns — but cannot modify anything. Perfect for onboarding to new projects, understanding unfamiliar code, or when you want to explore without any risk of accidental changes.
eldric> /agent explorer Switched to Explorer agent (Glob, Grep, Read) eldric> I just joined this project. Explain how authentication works. [Glob] Searching for auth-related files... Found 12 files matching *auth*, *login*, *session*: - src/middleware/auth.ts - src/routes/auth.ts - src/services/authService.ts - src/utils/jwt.ts - src/types/auth.ts ... [Read] src/middleware/auth.ts (main auth middleware) [Read] src/utils/jwt.ts (token handling) [Read] src/services/authService.ts (business logic) [Grep] Finding where auth middleware is used... Used in 23 route files. Authentication Overview: ━━━━━━━━━━━━━━━━━━━━━━━ 1. **Strategy**: JWT with refresh tokens 2. **Token Storage**: Access token in memory, refresh in httpOnly cookie 3. **Flow**: - Login: POST /api/auth/login → returns access + refresh tokens - Protected routes: Authorization: Bearer- Refresh: POST /api/auth/refresh (uses cookie) - Logout: POST /api/auth/logout (invalidates refresh) 4. **Key Files**: - Entry point: src/middleware/auth.ts (line 15, verifyToken function) - Token creation: src/utils/jwt.ts (line 23, signToken) - User validation: src/services/authService.ts (line 45, validateUser) 5. **Protected Routes**: 23 routes use requireAuth middleware Most in: src/routes/api/*.ts Would you like me to explain any specific part in more detail?
Focused on reading and writing code. Can create, modify, and delete files, but cannot execute commands. This makes it safe for code changes without risk of running potentially dangerous scripts. Ideal for implementing features, fixing bugs, and refactoring.
eldric> /agent coder
Switched to Coder agent (Read, Write, Edit, Glob)
eldric> Add email validation to the user registration endpoint.
Reject disposable email domains.
[Glob] Finding registration-related files...
[Read] src/routes/auth.ts
[Read] src/validators/index.ts
I'll add email validation with disposable domain checking.
[Write] src/validators/email.ts
```typescript
import { z } from 'zod';
const DISPOSABLE_DOMAINS = [
'tempmail.com', 'throwaway.email', 'guerrillamail.com',
'mailinator.com', '10minutemail.com', // ... 100+ more
];
export const emailSchema = z.string()
.email('Invalid email format')
.refine((email) => {
const domain = email.split('@')[1]?.toLowerCase();
return !DISPOSABLE_DOMAINS.includes(domain);
}, 'Disposable email addresses are not allowed');
export const validateEmail = (email: string) =>
emailSchema.safeParse(email);
```
[Edit] src/routes/auth.ts
Adding import and validation call...
[Edit] src/validators/index.ts
Exporting new email validator...
Done! Changes made:
✓ Created src/validators/email.ts (new file)
✓ Modified src/routes/auth.ts (added validation)
✓ Modified src/validators/index.ts (added export)
The registration endpoint now rejects:
- Invalid email formats
- Disposable email domains (100+ blocked)
To test: Switch to Runner agent and run the tests.
Executes shell commands and scripts. Can read files for context but cannot modify them directly. Perfect for running tests, builds, deployments, and system administration tasks. Use when you need things to actually run.
eldric> /agent runner
Switched to Runner agent (Bash, Read)
eldric> Run all tests and tell me what's broken
[Bash] npm test
> app@1.0.0 test
> jest --coverage
FAIL src/services/__tests__/payment.test.ts
● PaymentService › should process payment
Stripe API key not configured
at src/services/payment.ts:23:11
FAIL src/routes/__tests__/checkout.test.ts
● POST /checkout › should create order
Database connection failed
Tests: 2 failed, 154 passed
Coverage: 87.3%
[Read] package.json (checking test setup)
[Read] jest.config.js
Issues found:
1. Missing STRIPE_SECRET_KEY in test environment
2. Test database not running
[Bash] docker ps | grep postgres
No postgres container running.
[Bash] docker-compose up -d postgres-test
Starting test database...
[Bash] cp .env.test.example .env.test
[Bash] npm test
All 156 tests passing!
Coverage: 87.3%
Analyzes codebases and creates detailed implementation plans without making any changes. Read-only access ensures plans are based on actual code state. Perfect for technical planning, architecture decisions, and creating step-by-step implementation guides.
eldric> /agent planner
Switched to Planner agent (read-only analysis)
eldric> Plan how to add Redis caching to our API endpoints
[Glob] Analyzing project structure...
[Read] package.json, src/index.ts
[Grep] Finding database queries that could benefit from caching...
[Read] src/services/*.ts (analyzing data access patterns)
Implementation Plan: Redis Caching Layer
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
**1. Dependencies**
npm install redis ioredis
**2. New Files to Create**
- src/config/redis.ts (connection config)
- src/services/cache.ts (cache service abstraction)
- src/middleware/cache.ts (response caching middleware)
- src/utils/cache-keys.ts (key generation helpers)
**3. Files to Modify**
- src/index.ts (initialize Redis connection)
- src/services/userService.ts (add caching to getUser)
- src/services/productService.ts (add caching to getProducts)
- src/routes/api.ts (add cache middleware to routes)
**4. Caching Strategy**
- User data: 5 min TTL, invalidate on update
- Product list: 1 min TTL, invalidate on change
- Search results: 30 sec TTL
**5. Cache Invalidation Points**
- userService.updateUser() → invalidate user:${id}
- productService.* → invalidate products:*
**6. Environment Variables**
REDIS_URL=redis://localhost:6379
CACHE_DEFAULT_TTL=300
**7. Testing**
- Add src/__tests__/cache.test.ts
- Mock Redis in existing tests
**Risk Considerations**
- Cache stampede on cold start → implement stale-while-revalidate
- Memory usage → set maxmemory policy
Ready to implement? Switch to Coder agent.
Searches the web, fetches documentation, and gathers external information. Cannot access local files or execute commands — purely focused on finding information from the internet. Great for researching libraries, APIs, and current best practices.
eldric> /agent searcher Switched to Searcher agent (web tools) eldric> Compare Auth0, Clerk, and NextAuth for a Next.js app [WebSearch] "Auth0 vs Clerk vs NextAuth comparison 2025" [WebFetch] https://clerk.com/docs [WebFetch] https://auth0.com/docs [WebFetch] https://authjs.dev/ Authentication Solutions Comparison ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ **Auth0** - Pricing: Free up to 7,500 MAU, then $23/mo - Pros: Enterprise features, extensive customization - Cons: Complex setup, can be expensive at scale - Best for: Enterprise apps, complex requirements **Clerk** - Pricing: Free up to 10,000 MAU, then $25/mo - Pros: Beautiful pre-built UI, great DX, fast setup - Cons: Newer, less enterprise features - Best for: Startups, MVPs, developer experience focus **NextAuth (Auth.js)** - Pricing: Free (self-hosted) - Pros: Free, flexible, no vendor lock-in - Cons: More setup work, you manage security - Best for: Cost-conscious, full control needed **Recommendation for Next.js:** - Quick start/MVP → Clerk (best DX) - Enterprise/compliance → Auth0 - Budget-conscious/control → NextAuth Want me to find setup guides for any of these?
Connects to databases, explores schemas, and runs queries. Supports PostgreSQL, MySQL, SQLite, and more. Perfect for data analysis, debugging data issues, and understanding database structure. Use with caution on production databases.
eldric> /agent database
Switched to Database agent (DB tools)
eldric> Connect to the analytics DB and analyze user churn
[DBConnect] postgresql://analytics:5432/metrics
Connected successfully.
[DBSchema] Listing relevant tables...
- users (id, email, created_at, last_active, plan)
- events (id, user_id, event_type, timestamp)
- subscriptions (id, user_id, status, cancelled_at)
[DBQuery] User churn analysis...
SELECT
DATE_TRUNC('month', cancelled_at) as month,
COUNT(*) as churned,
AVG(EXTRACT(days FROM cancelled_at - created_at)) as avg_lifetime_days
FROM subscriptions s
JOIN users u ON s.user_id = u.id
WHERE s.status = 'cancelled'
GROUP BY 1 ORDER BY 1 DESC LIMIT 6;
| Month | Churned | Avg Lifetime (days) |
|----------|---------|---------------------|
| Jan 2025 | 234 | 45 |
| Dec 2024 | 198 | 52 |
| Nov 2024 | 167 | 61 |
[DBQuery] Finding common patterns before churn...
Top events before cancellation:
1. "billing_failed" (67% of churned users)
2. "support_ticket_opened" (45%)
3. "downgrade_viewed" (38%)
Insight: 67% of churned users had billing failures.
Recommendation: Implement dunning emails and retry logic.
Builds and queries knowledge bases using RAG (Retrieval-Augmented Generation). Index documents, store facts, and retrieve relevant context. Your AI gets smarter about your specific domain without retraining the model.
eldric> /agent learner Switched to Learner agent (RAG tools) eldric> Index our entire documentation folder [Learn] ./docs Scanning directory... Found 127 files (23 MB total) Processing: - 89 Markdown files - 23 PDF documents - 15 code examples Creating embeddings with nomic-embed-text... Progress: ████████████████████ 100% Indexed 4,521 chunks into vector database. Knowledge base ready! eldric> /remember "Deploy to production requires approval from @devops team" Stored in knowledge base. eldric> How do I deploy a hotfix to production? [RAG Search] Querying knowledge base... Found 5 relevant documents. Based on your documentation (deployment-guide.md): **Hotfix Deployment Process:** 1. Create branch from `main`: `hotfix/description` 2. Make fix and test locally 3. Create PR with `[HOTFIX]` prefix 4. Get approval from @devops team (as you noted) 5. Merge to main 6. CI/CD auto-deploys to staging 7. After staging verification, run: `./scripts/promote-to-prod.sh` **Important:** Hotfixes skip the normal release cycle but still require @devops approval. [Sources: docs/deployment-guide.md, docs/hotfix-process.md]
Network diagnostics, remote server management, and connectivity analysis. SSH into servers, check network paths, scan ports, and debug connectivity issues. Essential for DevOps and infrastructure work.
eldric> /agent network Switched to Network agent (network tools) eldric> Our US users are reporting slow API responses. Diagnose the issue. [Ping] api.example.com from US-East 64 bytes: time=23ms ✓ Normal [Traceroute] api.example.com 1. router.local (1ms) 2. isp-gateway (5ms) 3. cloudflare-edge (12ms) 4. api.example.com (23ms) Route looks normal. [Curl] GET https://api.example.com/health Status: 200 OK Response time: 2,847ms ← SLOW! Time to first byte: 2,801ms [SSH] admin@api.example.com Connected. [SSH] top -bn1 | head -15 CPU: 94.2% ← HIGH! MEM: 67.3% Load: 12.8, 11.4, 10.2 [SSH] ps aux --sort=-%cpu | head -5 node /app/server.js 89.1% CPU [SSH] netstat -an | grep :3000 | wc -l Active connections: 847 Issue Found: ━━━━━━━━━━━━ - Server CPU at 94% (single node.js process maxed out) - 847 active connections (normal is ~200) - Load average trending up Root Cause: Traffic spike overwhelming single instance. Immediate Fix: [SSH] pm2 scale app +2 Scaling from 1 to 3 instances... [Curl] GET https://api.example.com/health Response time: 145ms ✓ Fixed!
Create and manage model training jobs. Prepare datasets from your code/docs, configure LoRA/QLoRA parameters, monitor training progress, and manage checkpoints. Train models on your specific domain without sending data to the cloud.
eldric> /agent trainer eldric> Train a model on our codebase for better completions [DatasetPrepare] Analyzing ./src for training examples... Found 2,847 suitable code completions Generated training data: ./training-data.jsonl [TrainCreate] Starting training job... - Base model: codellama:7b - Method: QLoRA (4-bit quantized) - Rank: 32 - Learning rate: 2e-4 - Epochs: 3 Job created: job_xyz789 [TrainStatus] job_xyz789 Progress: ████████░░░░░░░░░░░░ 42% Epoch: 2/3 Loss: 1.23 → 0.45 (improving!) GPU: 22.1/24 GB ETA: 1h 15m remaining eldric> /train list Active jobs: - job_xyz789: 42% (training codellama:7b on your codebase)
Combine multiple models into one using various merging strategies (SLERP, TIES, DARE, Linear). Create specialized models by blending the strengths of different base models and your fine-tuned adapters.
eldric> /agent merger eldric> Merge my fine-tuned model with CodeLlama for better coding [MergeCreate] Select models to merge: 1. codellama:13b (base coding ability) 2. my-domain-lora (your fine-tuned adapter) Strategy options: - SLERP: Smooth spherical interpolation (recommended) - TIES: Preserves unique capabilities of each - DARE: Randomized for diversity - Linear: Simple weighted average Using SLERP with weights 0.6 / 0.4 [MergeStatus] Processing... Merging tensor layers: ████████████████████ 100% Merge complete! - Output: my-code-expert - Size: 13.8 GB - Location: ~/.eldric/models/my-code-expert To use: /model my-code-expert
Manage Eldric Multi-API clusters. Deploy and configure workers, set up routers, monitor cluster health, and scale infrastructure. This agent connects to your Multi-API controller to manage distributed AI infrastructure.
eldric> /agent orchestrator eldric> Show cluster status and scale up workers [ClusterStatus] Connecting to controller at 10.3.7.1:8880... Cluster: production-us-west ━━━━━━━━━━━━━━━━━━━━━━━━━━ Controller: healthy (uptime: 47d) Routers: 2/2 healthy Workers: 5/5 healthy (1 high load) Workers: | ID | Host | Load | Models | |-------------|------------|------|---------------------| | wrk-gpu-01 | 10.3.7.10 | 23% | llama3.1:70b | | wrk-gpu-02 | 10.3.7.11 | 89% | llama3.1:70b ← HIGH | | wrk-gpu-03 | 10.3.7.12 | 45% | codellama:34b | | wrk-gpu-04 | 10.3.7.13 | 34% | mixtral:8x7b | | wrk-gpu-05 | 10.3.7.14 | 12% | llama3.2:3b | [WorkerDeploy] Adding new worker to handle load... Target: 10.3.7.15 Backend: vllm Models: llama3.1:70b Deploying eldric-workerd... Registering with controller... Health check passed! Worker wrk-gpu-06 added successfully. Cluster now has 6 workers.