DEV Community

Cover image for Đại Lý Agent Là Gì?
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Đại Lý Agent Là Gì?

Agency là một bộ sưu tập mã nguồn mở gồm 147 tác nhân AI chuyên biệt cho Claude Code, Cursor, Aider, Windsurf, GitHub Copilot và nhiều công cụ khác. Mỗi tác nhân có cá tính, sản phẩm kỹ thuật cần bàn giao, cùng các chỉ số thành công rõ ràng. Bài viết này hướng dẫn chi tiết kiến trúc tác nhân, cách tích hợp đa công cụ, bộ nhớ MCP và các tập lệnh bash để triển khai tự động.

Dùng thử Apidog ngay hôm nay

💡Nếu bạn muốn tích hợp các tác nhân này vào quy trình làm việc API thực tế, bạn nên sử dụng nền tảng API mạnh mẽ như Apidog. Apidog giúp bạn thiết kế, mô phỏng, kiểm thử và tài liệu hóa API mà các tác nhân sử dụng, đồng thời cho phép kiểm tra đồng bộ giữa các endpoint và tác nhân chuyên biệt. Dùng thử Apidog miễn phí để thiết lập môi trường sandbox cho backend “Agency-powered”.

Agency là gì?

Bạn có thể đã quen với các prompt kiểu: “Hãy đóng vai một nhà phát triển cấp cao” với các chỉ dẫn chung chung. Agency cung cấp 147 chuyên gia AI, tổ chức thành 12 bộ phận chuyên biệt, mỗi tác nhân đều có phạm vi và đầu ra rõ ràng.

Hãy hình dung như bạn sở hữu một agency dịch vụ “full-stack” — nhưng đội ngũ của bạn là các agent AI luôn sẵn sàng, không mệt mỏi, không phàn nàn và luôn hoàn thành công việc.

Tính năng Chi tiết
Tổng số tác nhân 147 tác nhân chuyên biệt, chia thành 12 bộ phận
Định dạng Markdown với YAML frontmatter (tên, mô tả, màu, emoji)
Tích hợp Claude Code, Cursor, Aider, Windsurf, GitHub Copilot, Gemini CLI, OpenCode, OpenClaw, Qwen Code
Giấy phép MIT (Cá nhân & thương mại)
Nguồn gốc Từ Reddit, hiện cộng đồng duy trì
Đổi mới chính Tác nhân có tính cách, sản phẩm bàn giao, chỉ số thành công — không phải prompt chung chung

Tóm tắt: Agency thay thế “Đóng vai một nhà phát triển” bằng các chế độ tác nhân thực thụ — ví dụ: “Nhà phát triển Giao diện người dùng” sẽ hiểu sâu về React, Vue, Angular, Web Vitals, accessibility.

Cấu trúc kho lưu trữ: 12 bộ phận, 147 tác nhân

Agency lưu trữ tại github.com/msitarzewski/agency-agents. Cấu trúc thư mục:

agency-agents/
├── engineering/          # Frontend, Backend, DevOps, AI, Mobile, Security
├── design/               # UI Designer, UX Researcher, Brand Guardian, Whimsy
├── marketing/            # Growth Hacker, SEO, TikTok, Reddit, LinkedIn
├── sales/                # Discovery Coach, Negotiation Strategist, Sales Engineer
├── product/              # Product Manager, Trend Researcher, Feedback Synthesizer
├── project-management/   # Studio Producer, Project Lead, QA Follower
├── testing/              # Reality Checker, Evidence Collector, API Tester
├── support/              # Support Responder, Analytics Reporter, Compliance
├── spatial-computing/    # XR Architect, visionOS Engineer, Metal Developer
├── specialized/          # MCP Builder, Blockchain Auditor, Compliance Auditor
├── game-development/     # Unity Architect, Unreal System, Godot, Roblox
└── academic/             # Anthropologist, Historian, Psychologist, Narrative Researcher
Enter fullscreen mode Exit fullscreen mode

Mỗi bộ phận gồm nhiều tác nhân chuyên môn sâu, ví dụ: engineering có cả Frontend Developer, Backend Architect, DevOps Automation, Security Engineer,...

Giải phẫu tác nhân: Bên trong một chuyên gia AI

Mỗi agent có cấu trúc chuẩn. Ví dụ với Backend Architect:

Frontmatter (YAML)

---
name: Backend Architect
description: Kiến trúc sư backend cấp cao chuyên về thiết kế hệ thống có khả năng mở rộng, kiến trúc cơ sở dữ liệu, phát triển API và hạ tầng đám mây
color: blue
emoji: 🏗️
vibe: Thiết kế các hệ thống hỗ trợ mọi thứ — cơ sở dữ liệu, API, đám mây, khả năng mở rộng.
---
Enter fullscreen mode Exit fullscreen mode

Các trường này giúp các công cụ như Cursor, Claude Code tìm kiếm tác nhân chính xác. Emoji giúp nhận diện trong UI.

Danh tính & Bộ nhớ

## 🧠 Danh tính & Bộ nhớ của bạn
- **Vai trò**: Chuyên gia kiến trúc hệ thống và phát triển phía máy chủ
- **Tính cách**: Chiến lược, tập trung bảo mật, ưu tiên mở rộng, ám ảnh độ tin cậy
- **Bộ nhớ**: Ghi nhớ mô hình kiến trúc thành công, tối ưu hiệu suất, khung bảo mật
- **Kinh nghiệm**: Đã chứng kiến hệ thống thành công vì kiến trúc tốt, thất bại vì shortcut kỹ thuật
Enter fullscreen mode Exit fullscreen mode

Định hướng LLM vào mindset & phạm vi chuyên môn cụ thể.

Nhiệm vụ cốt lõi

## 🎯 Nhiệm vụ cốt lõi của bạn

### Xuất sắc trong kỹ thuật dữ liệu/schema
- Định nghĩa & duy trì lược đồ dữ liệu, chỉ mục
- Thiết kế cấu trúc dữ liệu hiệu quả cho bộ dữ liệu lớn (100k+ entity)
- Triển khai pipeline ETL cho chuyển đổi & hợp nhất dữ liệu
- Tạo storage layer hiệu năng (truy vấn < 20ms)
Enter fullscreen mode Exit fullscreen mode

Các mục tiêu đều có số liệu cụ thể — tránh mơ hồ.

Quy tắc quan trọng

## 🚨 Các quy tắc quan trọng bạn phải tuân theo

### Kiến trúc ưu tiên bảo mật
- Phòng thủ theo chiều sâu mọi lớp hệ thống
- Nguyên tắc đặc quyền tối thiểu cho service & DB
- Mã hóa dữ liệu lưu trữ & truyền tải với chuẩn hiện hành
Enter fullscreen mode Exit fullscreen mode

Luôn có các constraint rõ ràng.

Sản phẩm kỹ thuật bàn giao

Ví dụ: Mã SQL & API thực tế

-- 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);
Enter fullscreen mode Exit fullscreen mode
// Express.js API với 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.',
});
Enter fullscreen mode Exit fullscreen mode

Chỉ số thành công

## 🎯 Các chỉ số thành công của bạn

Bạn thành công khi:
- API response time < 200ms cho P95
- Uptime > 99.9%
- DB query < 100ms trung bình
- QA không phát hiện lỗ hổng bảo mật nghiêm trọng
Enter fullscreen mode Exit fullscreen mode

Các tiêu chí này giúp đo lường đầu ra.

Tích hợp đa công cụ: Một tác nhân, 10 IDE

Agency hỗ trợ hơn 10 IDE/AI tool. Dưới đây là cách tích hợp.

Công cụ được hỗ trợ

Công cụ Định dạng Vị trí cài đặt
Claude Code .md ~/.claude/agents/
GitHub Copilot .md ~/.github/agents/
Cursor .mdc .cursor/rules/
Aider CONVENTIONS.md Thư mục gốc dự án
Windsurf .windsurfrules Thư mục gốc dự án
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/

Tập lệnh chuyển đổi (convert.sh)

Tập lệnh Bash tự động convert các tệp .md sang định dạng công cụ yêu cầu.

#!/usr/bin/env bash
# convert.sh — Chuyển đổi các tệp .md của tác nhân agency sang định dạng từng công cụ

set -euo pipefail

AGENT_DIRS=(
  academic design engineering game-development marketing paid-media
  sales product project-management testing support spatial-computing specialized
)

# Trích xuất các trường frontmatter
get_field() {
  local field="$1" file="$2"
  awk -v f="$field" '
    /^---$/ { fm++; next }
    fm == 1 && $0 ~ "^" f ": " { sub("^" f ": ", ""); print; exit }
  ' "$file"
}

# Loại bỏ frontmatter
get_body() {
  awk 'BEGIN{fm=0} /^---$/{fm++; next} fm>=2{print}' "$1"
}
Enter fullscreen mode Exit fullscreen mode

Ví dụ convert cho Cursor:

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: Agency agent: $(get_field 'description' "$agent_file")
---
$(get_body "$agent_file")
EOF
}
Enter fullscreen mode Exit fullscreen mode

Cho Aider/Windsurf, gộp tất cả agent vào một file:

convert_aider() {
  local output="$OUT_DIR/aider/CONVENTIONS.md"
  echo "# Các tác nhân Agency cho 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
}
Enter fullscreen mode Exit fullscreen mode

Tập lệnh cài đặt (install.sh)

Sau khi chuyển đổi, chạy install.sh để copy vào đúng thư mục:

#!/usr/bin/env bash
# install.sh — Cài đặt các tác nhân Agency vào các công cụ cục bộ

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: Đã cài đặt $(find "$dest" -name '*.md' | wc -l) tác nhân"
}

install_cursor() {
  local src="$OUT_DIR/cursor/.cursor/rules"
  local dest="./.cursor/rules"
  mkdir -p "$dest"
  cp "$src"/*.mdc "$dest/"
  ok "Cursor: Đã cài đặt $(find "$dest" -name '*.mdc' | wc -l) quy tắc"
}
Enter fullscreen mode Exit fullscreen mode

Chế độ interactive tự động detect công cụ:

  +------------------------------------------------+
  |   The Agency — Trình cài đặt công cụ           |
  +------------------------------------------------+

  Quét hệ thống: [*] = phát hiện trên máy này

  [x]  1)  [*]  Claude Code     (claude.ai/code)
  [x]  2)  [*]  Copilot         (~/.github + ~/.copilot)
  [x]  3)  [*]  Antigravity     (~/.gemini/antigravity)
  [ ]  4)  [ ]  Gemini CLI      (extension gemini)
  [x]  7)  [*]  Cursor          (.cursor/rules)

  [1-10] bật/tắt   [a] tất cả   [n] không   [d] đã phát hiện
  [Enter] cài đặt   [q] thoát
Enter fullscreen mode Exit fullscreen mode

Cài đặt song song nhiều tool:

./scripts/install.sh --parallel --jobs 8
Enter fullscreen mode Exit fullscreen mode

Bộ nhớ MCP: Duy trì ngữ cảnh liên tục

Các agent AI thường “mất trí nhớ” giữa các phiên. Tích hợp MCP (Model Context Protocol) giải quyết vấn đề này.

MCP là gì?

MCP cho phép agent truy cập lưu trữ ngoài, ghi nhớ quyết định, chuyển giao ngữ cảnh và rollback khi QA fail.

Kích hoạt MCP cho agent

Thêm block sau vào agent:

## Tích hợp bộ nhớ

Khi bắt đầu phiên:
- Nhớ lại ngữ cảnh phiên trước bằng vai trò + dự án
- Xem lại memory tag theo tên agent

Khi ra quyết định hoặc hoàn thành sản phẩm:
- Ghi nhớ với tag (agent, dự án, chủ đề)
- Ghi đủ ngữ cảnh để future agent hiểu

Khi chuyển giao:
- Tag bàn giao cho agent mới (xong gì, còn gì, lưu ý gì)
Enter fullscreen mode Exit fullscreen mode

Công cụ MCP

Công cụ Mục đích
remember Lưu quyết định, sản phẩm, ngữ cảnh với tag
recall Tìm memory theo từ khóa, tag, semantic similarity
rollback Quay lại trạng thái trước khi lỗi
search Tìm memory theo session/agent khác nhau

Quy trình làm việc với MCP

Không MCP:

Người dùng: "Xây dựng API"
Tác nhân: [Xây dựng API, phiên kết thúc]

[Phiên tiếp theo]
Người dùng: "Tiếp tục từ hôm qua"
Tác nhân: "Tôi không có ngữ cảnh từ các phiên trước. Bạn có thể dán những gì chúng ta đã làm không?"
Enter fullscreen mode Exit fullscreen mode

Có MCP:

Người dùng: "Xây dựng API"
Tác nhân: [Xây dựng API, ghi nhớ: "Kiến trúc sư Backend - API thương mại điện tử - bảng Người dùng, xác thực JWT, giới hạn tốc độ"]

[Phiên tiếp theo]
Người dùng: "Tiếp tục từ hôm qua"
Tác nhân: [Nhớ lại: "Hôm qua tôi đã thiết kế bảng người dùng với UUID, xác thực JWT bằng bcrypt, giới hạn 100 req/15 phút. Tiếp theo: lược đồ Đơn hàng."]
Enter fullscreen mode Exit fullscreen mode

Xem ví dụ đầy đủ tại integrations/mcp-memory/backend-architect-with-memory.md.

Các tác nhân nổi bật: Đi sâu vào 3 ví dụ thực tiễn

1. Người kiểm tra thực tế (Reality Checker — Testing)

Tác nhân này luôn yêu cầu bằng chứng trước khi approve.

## 🚨 Quy trình bắt buộc

### BƯỚC 1: Lệnh kiểm tra thực tế (KHÔNG BAO GIỜ BỎ QUA)
Enter fullscreen mode Exit fullscreen mode


bash
ls -la resources/views/ || ls -la .html
grep -r "luxury|premium|glass|morphism" . --include="
.html" --include="*.css" || echo "NO PREMIUM FEATURES FOUND"
./qa-playwright-capture.sh http://localhost:8000 public/qa-screenshots

Enter fullscreen mode Exit fullscreen mode


css

Bước 2: Kiểm tra chéo QA

  • Đối chiếu findings từ agent QA
  • So sánh ảnh chụp màn hình tự động với đánh giá của QA
  • Xác nhận hoặc phản biện bằng bằng chứng bổ sung

Bước 3: Xác thực đầu-cuối

  • Phân tích responsive-desktop.png, responsive-tablet.png, responsive-mobile.png
  • Kiểm tra chuỗi nav--click.png, form-.png
  • Xem dữ liệu hiệu suất thực tế

2. Người thổi hồn sáng tạo (Whimsy — Design)

Tác nhân này thêm tính sáng tạo, nhưng luôn giữ usability.

/* Hiệu ứng nút sáng tạo */
.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);
  }
}
Enter fullscreen mode Exit fullscreen mode
// Hệ thống thành tích sáng tạo
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);
  }
}
Enter fullscreen mode Exit fullscreen mode

Microcopy:

## Thông báo lỗi
**Trang 404**: "Ối! Trang này đã đi nghỉ mà không báo cho chúng tôi biết."
**Xác thực biểu mẫu**: "Email của bạn trông hơi nhút nhát – bạn có phiền thêm ký hiệu @ không?"
**Lỗi mạng**: "Có vẻ như internet bị trục trặc. Thử lại lần nữa nhé?"
Enter fullscreen mode Exit fullscreen mode

3. Trình xây dựng MCP (MCP Builder — Specialized)

Tác nhân này xây công cụ mở rộng khả năng agent.

// 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);
Enter fullscreen mode Exit fullscreen mode

Nguyên tắc:

  • Tên tool mô tả rõ chức năng (search_users thay vì query1)
  • Validate tham số bằng Zod, có default
  • Kết quả trả về JSON hoặc markdown
  • Xử lý lỗi rõ ràng, không crash server

Cộng đồng & Bản dịch

Agency bắt đầu từ một chủ đề Reddit, hiện có:

  • 147 tác nhân trên 12 bộ phận
  • 10.000+ dòng mã (personality, quy trình, code sample)
  • Bản dịch cộng đồng: Trung giản thể (2 fork), các ngôn ngữ khác đang triển khai
  • Tích hợp đa công cụ: 10+ IDE/tool, duy trì bằng script convert

Các fork tiêu biểu:

  • agency-agents-zh của @jnMetaCode: 100 tác nhân dịch + 9 tác nhân mới
  • agent-teams của @dsclca12: Dịch độc lập, bản địa hóa cho Bilibili, WeChat, Xiaohongshu

Cài đặt: Bắt đầu nhanh

Tùy chọn 1: Claude Code (Khuyên dùng)

# Copy các agent vào thư mục Claude Code:
cp -r agency-agents/* ~/.claude/agents/

# Kích hoạt trong Claude:
"Chào Claude, kích hoạt chế độ Nhà phát triển Frontend và giúp tôi xây dựng một thành phần React"
Enter fullscreen mode Exit fullscreen mode

Tùy chọn 2: Đa công cụ

# Bước 1: Tạo file tích hợp
./scripts/convert.sh

# Bước 2: Cài đặt (auto detect tool)
./scripts/install.sh

# Hoặc cài đặt riêng
./scripts/install.sh --tool cursor
./scripts/install.sh --tool aider
Enter fullscreen mode Exit fullscreen mode

Tùy chọn 3: Tra cứu tài liệu

Duyệt agent tại github.com/msitarzewski/agency-agents và tùy chỉnh theo nhu cầu. Mỗi file đều có danh tính, quy trình, sản phẩm, ví dụ mã.

Điều gì làm Agency khác biệt?

So với prompt AI chung chung

Lời nhắc chung chung Agency
“Đóng vai một nhà phát triển” “Kích hoạt chế độ Nhà phát triển Frontend”
Mơ hồ, phù hợp mọi trường hợp Chuyên môn hóa từng lĩnh vực
Không có cấu trúc sản phẩm bàn giao Code mẫu hoàn chỉnh, quy trình rõ ràng
Không có chỉ số thành công Định nghĩa kết quả đo lường được

So với thư viện prompt

Thư viện prompt Agency
Bộ sưu tập prompt 1 lần Hệ thống agent toàn diện
Văn bản tĩnh Personality + workflow + memory
Không tích hợp 10+ tích hợp IDE/tool

So với công cụ AI

Công cụ AI Agency
Hộp đen, không tùy biến Minh bạch, fork/adapt dễ dàng
Khóa nhà cung cấp MIT license, cộng đồng maintain
Một mô hình duy nhất Dùng bất kỳ LLM nào qua MCP

Tóm tắt kỹ thuật

  1. Chuyên môn hóa vượt trội tổng quát hóa: 147 chuyên gia > 1 prompt “làm mọi thứ”
  2. Cấu trúc thúc đẩy đầu ra: Frontmatter + Danh tính + Nhiệm vụ + Quy tắc + Sản phẩm + Chỉ số
  3. Tích hợp tự động: Bash script convert sang 10+ định dạng
  4. Bộ nhớ liên tục: MCP giải quyết vấn đề “không nhớ hôm qua”
  5. Cộng đồng mở rộng: Từ Reddit → 147 agent → dịch → tích hợp đa công cụ

Các bước tiếp theo

Muốn thử Agency?

  1. Duyệt danh sách tác nhân đầy đủ
  2. Cài đặt cho công cụ bạn dùng (Claude Code, Cursor, Aider, ...)
  3. Kích hoạt chuyên gia bằng tên: “Sử dụng Reality Checker để kiểm tra production readiness”
  4. Đóng góp: Thêm agent mới, cải tiến agent hiện tại, chia sẻ experience

Tự xây dựng agent AI?

Nghiên cứu cấu trúc: frontmatter (discoverability), danh tính (personality), nhiệm vụ (scope), quy tắc (constraint), bàn giao (output), chỉ số (accountability).

Agency cho thấy: chuyên môn hóa không chỉ dành cho con người. Đôi khi, đội AI tốt nhất không phải là 1 mô hình “tất cả trong một”, mà là 147 chuyên gia — mỗi người biết chính xác việc của mình.

Top comments (0)