home / skills / frankxai / arcanea / agent-implementer

agent-implementer skill

/skills/agent-implementer

This skill helps you create and integrate Arcanea agents with proper structure, prompts, and testable routing for scalable multi-agent orchestration.

npx playbooks add skill frankxai/arcanea --skill agent-implementer

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
8.3 KB
---
name: agent-implementer
description: Implementation guidance for creating individual agents in the Arcanea system with proper structure, capabilities, and integration.
version: 1.0.0
author: Arcanea Team
emoji: šŸŽ­
tags: [agents, implementation, coding, templates]
---

# Agent Implementer Skill

## Purpose

Create individual agents for the Arcanea ecosystem with proper structure, capabilities, and integration points.

## When to Use

- Adding new agents to the registry
- Modifying existing agent capabilities
- Creating agent-specific prompts
- Implementing agent routing logic
- Testing agent performance

## Agent Structure

### Required Properties

```typescript
interface Agent {
  // Identity
  id: string;              // Unique kebab-case ID
  name: string;            // Display name
  command: string;         // Invocation command (/id)
  
  // Classification
  court: string;           // Guardian court name
  element: string;         // Fire/Water/Earth/Air/Void
  frequency: string;       // Operating frequency
  
  // Capabilities
  specialty: string;       // One-line description
  capabilities: string[];  // What they can do
  skills: string[];        // Available skills
  triggers: string[];      // Activation keywords
  
  // Configuration
  promptTemplate: string;  // System prompt template
  examples: string[];      // Example outputs
  parameters: ParamSchema; // Input parameters
  
  // Metadata
  version: string;         // Agent version
  author: string;          // Creator
  tier: 'free' | 'premium'; // Access level
}
```

## Implementation Steps

### Step 1: Define Agent Identity

**Questions to answer:**
1. What is the agent's core purpose?
2. Which court does it belong to?
3. What frequency does it operate at?
4. What makes it unique?

**Example:**
```typescript
const ignitionAgent = {
  id: "ignition",
  name: "Ignition",
  command: "/ignition",
  court: "Draconia",
  element: "fire",
  frequency: "528Hz",
  specialty: "Spark rapid creative ideas"
};
```

### Step 2: Define Capabilities

**List what the agent can do:**
- Generate ideas rapidly
- Break creative blocks
- Initiate projects
- Provide energetic momentum

**Map to skills:**
- `/fire ignite`
- `/fire intensify`
- `/foundation begin`

### Step 3: Create Prompt Template

**Template structure:**
```
You are {name} from the {court} Court.
Frequency: {frequency} | Element: {element}
Specialty: {specialty}

Your approach:
- {Characteristic 1}
- {Characteristic 2}
- {Characteristic 3}

Task: {{task}}
Context: {{context}}

Provide your contribution as {name}:
```

**Example for Ignition:**
```
You are Ignition from the Draconia Court.
Frequency: 528Hz | Element: Fire
Specialty: Spark rapid creative ideas

Your approach:
- High-energy, passionate
- Fast generation over perfection
- Bold, unconventional ideas
- Fearless creativity

Task: {{task}}
Context: {{context}}

Ignite creative fire. Generate 10 bold, energetic ideas rapidly.
Don't self-censor. Embrace wild possibilities.
```

### Step 4: Define Triggers

**Keywords that activate this agent:**
```typescript
triggers: [
  "stuck",
  "blocked", 
  "can't start",
  "ignite",
  "spark",
  "rapid",
  "brainstorm",
  "ideas"
]
```

### Step 5: Set Parameters

**What inputs does the agent need?**
```typescript
parameters: {
  task: {
    type: "string",
    required: true,
    description: "What to generate ideas for"
  },
  count: {
    type: "number",
    required: false,
    default: 10,
    description: "Number of ideas to generate"
  },
  temperature: {
    type: "number",
    required: false,
    default: 0.9,
    description: "Creativity level (0.1-1.0)"
  }
}
```

### Step 6: Register Agent

**Add to registry:**
```typescript
// In arcanea-agents/registry.js
const AGENT_REGISTRY = {
  courts: {
    elemental: {
      fire: {
        guardian: "Draconia",
        agents: [
          // ... other agents
          {
            id: "ignition",
            name: "Ignition",
            // ... all properties
          }
        ]
      }
    }
  }
};
```

### Step 7: Test Agent

**Create test cases:**
```typescript
// Test ignition agent
describe('Ignition Agent', () => {
  test('generates ideas for character', async () => {
    const result = await invokeAgent('ignition', {
      task: 'Create a cyberpunk character'
    });
    expect(result.output).toContain('character');
    expect(result.output.split('\n').length).toBeGreaterThan(5);
  });
});
```

## Agent Templates

### Fire Court Agent Template

```typescript
{
  id: "{kebab-name}",
  name: "{TitleCaseName}",
  command: "/{kebab-name}",
  court: "Draconia",
  element: "fire",
  frequency: "{396|528|639|741|852|963}Hz",
  specialty: "{One-line specialty}",
  personality: "{Fiery, passionate, transformative}",
  capabilities: ["{capability1}", "{capability2}"],
  skills: ["/fire {skill1}", "/fire {skill2}"],
  triggers: ["{keyword1}", "{keyword2}"],
  promptTemplate: `You are {name} from the Draconia Court...
  
Task: {{task}}

Approach with fire: intense, passionate, transformative.
{specific_instructions}`,
  examples: ["{example1}", "{example2}"]
}
```

### Water Court Agent Template

```typescript
{
  id: "{kebab-name}",
  name: "{TitleCaseName}",
  command: "/{kebab-name}",
  court: "Leyla",
  element: "water",
  frequency: "{396|528|639|741|852}Hz",
  specialty: "{One-line specialty}",
  personality: "{Fluid, emotional, nurturing}",
  capabilities: ["{capability1}", "{capability2}"],
  skills: ["/flow {skill1}", "/flow {skill2}"],
  triggers: ["{keyword1}", "{keyword2}"],
  promptTemplate: `You are {name} from the Leyla Court...
  
Task: {{task}}

Approach with water: flowing, emotional, adaptive.
{specific_instructions}`,
  examples: ["{example1}", "{example2}"]
}
```

## Common Patterns

### Agent with Sub-agents

For complex agents that need specialized modes:

```typescript
{
  id: "structure",
  name: "Structure",
  subModes: [
    { id: "structure-architect", name: "Architect Mode" },
    { id: "structure-foundation", name: "Foundation Mode" },
    { id: "structure-refinement", name: "Refinement Mode" }
  ]
}
```

### Agent with Parameters

For agents that need configuration:

```typescript
{
  id: "depth",
  name: "Depth",
  parameters: {
    depth: {
      type: "enum",
      options: ["surface", "shallow", "deep", "abyssal"],
      default: "deep"
    }
  }
}
```

### Agent with Context Memory

For agents that remember previous interactions:

```typescript
{
  id: "relationship",
  name: "Relationship",
  contextWindow: 5,  // Remember last 5 interactions
  memory: {
    type: "conversation",
    persistence: "session"
  }
}
```

## Best Practices

### Do's
āœ… Give each agent a clear, single purpose
āœ… Use consistent naming conventions
āœ… Document all parameters
āœ… Provide example outputs
āœ… Test with real tasks
āœ… Version your agents

### Don'ts
āŒ Create agents that overlap too much
āŒ Give agents vague or broad purposes
āŒ Forget to add to registry
āŒ Skip testing
āŒ Hardcode without configuration options

## Validation Checklist

Before an agent is complete:

- [ ] ID is unique and kebab-case
- [ ] Name is clear and descriptive
- [ ] Court assignment is logical
- [ ] Frequency matches gate
- [ ] Specialty is one clear sentence
- [ ] At least 3 capabilities defined
- [ ] At least 3 skills mapped
- [ ] At least 5 trigger keywords
- [ ] Prompt template is complete
- [ ] Examples are provided
- [ ] Added to registry
- [ ] Tests written and passing
- [ ] Documentation complete

## Testing Strategy

### Unit Tests
```typescript
test('agent responds correctly', async () => {
  const agent = getAgent('ignition');
  const result = await agent.invoke('Brainstorm ideas');
  expect(result).toBeDefined();
  expect(result.output).toBeTruthy();
});
```

### Integration Tests
```typescript
test('agent integrates with conductor', async () => {
  const result = await conductor.orchestrate({
    agent: 'ignition',
    task: 'test'
  });
  expect(result.success).toBe(true);
});
```

### User Tests
- Real users try the agent
- Feedback collected
- Iterations made

## Conclusion

Implementing agents requires:
1. **Clear definition** - Know what the agent does
2. **Proper structure** - Follow the template
3. **Thorough testing** - Validate functionality
4. **Documentation** - Help users understand

Each agent is a specialized creative partner. Build them well.

---

*Use this skill when implementing or modifying agents in the Arcanea ecosystem.*

Overview

This skill provides practical guidance for implementing individual agents in the Arcanea system with the right structure, capabilities, and integration points. It outlines required properties, prompt templates, triggers, parameters, registration steps, and testing strategies. Follow it to produce consistent, testable, and discoverable agents that fit the multi-agent orchestration framework.

How this skill works

The skill inspects and defines a consistent Agent interface (identity, classification, capabilities, configuration, metadata) and maps those definitions into registry entries used by the conductor. It provides templates for prompt construction, trigger keywords, parameter schemas, and testing patterns so agents behave predictably. Implementation steps cover identity definition, capability mapping, prompt templating, parameter design, registry registration, and unit/integration testing.

When to use it

  • Adding a new agent to the Arcanea registry
  • Modifying or extending an existing agent's capabilities
  • Designing agent prompts and personality templates
  • Implementing routing or orchestration logic for agents
  • Creating tests to validate agent outputs and integration

Best practices

  • Give each agent a single clear purpose and specialty
  • Use kebab-case IDs and consistent naming conventions
  • Document parameters, example outputs, and prompt templates
  • Provide at least 3 capabilities, 3 skills, and 5 trigger keywords
  • Write unit, integration, and user tests before release
  • Version agents and avoid overlapping responsibilities

Example use cases

  • Create a fast ideation agent that returns 10 bold concepts for creative briefs
  • Implement a refinement agent with modes for architect, foundation, and polish
  • Build a relationship agent that persists the last 5 interactions for continuity
  • Add a court-aligned agent (Fire, Water, Earth, Air, Void) with a court-specific prompt
  • Test orchestration by invoking an agent through the conductor in an integration suite

FAQ

What minimal fields must every agent include?

Every agent needs id, name, command, court, element, frequency, specialty, capabilities, skills, triggers, promptTemplate, parameters, version, and author.

How should I test an agent before registry registration?

Write unit tests for core responses, integration tests calling the conductor, and run quick user tests to validate real tasks and collect feedback.