Provides step-by-step templates and guidance for creating new AI agents in Unite-Hub with proper registration, testing, and governance
When to Use: Creating new AI agents for Unite-Hub
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
};
}
}
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';
}
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"
}
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');
});
});
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...');
Standard: All agents must filter by workspace_id, respect budgets, pass verification
npx skills add aiskillstore/new-agent-creation下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer