The Agency is an open-source collection of 147 specialized AI agents for Claude Code, Cursor, Aider, Windsurf, GitHub Copilot, and more. Each agent has a distinct personality, technical deliverables, and success metrics. This technical deep dive covers agent architecture, multi-tool integration, MCP memory, and the Bash scripts that power it all.
If you’re wiring these agents into real-world API workflows, an API platform can make the process more repeatable. Apidog lets you design, mock, test, and document the APIs your agents consume, then run those workflows from a shared workspace.
Instead of prompting an AI with “Act as a senior developer” and receiving generic advice, The Agency provides 147 specialists organized into 12 divisions.
Think of it as assembling a full-service agency—except the team members are AI agents with defined responsibilities, workflows, and delivery standards.
What Is The Agency?
| Feature | Details |
|---|---|
| Total agents | 147 specialized agents across 12 divisions |
| Format | Markdown files with YAML frontmatter: name, description, color, and emoji |
| Integration | Claude Code, Cursor, Aider, Windsurf, GitHub Copilot, Gemini CLI, OpenCode, OpenClaw, Qwen Code |
| License | MIT — free for personal and commercial use |
| Origin | Started from a Reddit thread and is now community-maintained |
| Key innovation | Personality-driven agents with deliverables and success metrics rather than generic prompts |
The basic workflow is simple:
Instead of: "Act as a developer"
Use: "Activate Frontend Developer mode"
The Frontend Developer agent is scoped to technologies and practices such as React, Vue, Angular, Core Web Vitals, and accessibility compliance.
Repository Structure: 12 Divisions, 147 Agents
The Agency lives at github.com/msitarzewski/agency-agents. Its agents are organized into divisions that mirror a real agency structure:
agency-agents/
├── engineering/ # 20+ agents: Frontend, Backend, DevOps, AI, Mobile, Security
├── design/ # 8 agents: UI Designer, UX Researcher, Brand Guardian, Whimsy Injector
├── marketing/ # 20+ agents: Growth Hacker, SEO, TikTok, Reddit, LinkedIn
├── sales/ # 8 agents: Discovery Coach, Deal Strategist, Sales Engineer
├── product/ # 5 agents: Product Manager, Trend Researcher, Feedback Synthesizer
├── project-management/ # 6 agents: Studio Producer, Project Shepherd, Experiment Tracker
├── testing/ # 8 agents: Reality Checker, Evidence Collector, API Tester
├── support/ # 6 agents: Support Responder, Analytics Reporter, Legal Compliance
├── spatial-computing/ # 6 agents: XR Architect, visionOS Engineer, Metal Developer
├── specialized/ # 30+ agents: MCP Builder, Blockchain Auditor, Compliance Auditor
├── game-development/ # 20+ agents: Unity Architect, Unreal Systems, Godot Scripter, Roblox
└── academic/ # 5 agents: Anthropologist, Historian, Psychologist, Narratologist
Each division contains agents with a specific area of expertise. The Engineering division includes Frontend Developers, Backend Architects, DevOps Automators, Security Engineers, and Embedded Firmware Engineers.
Agent Anatomy: Inside a 400-Line AI Specialist
Every agent follows a similar structure. The Backend Architect agent illustrates the main components.
1. Frontmatter
---
name: Backend Architect
description: Senior backend architect specializing in scalable system design, database architecture, API development, and cloud infrastructure
color: blue
emoji: 🏗️
vibe: Designs the systems that hold everything up — databases, APIs, cloud, scale.
---
The metadata supports agent discovery in tools such as Cursor and Claude Code:
-
nameidentifies the agent. -
descriptionexplains its scope. -
colorandemojiprovide visual context. -
vibesummarizes its working style.
2. Identity and Memory
## 🧠 Your Identity & Memory
- **Role**: System architecture and server-side development specialist
- **Personality**: Strategic, security-focused, scalability-minded, reliability-obsessed
- **Memory**: You remember successful architecture patterns, performance optimizations, and security frameworks
- **Experience**: You've seen systems succeed through proper architecture and fail through technical shortcuts
This section gives the model a consistent perspective and defines the agent’s expertise boundaries.
3. Core Mission
## 🎯 Your Core Mission
### Data/Schema Engineering Excellence
- Define and maintain data schemas and index specifications
- Design efficient data structures for large-scale datasets (100k+ entities)
- Implement ETL pipelines for data transformation and unification
- Create high-performance persistence layers with sub-20ms query times
The mission is expressed as concrete work rather than a broad instruction. Targets such as 100k+ entities and sub-20ms query times make the expected outcome more specific.
4. Critical Rules
## 🚨 Critical Rules You Must Follow
### Security-First Architecture
- Implement defense in depth strategies across all system layers
- Use the principle of least privilege for all services and database access
- Encrypt data at rest and in transit using current security standards
Rules define constraints that should take priority over general behavior.
5. Technical Deliverables
Deliverables distinguish these agents from one-off prompts. For example, the Backend Architect can produce runnable database and API code:
-- E-commerce database schema design
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
deleted_at TIMESTAMP WITH TIME ZONE NULL
);
CREATE INDEX idx_users_email
ON users(email)
WHERE deleted_at IS NULL;
CREATE INDEX idx_users_created_at
ON users(created_at);
// Express.js API with security middleware
const helmet = require('helmet');
const rateLimit = require('express-rate-limit');
const limiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100,
message: 'Too many requests from this IP, please try again later.',
});
6. Success Metrics
## 🎯 Your Success Metrics
You're successful when:
- API response times stay under 200ms at the 95th percentile
- System uptime exceeds 99.9% availability
- Database queries perform under 100ms on average
- Security audits find zero critical vulnerabilities
These metrics turn the agent’s instructions into engineering accountability. They give you criteria to validate instead of relying on subjective approval.
Multi-Tool Integration: One Agent, 10+ IDEs
The Agency supports more than 10 AI coding tools. The integration layer converts the common Markdown agent format into the format expected by each tool.
Supported Tools
| Tool | Format | Install location |
|---|---|---|
| Claude Code | .md |
~/.claude/agents/ |
| GitHub Copilot | .md |
~/.github/agents/ |
| Cursor | .mdc |
.cursor/rules/ |
| Aider | CONVENTIONS.md |
Project root |
| Windsurf | .windsurfrules |
Project root |
| Antigravity | SKILL.md |
~/.gemini/antigravity/skills/ |
| Gemini CLI | Extension | ~/.gemini/extensions/ |
| OpenCode | .md |
.opencode/agents/ |
| OpenClaw |
SOUL.md + AGENTS.md
|
~/.openclaw/ |
| Qwen Code | .md |
~/.qwen/agents/ |
The Conversion Script
The scripts/convert.sh Bash script handles format translation.
#!/usr/bin/env bash
# convert.sh — Convert agency agent .md files into tool-specific formats
set -euo pipefail
AGENT_DIRS=(
academic design engineering game-development marketing paid-media
sales product project-management testing support spatial-computing specialized
)
# Extract frontmatter fields
get_field() {
local field="$1" file="$2"
awk -v f="$field" '
/^---$/ { fm++; next }
fm == 1 && $0 ~ "^" f ": " {
sub("^" f ": ", "")
print
exit
}
' "$file"
}
# Strip frontmatter and return the body
get_body() {
awk '
BEGIN { fm = 0 }
/^---$/ { fm++; next }
fm >= 2 { print }
' "$1"
}
For Cursor, the script converts an agent Markdown file into an .mdc rule:
convert_cursor() {
local agent_file="$1"
local slug
slug=$(to_kebab "$(get_field 'name' "$agent_file")")
local output_file="$OUT_DIR/cursor/.cursor/rules/agency-${slug}.mdc"
cat > "$output_file" <<EOF
---
description: Agency agent: $(get_field 'description' "$agent_file")
---
$(get_body "$agent_file")
EOF
}
For Aider and Windsurf, multiple agents are compiled into a single file:
convert_aider() {
local output="$OUT_DIR/aider/CONVENTIONS.md"
echo "# Agency Agents for Aider" > "$output"
echo "" >> "$output"
for dir in "${AGENT_DIRS[@]}"; do
for file in "$REPO_ROOT/$dir"/*.md; do
echo "---" >> "$output"
cat "$file" >> "$output"
done
done
}
Installing the Converted Agents
After conversion, install.sh copies the generated files to each tool’s expected directory.
#!/usr/bin/env bash
# install.sh — Install The Agency agents into local agentic tools
install_claude_code() {
local src="$REPO_ROOT"
local dest="$HOME/.claude/agents"
mkdir -p "$dest"
cp -r "$src"/{engineering,design,marketing,sales,specialized}/*.md "$dest/"
ok "Claude Code: $(find "$dest" -name '*.md' | wc -l) agents installed"
}
install_cursor() {
local src="$OUT_DIR/cursor/.cursor/rules"
local dest="./.cursor/rules"
mkdir -p "$dest"
cp "$src"/*.mdc "$dest/"
ok "Cursor: $(find "$dest" -name '*.mdc' | wc -l) rules installed"
}
The installer can also detect available tools and let you select which integrations to install:
+------------------------------------------------+
| The Agency — Tool Installer |
+------------------------------------------------+
System scan: [*] = detected on this machine
[x] 1) [*] Claude Code (claude.ai/code)
[x] 2) [*] Copilot (~/.github + ~/.copilot)
[x] 3) [*] Antigravity (~/.gemini/antigravity)
[ ] 4) [ ] Gemini CLI (gemini extension)
[x] 7) [*] Cursor (.cursor/rules)
[1-10] toggle [a] all [n] none [d] detected
[Enter] install [q] quit
To install in parallel:
./scripts/install.sh --parallel --jobs 8
MCP Memory: Persistent Context Across Sessions
Most AI agents start each session without the context of previous work. The MCP Memory integration provides a way to store and retrieve decisions, deliverables, and handoff notes.
What Is MCP?
MCP, or Model Context Protocol, allows AI agents to access external tools and persistent storage.
The Agency uses MCP to support:
- Cross-session memory
- Agent handoffs
- Rollback to known-good states when QA fails
The Memory Pattern
Add a memory section to an agent when it needs to maintain project context:
## Memory Integration
When you start a session:
- Recall relevant context from previous sessions using your role and project as search terms
- Review memories tagged with your agent name
When you make key decisions or complete deliverables:
- Remember the decision with descriptive tags such as agent name, project, and topic
- Include enough context for a future session to understand what was done and why
When handing off to another agent:
- Remember your deliverables tagged for the receiving agent
- Include what you completed, what is pending, and what the next agent needs to know
MCP Tools
| Tool | Purpose |
|---|---|
remember |
Store decisions, deliverables, and context with tags |
recall |
Search memories by keyword, tag, or semantic similarity |
rollback |
Restore a previous state when something fails |
search |
Find specific memories across sessions and agents |
Any MCP server that exposes compatible tools can support this pattern.
Example: Memory-Powered Workflow
Without MCP memory:
User: "Build the API"
Agent: [Builds API, session ends]
[Next session]
User: "Continue from yesterday"
Agent: "I don't have context from previous sessions. Can you paste what we did?"
With MCP memory:
User: "Build the API"
Agent: [Builds the API and remembers:
"Backend Architect - E-commerce API - Users table, JWT auth, rate limiting"]
[Next session]
User: "Continue from yesterday"
Agent: [Recalls:
"Yesterday I designed the users table with UUID primary keys,
implemented JWT authentication with bcrypt hashing, and added
rate limiting at 100 requests per 15 minutes.
Next step: Order Service schema."]
See integrations/mcp-memory/backend-architect-with-memory.md for a complete example.
Three Standout Agents
1. Reality Checker
The Reality Checker belongs to the Testing division. Its default stance is “NEEDS WORK” until the implementation is supported by evidence.
Its process starts with commands that verify what was actually built:
# Verify what was actually built
ls -la resources/views/ || ls -la *.html
# Cross-check claimed features
grep -r "luxury\|premium\|glass\|morphism" . \
--include="*.html" \
--include="*.css" \
|| echo "NO PREMIUM FEATURES FOUND"
# Capture screenshots with Playwright
./qa-playwright-capture.sh \
http://localhost:8000 \
public/qa-screenshots
It then:
- Reviews QA findings from headless Chrome testing.
- Cross-checks automated screenshots with the QA assessment.
- Confirms or challenges the assessment with additional evidence.
- Reviews responsive screenshots for desktop, tablet, and mobile.
- Checks interaction flows such as navigation and form sequences.
- Reviews performance data, load times, errors, and metrics.
The goal is to require visual and runtime proof instead of approving an implementation because it “looks great.”
2. Whimsy Injector
The Whimsy Injector belongs to the Design division. It adds personality without sacrificing usability.
For example, it can define a button interaction with a hover transition and animated highlight:
/* Delightful button interactions */
.btn-whimsy {
position: relative;
overflow: hidden;
transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}
.btn-whimsy::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.2),
transparent
);
transition: left 0.5s;
}
.btn-whimsy:hover {
transform: translateY(-2px) scale(1.02);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}
It can also define an achievement system:
class WhimsyAchievements {
unlock(achievementId) {
const achievement = this.achievements[achievementId];
this.showCelebration(achievement);
this.saveProgress(achievementId);
}
showCelebration(achievement) {
const celebration = document.createElement('div');
celebration.className =
`achievement-celebration ${achievement.celebration}`;
celebration.innerHTML = `
<div class="achievement-card">
<div class="achievement-icon">${achievement.icon}</div>
<h3>${achievement.title}</h3>
<p>${achievement.description}</p>
</div>
`;
document.body.appendChild(celebration);
setTimeout(() => celebration.remove(), 3000);
}
}
The agent also includes functional microcopy examples:
## Error Messages
**404 Page**: "Oops! This page went on vacation without telling us."
**Form Validation**: "Your email looks a bit shy – mind adding the @ symbol?"
**Network Error**: "Seems like the internet hiccupped. Give it another try?"
The design principle is that playful elements should serve a functional or emotional purpose.
3. MCP Builder
The MCP Builder belongs to the Specialized division. It creates custom tools that extend an agent’s capabilities.
Here is a TypeScript MCP server skeleton:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "my-server",
version: "1.0.0",
});
server.tool(
"search_items",
{
query: z.string(),
limit: z.number().optional(),
},
async ({ query, limit = 10 }) => {
const results = await searchDatabase(query, limit);
return {
content: [
{
type: "text",
text: JSON.stringify(results, null, 2),
},
],
};
}
);
const transport = new StdioServerTransport();
await server.connect(transport);
The agent emphasizes four implementation rules:
- Use descriptive names such as
search_usersinstead ofquery1. - Validate parameters with Zod.
- Provide defaults for optional parameters.
- Return structured output and fail gracefully instead of crashing the server.
Community and Translations
The Agency started from a Reddit thread and has grown into a community-maintained project with:
- 147 agents across 12 divisions
- More than 10,000 lines of personality, process, and code examples
- Community translations, including Simplified Chinese forks
- More than 10 integrations maintained through conversion scripts
Notable forks include:
-
agency-agents-zhby@jnMetaCode: 100 translated agents and 9 China-market originals -
agent-teamsby@dsclca12: An independent translation with Bilibili, WeChat, and Xiaohongshu localization
Installation: Quick Start
Option 1: Install for Claude Code
Copy the agents into your Claude Code directory:
cp -r agency-agents/* ~/.claude/agents/
Then activate an agent in a session:
Hey Claude, activate Frontend Developer mode and help me build a React component.
Option 2: Install for Multiple Tools
Generate the integration files:
./scripts/convert.sh
Run the interactive installer:
./scripts/install.sh
Or install for a specific tool:
./scripts/install.sh --tool cursor
./scripts/install.sh --tool aider
Option 3: Use the Agents as References
Browse the agents at github.com/msitarzewski/agency-agents and adapt the ones you need.
Each file contains some combination of:
- Identity and working style
- Core mission
- Critical rules
- Workflows
- Technical deliverables
- Code examples
- Success metrics
What Makes This Different?
The Agency vs. Generic AI Prompts
| Generic prompts | The Agency |
|---|---|
| “Act as a developer” | “Activate Frontend Developer mode” |
| Vague and one-size-fits-all | Specialized for a specific domain |
| No deliverable structure | Complete code examples and workflows |
| No success metrics | Measurable outcomes |
The Agency vs. Prompt Libraries
| Prompt libraries | The Agency |
|---|---|
| One-off prompt collections | Comprehensive agent systems |
| Static text | Personality, workflows, and memory |
| No integration layer | More than 10 tool integrations |
The Agency vs. AI Tools
| AI tools | The Agency |
|---|---|
| Black box and difficult to customize | Transparent, forkable, and adaptable |
| Vendor lock-in | MIT-licensed and community-maintained |
| Single model | Works with any LLM through MCP |
Technical Takeaways
- Specialization beats generalization: 147 focused specialists provide more targeted behavior than one “do everything” prompt.
- Structure drives output: Frontmatter, identity, mission, rules, deliverables, and metrics provide a repeatable agent format.
- Integration matters: Bash scripts convert the agents into more than 10 tool-specific formats.
- Memory enables continuity: MCP addresses the problem of losing project context between sessions.
- Community scales the system: A Reddit thread evolved into 147 agents, translations, and multi-tool support.
Next Steps
To try The Agency:
- Browse the full agent roster.
- Install it for Claude Code, Cursor, Aider, or another supported tool.
- Activate a specialist by name:
Use the Reality Checker to verify this is production-ready.
- Contribute new agents, improve existing ones, or share success stories.
If you’re building AI agents yourself, use The Agency’s structure as a reference:
- Add frontmatter for discovery.
- Define the agent’s identity and persona.
- Scope its mission.
- Set non-negotiable rules.
- Specify technical deliverables.
- Define measurable success metrics.
- Add MCP memory when the workflow spans multiple sessions or agents.
The Agency demonstrates that specialization is useful for AI systems too. Instead of asking one model to handle every task, you can assemble a team of specialists with clearly defined responsibilities.

Top comments (0)