Marketplace new-agent-creation
Provides step-by-step templates and guidance for creating new AI agents in Unite-Hub with proper registration, testing, and governance
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cleanexpo/new-agent-creation" ~/.claude/skills/aiskillstore-marketplace-new-agent-creation && rm -rf "$T"
manifest:
skills/cleanexpo/new-agent-creation/SKILL.mdsource content
New Agent Creation Skill
Step-by-Step Agent Implementation
When to Use: Creating new AI agents for Unite-Hub
Quick Start Template
1. Create Agent File
Location:
src/lib/agents/my-new-agent.ts
import { BaseAgent, AgentTask, AgentConfig } from './base-agent'; import { getAnthropicClient } from '@/lib/anthropic/lazy-client'; export class MyNewAgent extends BaseAgent { constructor() { super({ name: 'MyNewAgent', queueName: 'my-new-agent-queue', concurrency: 1, retryDelay: 5000 }); } protected async processTask(task: AgentTask): Promise<any> { // Your agent logic here const client = getAnthropicClient(); const response = await client.messages.create({ model: 'claude-sonnet-4-5-20250929', max_tokens: 4096, messages: [{ role: 'user', content: `Task: ${task.task_type}\nPayload: ${JSON.stringify(task.payload)}` }] }); return { result: response.content[0].text, workspace_id: task.workspace_id, model_used: 'claude-sonnet-4-5-20250929', input_tokens: response.usage.input_tokens, output_tokens: response.usage.output_tokens }; } }
2. Register in Orchestrator
File:
src/lib/agents/orchestrator-router.ts
// Add to AgentIntent enum export type AgentIntent = | 'my_new_agent' // ← Add this | 'email' | 'content' | ...; // Add to classifyIntent function if (objective.includes('my task keyword')) { return 'my_new_agent'; }
3. Add to Registry
File:
.claude/agents/registry.json
{ "id": "my-new-agent", "name": "My New Agent", "version": "1.0.0", "file": "src/lib/agents/my-new-agent.ts", "capabilities": ["capability_1", "capability_2"], "queueName": "my-new-agent-queue", "models": ["claude-sonnet-4-5-20250929"], "governance": "HUMAN_GOVERNED", "verification_required": true, "budget_daily_usd": 10.00, "category": "marketing" }
4. Create Tests
File:
tests/agents/my-new-agent.test.ts
import { describe, it, expect, vi } from 'vitest'; import { MyNewAgent } from '@/lib/agents/my-new-agent'; describe('MyNewAgent', () => { it('processes task successfully', async () => { const agent = new MyNewAgent(); const task = { id: 'test-1', workspace_id: 'ws-123', task_type: 'my_task', payload: { data: 'test' }, priority: 5, retry_count: 0, max_retries: 3 }; const result = await agent.processTask(task); expect(result).toBeDefined(); expect(result.workspace_id).toBe('ws-123'); }); });
5. Create CLI Runner (Optional)
File:
scripts/run-my-agent.mjs
import { MyNewAgent } from '../src/lib/agents/my-new-agent.js'; const agent = new MyNewAgent(); await agent.start(); console.log('MyNewAgent running...');
Checklist
- Create agent file extending BaseAgent
- Implement processTask() method
- Add to orchestrator-router.ts intent enum
- Add to orchestrator routing logic
- Register in .claude/agents/registry.json
- Create tests (100% pass required)
- Add CLI runner script (optional)
- Document in .claude/agent.md
- Set appropriate budget limits
- Choose governance mode (HUMAN_GOVERNED vs AUTONOMOUS)
Standard: All agents must filter by workspace_id, respect budgets, pass verification