หยุดใช้ผู้ช่วย AI ทั่วไปเพียงตัวเดียวสำหรับทุกสิ่ง ตั้งค่า Agent ผู้เชี่ยวชาญ 5 ตัวเพื่อสร้าง API ที่สมบูรณ์: Backend Architect (สถาปนิกแบ็กเอนด์) ออกแบบระบบ, Database Optimizer (ผู้ปรับแต่งฐานข้อมูล) ตรวจสอบ Schema, Frontend Developer (นักพัฒนาส่วนหน้า) สร้างไคลเอนต์, Code Reviewer (ผู้ตรวจสอบโค้ด) ตรวจสอบความปลอดภัย, และ Reality Checker (ผู้ตรวจสอบความเป็นจริง) ตรวจสอบความถูกต้องก่อนนำส่ง
คุณต้องสร้าง API ให้เร็ว สิ่งล่อใจ: ขอให้ AI ตัวเดียวทำทุกอย่าง มันจะออกแบบฐานข้อมูล, เขียน Endpoint, สร้างส่วนหน้า, ตรวจสอบโค้ด และทดสอบผลลัพธ์
นี่คือสิ่งที่เกิดขึ้น: ฐานข้อมูลขาด Index, Endpoint มีช่องโหว่ด้านความปลอดภัย, ส่วนหน้าละเลยสถานะข้อผิดพลาด, และการทดสอบก็เป็นแค่ “ดูดีแล้ว”
Agent ผู้เชี่ยวชาญแก้ไขสิ่งนี้ Agent แต่ละตัวรู้จักโดเมนของตน Agent แต่ละตัวมีรายการตรวจสอบ Agent แต่ละตัวสร้างผลลัพธ์ที่เฉพาะเจาะจง Backend Architect คิดถึงเรื่อง Scale Database Optimizer ระบุ Index ที่ขาดหายไป Code Reviewer พบช่องโหว่ Reality Checker ต้องการหลักฐาน
ในบทช่วยสอนนี้ คุณจะได้ตั้งค่า Agent 5 ตัวจากคอลเลกชัน The Agency และดำเนินการเวิร์กโฟลว์การสร้าง API ที่สมบูรณ์ คุณจะผสานรวมกับ Apidog สำหรับการทดสอบและเอกสารประกอบ API เพื่อให้แน่ใจว่า Endpoint ของคุณได้รับการตรวจสอบความถูกต้องตามข้อกำหนด OpenAPI ก่อนการปรับใช้
Agent 5 ตัวที่คุณจะได้ใช้
| Agent | แผนก | ความรับผิดชอบ |
|---|---|---|
| Backend Architect | วิศวกรรม | การออกแบบ API, Schema ฐานข้อมูล, การตรวจสอบสิทธิ์ |
| Database Optimizer | วิศวกรรม | คำแนะนำ Index, การปรับแต่ง Query |
| Frontend Developer | วิศวกรรม | คอมโพเนนต์ React, ไคลเอนต์ API, การจัดการ State |
| Code Reviewer | วิศวกรรม | การตรวจสอบความปลอดภัย, Type Safety, การจัดการข้อผิดพลาด |
| Reality Checker | การทดสอบ | การตรวจสอบความถูกต้องโดยอาศัยหลักฐาน, หลักฐานภาพหน้าจอ |
ติดตั้ง Agent:
# Clone The Agency repo
git clone https://github.com/msitarzewski/agency-agents.git
cd agency-agents
# Copy agents to Claude Code
cp engineering/engineering-backend-architect.md ~/.claude/agents/
cp engineering/engineering-database-optimizer.md ~/.claude/agents/
cp engineering/engineering-frontend-developer.md ~/.claude/agents/
cp engineering/engineering-code-reviewer.md ~/.claude/agents/
cp testing/testing-reality-checker.md ~/.claude/agents/
ขั้นตอนที่ 1: Backend Architect ออกแบบระบบ
เริ่มเซสชัน Claude Code ใหม่:
Activate Backend Architect mode.
Design a REST API for an e-commerce platform with:
- User authentication (JWT with refresh tokens)
- Product catalog with categories and filtering
- Shopping cart management
- Order processing with status tracking
- Payment webhook integration
Output:
1. OpenAPI 3.0 specification
2. PostgreSQL database schema with relationships
3. Project folder structure (Express.js + TypeScript)
4. Authentication flow diagram
ผลลัพธ์ที่คาดหวัง:
Backend Architect จะส่งออก:
OpenAPI Spec (บางส่วน):
openapi: 3.0.0
info:
title: E-commerce API
version: 1.0.0
paths:
/auth/login:
post:
summary: User login
requestBody:
content:
application/json:
schema:
type: object
properties:
email: { type: string, format: email }
password: { type: string, minLength: 8 }
responses:
'200':
description: JWT tokens
content:
application/json:
schema:
type: object
properties:
accessToken: { type: string }
refreshToken: { type: string }
Schema ฐานข้อมูล:
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()
);
CREATE TABLE products (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL CHECK (price >= 0),
category_id UUID REFERENCES categories(id),
inventory_count INTEGER DEFAULT 0,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
CREATE TABLE orders (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id),
total_amount DECIMAL(10, 2) NOT NULL,
status VARCHAR(50) DEFAULT 'pending',
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
โครงสร้างโฟลเดอร์:
src/
├── controllers/
│ ├── auth.controller.ts
│ ├── products.controller.ts
│ └── orders.controller.ts
├── middleware/
│ ├── auth.middleware.ts
│ └── validation.middleware.ts
├── routes/
│ ├── auth.routes.ts
│ ├── products.routes.ts
│ └── orders.routes.ts
├── services/
│ ├── auth.service.ts
│ ├── products.service.ts
│ └── orders.service.ts
├── models/
│ ├── User.ts
│ ├── Product.ts
│ └── Order.ts
└── index.ts
บันทึกผลลัพธ์ คุณจะส่งมันไปยัง Agent ตัวถัดไป
ขั้นตอนที่ 2: Database Optimizer ตรวจสอบ Schema
เปิดเซสชันใหม่:
Activate Database Optimizer mode.
Review this PostgreSQL schema for an e-commerce API:
[Paste the schema from Step 1]
Check for:
1. Missing indexes on foreign keys and frequently queried columns
2. Query performance on product search (name, category, price range)
3. Proper constraints for data integrity
4. Missing tables for common e-commerce features (reviews, wishlists)
5. Soft delete patterns for audit trails
Output specific ALTER TABLE statements and new table definitions.
ผลลัพธ์ที่คาดหวัง:
คำแนะนำ Index:
-- Add indexes on foreign keys
CREATE INDEX idx_products_category_id ON products(category_id);
CREATE INDEX idx_orders_user_id ON orders(user_id);
-- Add index for product search
CREATE INDEX idx_products_name_search ON products USING gin(to_tsvector('english', name));
CREATE INDEX idx_products_price ON products(price) WHERE inventory_count > 0;
-- Add composite index for category filtering
CREATE INDEX idx_products_category_price ON products(category_id, price);
ตารางที่ขาดหายไป:
CREATE TABLE reviews (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
product_id UUID REFERENCES products(id),
user_id UUID REFERENCES users(id),
rating INTEGER CHECK (rating >= 1 AND rating <= 5),
comment TEXT,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
UNIQUE(product_id, user_id)
);
CREATE TABLE cart_items (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id),
product_id UUID REFERENCES products(id),
quantity INTEGER DEFAULT 1 CHECK (quantity > 0),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
UNIQUE(user_id, product_id)
);
ข้อจำกัดที่จะเพิ่ม:
-- Email format validation
ALTER TABLE users ADD CONSTRAINT chk_email_format
CHECK (email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');
-- Soft delete column
ALTER TABLE products ADD COLUMN deleted_at TIMESTAMP WITH TIME ZONE NULL;
CREATE INDEX idx_products_deleted_at ON products(deleted_at) WHERE deleted_at IS NULL;
นำคำแนะนำเหล่านี้ไปใช้กับ Schema ของคุณ
ขั้นตอนที่ 3: Frontend Developer สร้างไคลเอนต์
เปิดเซสชันใหม่:
Activate Frontend Developer mode.
Build a React dashboard for this e-commerce API:
[Paste OpenAPI spec from Step 1]
Requirements:
- TypeScript with strict mode
- React Query for server state management
- Product list with filters (category, price range, search)
- Shopping cart with real-time updates
- Order history with status tracking
- Proper error handling and loading states
- Responsive design (mobile, tablet, desktop)
Output:
1. Project setup (Vite + React + TypeScript)
2. API client with React Query hooks
3. Core components (ProductList, ProductCard, Cart, OrderHistory)
4. Error boundary and loading skeletons
ผลลัพธ์ที่คาดหวัง:
ไคลเอนต์ API:
// src/lib/api-client.ts
import { QueryClient, useQuery, useMutation } from '@tanstack/react-query';
const API_BASE = 'http://localhost:3000/api';
async function fetcher<T>(endpoint: string, options?: RequestInit): Promise<T> {
const response = await fetch(`${API_BASE}${endpoint}`, {
...options,
headers: {
'Content-Type': 'application/json',
...options?.headers,
},
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.message || 'Request failed');
}
return response.json();
}
export function useProducts(filters?: ProductFilters) {
const params = new URLSearchParams(filters as Record<string, string>);
return useQuery({
queryKey: ['products', filters],
queryFn: () => fetcher<Product[]>(`/products?${params}`),
});
}
export function useAddToCart() {
return useMutation({
mutationFn: (item: CartItem) =>
fetcher<CartItem>('/cart', {
method: 'POST',
body: JSON.stringify(item),
}),
});
}
คอมโพเนนต์รายการสินค้า:
// src/components/ProductList.tsx
import { useProducts } from '@/lib/api-client';
import { ProductCard } from './ProductCard';
import { FilterSidebar } from './FilterSidebar';
import { Skeleton } from './ui/skeleton';
export function ProductList() {
const [filters, setFilters] = useState<ProductFilters>({});
const { data: products, isLoading, error } = useProducts(filters);
if (error) {
return <Alert variant="destructive">{error.message}</Alert>;
}
return (
<div className="flex gap-4">
<FilterSidebar filters={filters} onFilterChange={setFilters} />
<div className="flex-1 grid grid-cols-1 md:grid-cols-3 gap-4">
{isLoading ? (
Array.from({ length: 6 }).map((_, i) => (
<Skeleton key={i} className="h-64" />
))
) : products?.length === 0 ? (
<EmptyState message="No products found" />
) : (
products?.map(product => (
<ProductCard key={product.id} product={product} />
))
)}
</div>
</div>
);
}
ขอบเขตข้อผิดพลาด (Error Boundary):
// src/components/ErrorBoundary.tsx
export class ErrorBoundary extends React.Component<
{ children: React.ReactNode },
{ hasError: boolean; error: Error | null }
> {
constructor(props: { children: React.ReactNode }) {
super(props);
this.state = { hasError: false, error: null };
}
static getDerivedStateFromError(error: Error) {
return { hasError: true, error };
}
render() {
if (this.state.hasError) {
return (
<div className="p-4 bg-red-50 border border-red-200 rounded">
<h2 className="text-lg font-semibold text-red-800">Something went wrong</h2>
<p className="text-red-600">{this.state.error?.message}</p>
<Button onClick={() => window.location.reload()} className="mt-2">
Reload
</Button>
</div>
);
}
return this.props.children;
}
}
ขั้นตอนที่ 4: Code Reviewer ตรวจสอบทุกอย่าง
เปิดเซสชันใหม่:
Activate Code Reviewer mode.
Review this codebase for:
1. Security vulnerabilities:
- SQL injection risks
- XSS vulnerabilities
- CSRF protection
- Authentication bypass possibilities
2. TypeScript strict mode compliance:
- No implicit any
- Proper type definitions
- Null/undefined handling
3. Error handling gaps:
- Uncaught promise rejections
- Missing try/catch blocks
- Silent failures
[Paste the code from Steps 1-3]
Output a report with severity ratings (Critical, High, Medium, Low) and specific fixes.
ผลลัพธ์ที่คาดหวัง:
รายงานความปลอดภัย:
## ปัญหาสำคัญ (Critical Issues)
### 1. SQL Injection ในการค้นหาสินค้า
**ตำแหน่ง:** `src/controllers/products.controller.ts:24`
**ปัญหา:** ข้อมูลที่ผู้ใช้ป้อนถูกเชื่อมโดยตรงกับ SQL query
```typescript
// VULNERABLE
const query = `SELECT * FROM products WHERE name LIKE '%${search}%'`;
วิธีแก้ไข: ใช้ Parameterized Queries
const query = 'SELECT * FROM products WHERE name LIKE $1';
await db.query(query, [`%${search}%`]);
ปัญหาที่มีความสำคัญสูง
2. การขาดการป้องกัน CSRF
ตำแหน่ง: src/index.tsปัญหา: ไม่มี CSRF Middleware สำหรับการดำเนินการที่เปลี่ยนสถานะ วิธีแก้ไข: เพิ่ม csurf Middleware
import csrf from 'csurf';
app.use(csrf({ cookie: true }));
ปัญหาที่มีความสำคัญปานกลาง
3. Implicit Any ในการตอบกลับ API
ตำแหน่ง: src/lib/api-client.ts:8ปัญหา: ประเภท any ทั่วไปสำหรับฟังก์ชัน fetcher วิธีแก้ไข: เพิ่ม Type Constraint ที่เหมาะสม
async function fetcher<T extends Record<string, unknown>>(
endpoint: string,
options?: RequestInit
): Promise<T> { ... }
**รายงานความปลอดภัยของประเภท (Type Safety Report):**
```markdown
## การละเมิด TypeScript
1. `products.controller.ts:45` - ขาดการระบุประเภทการคืนค่า (Return Type Annotation)
2. `auth.middleware.ts:12` - Implicit any ในบล็อก catch
3. `orders.service.ts:78` - อ็อบเจกต์อาจเป็น Undefined
เรียกใช้ `tsc --noEmit` เพื่อดูรายการทั้งหมด แก้ไขก่อนการปรับใช้
```
แก้ไขข้อผิดพลาดก่อนดำเนินการต่อ
ขั้นตอนที่ 5: Reality Checker ตรวจสอบความถูกต้องก่อนนำส่ง
เปิดเซสชันใหม่:
Activate Reality Checker mode.
This e-commerce API is ready for production validation.
Run your mandatory reality check process:
1. Verify files exist
2. Cross-reference claimed features with actual code
3. Require screenshot evidence from Playwright tests
4. Review test-results.json for performance metrics
Project URL: http://localhost:3000
Test results: ./public/qa-screenshots/test-results.json
Output: PASS or NEEDS WORK with specific blocking issues.
ผลลัพธ์ที่คาดหวัง:
คำสั่งตรวจสอบความเป็นจริง:
# 1. ตรวจสอบว่าไฟล์มีอยู่จริง
ls -la src/controllers/ src/services/ src/routes/
ls -la src/components/ src/lib/
# 2. เปรียบเทียบคุณสมบัติที่กล่าวอ้างกับโค้ดจริง
grep -r "jwt\|jsonwebtoken" . --include="*.ts" || echo "NO JWT FOUND"
grep -r "bcrypt\|argon2" . --include="*.ts" || echo "NO PASSWORD HASHING FOUND"
grep -r "rateLimit\|express-rate-limit" . --include="*.ts" || echo "NO RATE LIMITING FOUND"
# 3. เรียกใช้ Playwright เพื่อจับภาพหน้าจอ
npx playwright test --config=qa-playwright.config.ts --grep "@screenshot"
# 4. ตรวจสอบผลการทดสอบ
cat public/qa-screenshots/test-results.json
รายงานการตรวจสอบความถูกต้อง:
## ผลลัพธ์การตรวจสอบความเป็นจริง
### การตรวจสอบไฟล์: ผ่าน
- ไฟล์ Controller ทั้งหมดมีอยู่
- ไฟล์ Component ทั้งหมดมีอยู่
### การตรวจสอบคุณสมบัติ: ต้องแก้ไข
- การตรวจสอบสิทธิ์ JWT: พบ
- การแฮชรหัสผ่าน: พบ
- การจำกัดอัตรา (Rate limiting): ไม่พบ (ปัญหาที่ต้องแก้ไข)
### หลักฐานภาพหน้าจอ: ต้องแก้ไข
- รูปแบบเดสก์ท็อป: ผ่าน
- รูปแบบแท็บเล็ต: ผ่าน
- รูปแบบมือถือ: ไม่ผ่าน (ตารางสินค้าเสียที่ 375px)
### ตัวชี้วัดประสิทธิภาพ: ต้องแก้ไข
- เวลาโหลดเฉลี่ย: 2.3 วินาที (เป้าหมาย: <1 วินาที)
- ข้อผิดพลาดใน Console: 3 (เป้าหมาย: 0)
- คำขอเครือข่ายล้มเหลว: 1 (เป้าหมาย: 0)
## สถานะสุดท้าย: ต้องแก้ไข
### ปัญหาที่ต้องแก้ไข:
1. ไม่ได้ใช้ Rate limiting
2. รูปแบบมือถือในรายการสินค้าเสีย
3. มีข้อผิดพลาดใน Console 3 รายการที่ต้องแก้ไข
4. เวลาโหลดเกินเป้าหมาย 1 วินาที
### ปัญหาที่ไม่ต้องแก้ไขทันที:
- เพิ่ม Loading Skeleton ในประวัติการสั่งซื้อ
- ปรับปรุงข้อความแสดงข้อผิดพลาด
แก้ไขปัญหาที่ต้องแก้ไขและเรียกใช้ Reality Checker อีกครั้ง
สรุปเวิร์กโฟลว์
┌─────────────────────────────────────────────────────────────────┐
│ Backend Architect │
│ → OpenAPI spec, Schema ฐานข้อมูล, โครงสร้างโฟลเดอร์ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Database Optimizer │
│ → คำแนะนำ Index, ตารางที่ขาดหายไป, ข้อจำกัด │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Frontend Developer │
│ → คอมโพเนนต์ React, ไคลเอนต์ API, การจัดการข้อผิดพลาด │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Code Reviewer │
│ → การตรวจสอบความปลอดภัย, Type Safety, ช่องว่างในการจัดการข้อผิดพลาด │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Reality Checker │
│ → การตรวจสอบความถูกต้องโดยอาศัยหลักฐาน, หลักฐานภาพหน้าจอ, ผ่าน/ไม่ผ่าน │
└─────────────────────────────────────────────────────────────────┘
การดำเนินการ Agent แบบขนาน (ขั้นสูง)
เรียกใช้ Agent แบบขนานเพื่อลดเวลาโดยรวม:
# เทอร์มินัล 1: Backend Architect
claude "เปิดใช้งาน Backend Architect ออกแบบ API e-commerce..."
# เทอร์มินัล 2: Database Optimizer (รอผลลัพธ์ Schema)
claude "เปิดใช้งาน Database Optimizer ตรวจสอบ Schema นี้..."
# เทอร์มินัล 3: Frontend Developer (รอ API Spec)
claude "เปิดใช้งาน Frontend Developer สร้างแดชบอร์ด React..."
# เทอร์มินัล 4: Code Reviewer (รอโค้ด)
claude "เปิดใช้งาน Code Reviewer ตรวจสอบ codebase นี้..."
# ทุกเทอร์มินัล: Reality Checker (การตรวจสอบขั้นสุดท้าย)
claude "เปิดใช้งาน Reality Checker ดำเนินการตรวจสอบที่จำเป็น..."
ด้วยการดำเนินการแบบขนาน คุณสามารถทำเวิร์กโฟลว์ให้เสร็จได้ใน 2-4 ชั่วโมง แทนที่จะเป็น 6-8 ชั่วโมง
สิ่งที่คุณสร้าง
| ผลลัพธ์ | Agent | ผลลัพธ์ที่ได้ |
|---|---|---|
| การออกแบบ API | Backend Architect | OpenAPI spec, Schema ฐานข้อมูล, โครงสร้างโฟลเดอร์ |
| การปรับแต่ง Schema | Database Optimizer | คำแนะนำ Index, ตารางเพิ่มเติม, ข้อจำกัด |
| ส่วนหน้า | Frontend Developer | คอมโพเนนต์ React, ไคลเอนต์ API, ขอบเขตข้อผิดพลาด |
| การตรวจสอบความปลอดภัย | Code Reviewer | รายงานช่องโหว่, การแก้ไข Type Safety |
| การตรวจสอบขั้นสุดท้าย | Reality Checker | หลักฐานภาพหน้าจอ, การรับรองผ่าน/ไม่ผ่าน |
ขั้นตอนถัดไป
ปรับใช้ API:ตั้งค่า PostgreSQL สำหรับ Production พร้อม Connection Poolingกำหนดค่าตัวแปรสภาพแวดล้อมสำหรับข้อมูลลับเพิ่ม Endpoint สำหรับตรวจสอบสถานะตั้งค่าการเฝ้าระวัง (Prometheus, Grafana)ขยายเวิร์กโฟลว์:เพิ่ม Agent Performance Benchmarker สำหรับ Load Testingเพิ่ม Agent Technical Writer สำหรับเอกสารประกอบเพิ่ม Agent DevOps Automator สำหรับ CI/CD Pipelineนำรูปแบบกลับมาใช้ใหม่:บันทึก Prompt เป็น Templateสร้างสคริปต์เวิร์กโฟลว์ที่เชื่อมโยงเซสชัน Agent เข้าด้วยกันแบ่งปันกับทีมของคุณ
Agent ผู้เชี่ยวชาญห้าตัว API ที่สมบูรณ์แบบหนึ่งชุด ไม่มีคำแนะนำทั่วไป
นั่นคือพลังของการแบ่งความเชี่ยวชาญ Agent แต่ละตัวรู้จักโดเมนของตน Agent แต่ละตัวมีรายการตรวจสอบ Agent แต่ละตัวสร้างผลลัพธ์ที่เฉพาะเจาะจง
ตาคุณแล้ว: เลือกโปรเจกต์ เปิดใช้งาน Agent และนำส่งได้เร็วขึ้น
ประเด็นสำคัญ
Agent ผู้เชี่ยวชาญทำงานได้ดีกว่าผู้ช่วยทั่วไป — Agent แต่ละตัวมีความเชี่ยวชาญเฉพาะด้าน, มีรายการตรวจสอบ และผลลัพธ์ที่เฉพาะเจาะจงเวิร์กโฟลว์ตามลำดับช่วยให้มั่นใจในคุณภาพ — Backend Architect ออกแบบ, Database Optimizer ตรวจสอบ, Frontend Developer สร้าง, Code Reviewer ตรวจสอบ, Reality Checker ตรวจสอบความถูกต้องการอนุมัติโดยใช้หลักฐานป้องกันข้อผิดพลาด — Reality Checker ต้องการหลักฐานภาพหน้าจอ, ผลลัพธ์ grep และตัวชี้วัดประสิทธิภาพก่อนการรับรอง 'ผ่าน'การดำเนินการแบบขนานช่วยลดเวลาโดยรวม — เรียกใช้ 4 เทอร์มินัลพร้อมกันเพื่อทำให้เสร็จใน 2-4 ชั่วโมง แทนที่จะเป็น 6-8 ชั่วโมงบันทึก Prompt เป็น Template — นำการเปิดใช้งาน Agent แบบเดิมกลับมาใช้ใหม่เพื่อให้ได้ผลลัพธ์ที่สอดคล้องกันในทุกโปรเจกต์
คำถามที่พบบ่อย
AI Agent สำหรับนักพัฒนาคืออะไร?AI Agent คือผู้ช่วย AI ผู้เชี่ยวชาญที่มีความรู้เฉพาะด้าน ซึ่งแตกต่างจาก Chatbot ทั่วไป Agent อย่าง Backend Architect หรือ Code Reviewer มีรายการตรวจสอบที่เฉพาะเจาะจงและสร้างผลลัพธ์ที่สอดคล้องกัน
ฉันจะติดตั้ง Agent จาก The Agency ได้อย่างไร?Clone Repository ที่ github.com/msitarzewski/agency-agents จากนั้นคัดลอกไฟล์ .md ไปยัง ~/.claude/agents/ สำหรับ Claude Code หรือใช้สคริปต์การติดตั้งสำหรับเครื่องมืออื่นๆ
Reality Checker Agent คืออะไร?Reality Checker คือ Agent QA ที่ใช้หลักฐานเป็นพื้นฐาน ซึ่งจะปฏิเสธการอนุมัติงานหากไม่มีหลักฐาน มันต้องการภาพหน้าจอ, ผลลัพธ์ grep และตัวชี้วัดประสิทธิภาพก่อนที่จะให้การรับรอง 'ผ่าน'
ฉันสามารถเรียกใช้ Agent หลายตัวแบบขนานได้หรือไม่?ได้ เปิดเทอร์มินัลหลายหน้าต่างและเปิดใช้งาน Agent ที่แตกต่างกันในแต่ละหน้าต่าง ส่งมอบผลลัพธ์โดยการคัดลอกเอาต์พุตหรือใช้หน่วยความจำ MCP สำหรับการส่งมอบอัตโนมัติ
ฉันจะส่ง Context ระหว่าง Agent ได้อย่างไร?คัดลอกผลลัพธ์จาก Agent ตัวหนึ่งแล้ววางเป็น Input สำหรับตัวถัดไป สำหรับการส่งมอบอัตโนมัติ ให้ใช้หน่วยความจำ MCP เพื่อจัดเก็บผลลัพธ์ที่ Agent ตัวถัดไปสามารถเรียกคืนได้
จะเกิดอะไรขึ้นถ้า Agent แจ้งว่า 'ต้องแก้ไข'?แก้ไขปัญหาที่ต้องแก้ไขที่ Agent ระบุไว้ จากนั้นเรียกใช้ Agent อีกครั้ง Reality Checker จะระบุสิ่งที่ต้องแก้ไขโดยเฉพาะก่อนการรับรอง 'ผ่าน'
ฉันจำเป็นต้องใช้ Agent ทั้ง 5 ตัวสำหรับทุกโปรเจกต์หรือไม่?ไม่ สำหรับโปรเจกต์ API ให้เริ่มต้นด้วย Backend Architect และ Code Reviewer เพิ่ม Database Optimizer สำหรับ Schema ที่ซับซ้อน, Frontend Developer สำหรับงาน UI และ Reality Checker ก่อนนำส่ง
