The Agency adalah koleksi *open-source* dari 147 agen AI khusus untuk Claude Code, Cursor, Aider, Windsurf, GitHub Copilot, dan lainnya. Setiap agen memiliki kepribadian yang berbeda, hasil teknis yang dapat disampaikan, dan metrik keberhasilan. Pembahasan teknis mendalam ini mencakup arsitektur agen, integrasi multi-alat, memori MCP, dan *bash script* yang menggerakkan semuanya.
Anda mungkin sudah tahu prosedurnya: “Bertindaklah sebagai pengembang senior” diikuti dengan saran umum yang bisa diterapkan pada tugas *coding* apa pun. The Agency mengambil pendekatan yang berbeda. Alih-alih satu *prompt* yang mencoba melakukan segalanya, ia menawarkan 147 spesialis yang diorganisir menjadi 12 divisi.
Bayangkan ini sebagai membangun agensi layanan lengkap, kecuali mereka adalah agen AI yang tidak pernah tidur, tidak pernah mengeluh, dan selalu memberikan hasil.
Apa Itu The Agency?
| Fitur | Detail |
|---|---|
| Total Agen | 147 agen spesialis di 12 divisi |
| Format | File Markdown dengan *frontmatter* YAML (nama, deskripsi, warna, emoji) |
| Integrasi | Bekerja dengan Claude Code, Cursor, Aider, Windsurf, GitHub Copilot, Gemini CLI, OpenCode, OpenClaw, Qwen Code |
| Lisensi | MIT — gratis untuk penggunaan pribadi dan komersial |
| Asal | Dimulai dari *thread* Reddit, sekarang dikelola komunitas |
| Inovasi Utama | Agen berbasis kepribadian dengan hasil yang dapat disampaikan dan metrik keberhasilan, bukan *prompt* generik |

Versi singkatnya: The Agency menggantikan “Bertindaklah sebagai pengembang” dengan “Aktifkan mode Pengembang *Frontend*” — dan agen Pengembang *Frontend* benar-benar tahu React, Vue, Angular, Core Web Vitals, dan kepatuhan aksesibilitas.
Struktur Repositori: 12 Divisi, 147 Agen
The Agency berada di github.com/msitarzewski/agency-agents. Agen-agen diorganisir menjadi 12 divisi yang mencerminkan bagan organisasi agensi nyata:
agency-agents/
├── engineering/ # 20+ agen: Frontend, Backend, DevOps, AI, Mobile, Security
├── design/ # 8 agen: UI Designer, UX Researcher, Brand Guardian, Whimsy Injector
├── marketing/ # 20+ agen: Growth Hacker, SEO, TikTok, Reddit, LinkedIn
├── sales/ # 8 agen: Discovery Coach, Deal Strategist, Sales Engineer
├── product/ # 5 agen: Product Manager, Trend Researcher, Feedback Synthesizer
├── project-management/ # 6 agen: Studio Producer, Project Shepherd, Experiment Tracker
├── testing/ # 8 agen: Reality Checker, Evidence Collector, API Tester
├── support/ # 6 agen: Support Responder, Analytics Reporter, Legal Compliance
├── spatial-computing/ # 6 agen: XR Architect, visionOS Engineer, Metal Developer
├── specialized/ # 30+ agen: MCP Builder, Blockchain Auditor, Compliance Auditor
├── game-development/ # 20+ agen: Unity Architect, Unreal Systems, Godot Scripter, Roblox
└── academic/ # 5 agen: Anthropologist, Historian, Psychologist, Narratologist
Setiap divisi berisi agen dengan keahlian mendalam. Divisi Rekayasa saja mencakup Pengembang *Frontend*, Arsitek *Backend*, Automator DevOps, Insinyur Keamanan, dan bahkan Insinyur *Firmware Embedded*.
Anatomi Agen: Di Balik Spesialis AI 400 Baris
Setiap agen mengikuti struktur yang sama. Berikut adalah rincian menggunakan agen Arsitek *Backend* sebagai contoh:
*Frontmatter* (YAML)
---
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.
---
Metadata ini bukan sekadar hiasan. Alat seperti Cursor dan Claude Code menggunakan bidang name dan description untuk penemuan agen. emoji memberikan identifikasi visual di antarmuka obrolan.
Identitas & Memori
## 🧠 Identitas & Memori Anda
- **Peran**: Spesialis arsitektur sistem dan pengembangan sisi server
- **Kepribadian**: Strategis, berfokus pada keamanan, berorientasi skalabilitas, terobsesi pada keandalan
- **Memori**: Anda mengingat pola arsitektur yang berhasil, optimasi kinerja, dan kerangka kerja keamanan
- **Pengalaman**: Anda telah melihat sistem berhasil melalui arsitektur yang tepat dan gagal karena jalan pintas teknis
Bagian ini menetapkan persona dan batas keahlian agen. Ini bukan hanya teks pelengkap — ini mempersiapkan LLM untuk mengadopsi pola pikir tertentu.
Misi Inti
## 🎯 Misi Inti Anda
### Keunggulan Rekayasa Data/Skema
- Mendefinisikan dan memelihara skema data dan spesifikasi indeks
- Merancang struktur data yang efisien untuk *dataset* skala besar (100rb+ entitas)
- Menerapkan *pipeline* ETL untuk transformasi dan penyatuan data
- Membuat lapisan persistensi berperforma tinggi dengan waktu kueri di bawah 20ms
Setiap item misi mencakup target yang terukur. Perhatikan “waktu kueri di bawah 20ms” dan “100rb+ entitas” — ini bukan tujuan yang samar.
Aturan Kritis
## 🚨 Aturan Kritis yang Harus Anda Ikuti
### Arsitektur Berfokus Keamanan
- Menerapkan strategi pertahanan berlapis di semua lapisan sistem
- Menggunakan prinsip hak istimewa paling rendah untuk semua layanan dan akses basis data
- Mengenkripsi data saat tidak aktif dan saat dalam transmisi menggunakan standar keamanan terkini
Aturan adalah batasan yang tidak dapat dinegosiasikan. Mereka mengesampingkan perilaku LLM umum.
Hasil Teknis yang Dapat Disampaikan
Di sinilah agen membedakan diri dari *prompt* generik. Arsitek *Backend* menyediakan kode lengkap yang dapat dijalankan:
-- Desain Skema Basis Data E-commerce
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);
// API Express.js dengan middleware keamanan
const helmet = require('helmet');
const rateLimit = require('express-rate-limit');
const limiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100,
message: 'Terlalu banyak permintaan dari IP ini, silakan coba lagi nanti.',
});
Metrik Keberhasilan
## 🎯 Metrik Keberhasilan Anda
Anda berhasil ketika:
- Waktu respons API tetap di bawah 200ms untuk persentil ke-95
- Waktu aktif sistem melebihi 99.9% ketersediaan
- Kueri basis data berkinerja di bawah rata-rata 100ms
- Audit keamanan tidak menemukan kerentanan kritis
Setiap agen mendefinisikan hasil yang terukur. Ini bukan afirmasi terapi — ini adalah akuntabilitas rekayasa.
Integrasi Multi-Alat: Satu Agen, 10 IDE
The Agency bekerja di lebih dari 10 alat *coding* AI. Berikut adalah cara kerja lapisan integrasi:
Alat yang Didukung
| Alat | Format | Lokasi Pemasangan |
|---|---|---|
| Claude Code | .md |
~/.claude/agents/ |
| GitHub Copilot | .md |
~/.github/agents/ |
| Cursor | .mdc |
.cursor/rules/ |
| Aider | CONVENTIONS.md |
Akar Proyek |
| Windsurf | .windsurfrules |
Akar Proyek |
| Antigravity | SKILL.md |
~/.gemini/antigravity/skills/ |
| Gemini CLI | Ekstensi | ~/.gemini/extensions/ |
| OpenCode | .md |
.opencode/agents/ |
| OpenClaw | SOUL.md + AGENTS.md |
~/.openclaw/ |
| Qwen Code | .md |
~/.qwen/agents/ |
*Script* Konversi (convert.sh)
*Bash script* scripts/convert.sh menangani terjemahan format. Berikut adalah arsitekturnya:
#!/usr/bin/env bash
# convert.sh — Mengonversi file .md agen agensi menjadi format khusus alat
set -euo pipefail
AGENT_DIRS=(
academic design engineering game-development marketing paid-media
sales product project-management testing support spatial-computing specialized
)
# Mengekstrak bidang frontmatter
get_field() {
local field="$1" file="$2"
awk -v f="$field" '
/^---$/ { fm++; next }
fm == 1 && $0 ~ "^" f ": " { sub("^" f ": ", ""); print; exit }
' "$file"
}
# Menghapus frontmatter, mengembalikan isi
get_body() {
awk 'BEGIN{fm=0} /^---$/{fm++; next} fm>=2{print}' "$1"
}
Untuk Cursor, *script* ini mengonversi file .md ke format aturan .mdc:
convert_cursor() {
local agent_file="$1"
local slug=$(to_kebab "$(get_field 'name' "$agent_file")")
local output_file="$OUT_DIR/cursor/.cursor/rules/agency-${slug}.mdc"
cat > "$output_file" << EOF
---
description: Agen agensi: $(get_field 'description' "$agent_file")
---
$(get_body "$agent_file")
EOF
}
Untuk Aider dan Windsurf, semua agen dikompilasi menjadi satu file:
convert_aider() {
local output="$OUT_DIR/aider/CONVENTIONS.md"
echo "# Agen Agensi untuk 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
}
*Script* Instalasi (install.sh)
Setelah konversi, install.sh menyalin file ke direktori khusus alat:
#!/usr/bin/env bash
# install.sh — Menginstal agen The Agency ke dalam alat agen lokal Anda
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) agen terinstal"
}
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) aturan terinstal"
}
*Script* ini mendukung pemilihan interaktif:
+------------------------------------------------+
| The Agency — Pemasang Alat |
+------------------------------------------------+
Pemindaian sistem: [*] = terdeteksi di mesin ini
[x] 1) [*] Claude Code (claude.ai/code)
[x] 2) [*] Copilot (~/.github + ~/.copilot)
[x] 3) [*] Antigravity (~/.gemini/antigravity)
[ ] 4) [ ] Gemini CLI (ekstensi gemini)
[x] 7) [*] Cursor (.cursor/rules)
[1-10] alihkan [a] semua [n] tidak ada [d] terdeteksi
[Enter] instal [q] keluar
Eksekusi paralel mempercepat instalasi multi-alat:
./scripts/install.sh --parallel --jobs 8
Memori MCP: Konteks Persisten Lintas Sesi
Secara *default*, agen AI memulai setiap sesi dari awal. Integrasi Memori MCP mengubah hal itu.
Apa Itu MCP?
MCP (Model Context Protocol) adalah protokol bagi agen AI untuk mengakses alat eksternal dan penyimpanan persisten. The Agency menggunakan MCP untuk memungkinkan:
- Memori lintas sesi: Agen mengingat keputusan dari sesi sebelumnya
- Serah terima agen: Satu agen dapat meninggalkan konteks untuk agen lain
- *Rollback* saat gagal: Memulihkan ke keadaan baik yang diketahui ketika QA gagal
Pola Memori
Tambahkan bagian ini ke agen mana pun untuk mengaktifkan memori MCP:
## Integrasi Memori
Ketika Anda memulai sesi:
- Ingat kembali konteks yang relevan dari sesi sebelumnya menggunakan peran dan proyek Anda sebagai istilah pencarian
- Tinjau memori apa pun yang ditandai dengan nama agen Anda
Ketika Anda membuat keputusan penting atau menyelesaikan hasil:
- Ingat keputusan tersebut dengan tag deskriptif (nama agen, proyek, topik)
- Sertakan konteks yang cukup agar sesi di masa mendatang dapat memahami apa yang dilakukan dan alasannya
Ketika menyerahkan ke agen lain:
- Ingat hasil Anda yang ditandai untuk agen penerima
- Sertakan: apa yang Anda selesaikan, apa yang tertunda, apa yang perlu diketahui agen berikutnya
Alat MCP
Server MCP mana pun yang mengekspos alat-alat ini berfungsi:
| Alat | Tujuan |
|---|---|
remember |
Menyimpan keputusan, hasil, konteks dengan tag |
recall |
Mencari memori berdasarkan kata kunci, tag, atau kesamaan semantik |
rollback |
Memulihkan ke keadaan sebelumnya ketika terjadi kegagalan |
search |
Menemukan memori spesifik di seluruh sesi dan agen |
Contoh: Alur Kerja Bertenaga Memori
Tanpa memori MCP:
Pengguna: "Buat API"
Agen: [Membangun API, sesi berakhir]
[Sesi berikutnya]
Pengguna: "Lanjutkan dari kemarin"
Agen: "Saya tidak memiliki konteks dari sesi sebelumnya. Bisakah Anda menempelkan apa yang kita lakukan?"
Dengan memori MCP:
Pengguna: "Buat API"
Agen: [Membangun API, mengingat: "Arsitek Backend - API E-commerce - Tabel Pengguna, otentikasi JWT, pembatasan kecepatan"]
[Sesi berikutnya]
Pengguna: "Lanjutkan dari kemarin"
Agen: [Mengingat: "Kemarin saya merancang tabel pengguna dengan kunci utama UUID, menerapkan otentikasi JWT dengan hashing bcrypt, dan menambahkan pembatasan kecepatan pada 100 permintaan per 15 menit. Langkah selanjutnya: skema Layanan Pemesanan."]
Lihat integrations/mcp-memory/backend-architect-with-memory.md untuk contoh lengkap.
Agen Unggulan: Tiga Pembahasan Mendalam
1. Reality Checker (Divisi Pengujian)
Reality Checker menghentikan persetujuan fantasi. Sikap *default*: “PERLU PERBAIKAN” sampai terbukti sebaliknya.
## 🚨 Proses Wajib Anda
### LANGKAH 1: Perintah Pengecekan Realitas (JANGAN PERNAH MELEWATKAN)
```bash
# Verifikasi apa yang sebenarnya dibangun
ls -la resources/views/ || ls -la *.html
# Memeriksa ulang fitur yang diklaim
grep -r "luxury\|premium\|glass\|morphism" . --include="*.html" --include="*.css" || echo "TIDAK ADA FITUR PREMIUM DITEMUKAN"
# Jalankan tangkapan layar Playwright profesional
./qa-playwright-capture.sh http://localhost:8000 public/qa-screenshots
LANGKAH 2: Validasi Silang QA
- Tinjau temuan agen QA dari pengujian Chrome *headless*
- Periksa silang tangkapan layar otomatis dengan penilaian QA
- Konfirmasi atau tantang penilaian QA dengan bukti tambahan
LANGKAH 3: Validasi *End-to-End*
- Analisis responsive-desktop.png, responsive-tablet.png, responsive-mobile.png
- Periksa alur interaksi: urutan nav--click.png, form-.png
- Tinjau data kinerja aktual (waktu muat, kesalahan, metrik)
Agen ini membutuhkan **bukti visual** sebelum menyetujui apa pun. Tidak ada lagi "Kelihatannya bagus!" tanpa bukti.
---
### 2. Whimsy Injector (Divisi Desain)
Whimsy Injector menambahkan kepribadian tanpa mengorbankan kegunaan.
```css
/* Interaksi Tombol yang Menyenangkan */
.btn-whimsy {
position: relative;
overflow: hidden;
transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
&::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;
}
&:hover {
transform: translateY(-2px) scale(1.02);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}
}
// Sistem Prestasi dengan Whimsy
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);
}
}
Setiap elemen menyenangkan harus melayani tujuan fungsional atau emosional. Agen ini mencakup perpustakaan *microcopy* lengkap:
## Pesan Kesalahan
**Halaman 404**: "Ups! Halaman ini pergi berlibur tanpa memberi tahu kami."
**Validasi Formulir**: "Email Anda terlihat sedikit malu – maukah Anda menambahkan simbol @?"
**Kesalahan Jaringan**: "Sepertinya internet terhenti sebentar. Coba lagi?"
3. MCP Builder (Divisi Khusus)
MCP Builder menciptakan alat kustom yang memperluas kemampuan agen AI.
// Kerangka server TypeScript MCP
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);
Aturan kritis:
- Nama alat deskriptif:
search_usersbukanquery1— agen memilih alat berdasarkan nama - Parameter bertipe dengan Zod: Setiap input divalidasi, parameter opsional memiliki *default*
- Output terstruktur: Kembalikan JSON untuk data, *markdown* untuk konten yang dapat dibaca manusia
- Gagal dengan anggun: Kembalikan pesan kesalahan, jangan pernah *crash* server
Komunitas & Terjemahan
The Agency dimulai dari *thread* Reddit. Sekarang memiliki:
- 147 agen di 12 divisi
- 10.000+ baris kepribadian, proses, dan contoh kode
- Terjemahan komunitas: Bahasa Mandarin Sederhana (dua *fork* independen), dengan lebih banyak lagi yang sedang berlangsung
- Dukungan multi-alat: Lebih dari 10 integrasi yang dikelola melalui *script* konversi
*Fork* yang menonjol:
agency-agents-zholeh @jnMetaCode: 100 agen yang diterjemahkan + 9 *original* pasar Chinaagent-teamsoleh @dsclca12: Terjemahan independen dengan lokalisasi Bilibili, WeChat, Xiaohongshu
Instalasi: Mulai Cepat
Opsi 1: Claude Code (Direkomendasikan)
# Salin agen ke direktori Claude Code Anda
cp -r agency-agents/* ~/.claude/agents/
# Aktifkan di sesi mana pun:
"Hai Claude, aktifkan mode Pengembang Frontend dan bantu saya membangun komponen React"
Opsi 2: Instalasi Multi-Alat
# Langkah 1: Hasilkan file integrasi
./scripts/convert.sh
# Langkah 2: Instal secara interaktif (mendeteksi alat secara otomatis)
./scripts/install.sh
# Atau instal alat tertentu secara langsung
./scripts/install.sh --tool cursor
./scripts/install.sh --tool aider
Opsi 3: Gunakan sebagai Referensi
Jelajahi agen-agen di github.com/msitarzewski/agency-agents dan sesuaikan yang Anda butuhkan. Setiap file berisi identitas, alur kerja, hasil, dan contoh kode.
Apa yang Membuat Ini Berbeda?
vs. *Prompt* AI Generik
| *Prompt* Generik | The Agency |
|---|---|
| “Bertindaklah sebagai pengembang” | “Aktifkan mode Pengembang *Frontend*” |
| Samar, cocok untuk semua | Spesialisasi mendalam per domain |
| Tidak ada struktur hasil | Contoh kode lengkap, alur kerja |
| Tidak ada metrik keberhasilan | Hasil terukur yang didefinisikan |
vs. Pustaka *Prompt*
| Pustaka *Prompt* | The Agency |
|---|---|
| Koleksi *prompt* sekali pakai | Sistem agen yang komprehensif |
| Teks statis | Kepribadian + alur kerja + memori |
| Tidak ada integrasi | Integrasi 10+ alat |
vs. Alat AI
| Alat AI | The Agency |
|---|---|
| Kotak hitam, tidak dapat disesuaikan | Transparan, dapat di-*fork*, dapat diadaptasi |
| Ketergantungan vendor (*vendor lock-in*) | Lisensi MIT, dikelola komunitas |
| Model tunggal | Bekerja dengan LLM apa pun melalui MCP |
Poin Penting Teknis
- Spesialisasi mengalahkan generalisasi: 147 spesialis mengungguli satu *prompt* “melakukan segalanya”
- Struktur mendorong hasil: *Frontmatter* + Identitas + Misi + Aturan + Hasil + Metrik
- Integrasi itu penting: *Bash script* mengonversi agen ke 10+ format secara otomatis
- Memori memungkinkan kesinambungan: Protokol MCP memecahkan masalah “Saya tidak ingat kemarin”
- Komunitas berskala: *Thread* Reddit → 147 agen → terjemahan → dukungan multi-alat
Langkah Selanjutnya
Ingin mencoba The Agency?
- Jelajahi daftar agen lengkap
- Instal untuk alat pilihan Anda (Claude Code, Cursor, Aider, dll.)
- Aktifkan spesialis berdasarkan nama: “Gunakan Reality Checker untuk memverifikasi ini siap produksi”
- Berkontribusi: Tambahkan agen baru, tingkatkan yang sudah ada, bagikan kisah sukses
Membangun agen AI sendiri? Pelajari anatomi agen: *frontmatter* untuk penemuan, identitas untuk persona, misi untuk cakupan, aturan untuk batasan, hasil untuk keluaran, metrik untuk akuntabilitas.
The Agency membuktikan bahwa spesialisasi bukan hanya untuk manusia. Terkadang tim AI terbaik bukanlah satu model yang mencoba melakukan segalanya — melainkan 147 spesialis yang masing-masing tahu persis apa yang harus mereka lakukan.
