GitHub Copilot CLIλ₯Ό νμ©ν λ©ν° μμ΄μ νΈ νμ ν¨ν΄ λ νΌλ°μ€ νλ‘μ νΈ
μ¬λ¬ AI μμ΄μ νΈκ° μν μ λΆλ΄νμ¬ νμ
νλ ν¨ν΄λ€μ μ μνκ³ ,
GitHub Copilot CLIμ --agent μ΅μ
μΌλ‘ λ°λ‘ μ€νν μ μλ μνμ μ 곡ν©λλ€.
github-copilot-cli-agents/
βββ AGENTS.md # λͺ¨λ μμ΄μ νΈ κ³΅ν΅ κ°λλ μΌ (Harness)
βββ init.sh # Codespace νκ²½ μ
μ
μ€ν¬λ¦½νΈ
βββ .devcontainer/
β βββ devcontainer.json # Codespace μμ μ init.sh μλ μ€ν
βββ .github/agents/ # Copilot CLI μμ΄μ νΈ μ μ (ν ꡬμ±Β·λΌμ°ν
Β·λ€μ΄μ΄κ·Έλ¨ ν¬ν¨)
β βββ orchestrator.agent.md # μ€μΌμ€νΈλ μ΄ν° β μμ² λΆμ ν ν¨ν΄ μλ μ ν
β βββ code_generation.agent.md # μ½λ μ€κ³βꡬνβ리뷰 ν¨ν΄ μμ΄μ νΈ
β βββ planner_executor.agent.md # κ³ν-μ€ν ν¨ν΄ μμ΄μ νΈ
β βββ debate_critic.agent.md # ν λ‘ -λΉν ν¨ν΄ μμ΄μ νΈ
β βββ generator_evaluator.agent.md # μμ±-νκ° ν¨ν΄ μμ΄μ νΈ
βββ app/ # μν μ ν리μΌμ΄μ
β βββ customer_support/ # Agent Framework κΈ°λ° κ³ κ° μ§μ μμ€ν
βββ codegen/ # μ½λ μμ± κ³Όμ κΈ°λ‘
β βββ customer_support_summary.md # Customer Support μμ± μμ½
βββ .copilot/
βββ mcp-config.json # MCP μλ² μ€μ
π‘ GitHub Copilot CLI μ체μ λν μ€μΉΒ·μ¬μ©λ² κ°μ΄λλ Copilot CLI κ°μ΄λλ₯Ό μ°Έκ³ νμΈμ.
- GitHub Codespaces λλ Node.js 22+ νκ²½
- GitHub Copilot ꡬλ
μ΄ λ ν¬λ₯Ό Codespaceλ‘ μ΄λ©΄ init.shκ° μλ μ€νλμ΄ μλ λꡬλ€μ΄ μ€μΉλ©λλ€:
| λꡬ | μ€λͺ |
|---|---|
| GitHub Copilot CLI | copilot λͺ
λ ΉμΌλ‘ μμ΄μ νΈ μ€ν |
| Azure CLI | Azure 리μμ€ κ΄λ¦¬ |
| uv | Python ν¨ν€μ§ λ§€λμ |
git clone https://github.com/<owner>/github-copilot-cli-agents.git
cd github-copilot-cli-agents
./init.sh# μ€μΌμ€νΈλ μ΄ν° β μμ²μ λΆμνμ¬ μ΅μ μ ν¨ν΄ νμ μλ μ ν
copilot --agent orchestrator --yolo
# κ°λ³ ν¨ν΄ μμ΄μ νΈλ₯Ό μ§μ μ§μ νμ¬ μ€ν
copilot --agent planner_executor --yolo
copilot --agent debate_critic --yolo
copilot --agent generator_evaluator --yolo
copilot --agent code_generation --yolo
# κΈ°λ³Έ Copilot CLI (μμ΄μ νΈ μμ΄)
copilotμ¬μ©μ μμ²μ λΆμνκ³ μ΅μ μ ν¨ν΄ νμ μλ μ ννλ λΌμ°ν°
copilot --agent orchestrator --yolo| μ¬μ©μ μλ | μ ν ν¨ν΄ |
|---|---|
| "ꡬνν΄μ€", "μ μ ν΄μ€", "λ§μ΄κ·Έλ μ΄μ " | π Planner-Executor |
| "λΉκ΅ν΄μ€", "μ₯λ¨μ ", "λκ° λμκΉ" | βοΈ Debate & Critic |
| "μμ±ν΄μ€", "리뷰ν΄μ€", "κ°μ ν΄μ€" | β‘ Generator-Evaluator |
| "μ€κ³νκ³ κ΅¬νν΄μ€", "μ½λ μμ±νκ³ λ¦¬λ·°ν΄μ€" | ποΈ Code Generation |
Agent Teamμ νλμ μμ μ μ¬λ¬ μ λ¬Έ μμ΄μ νΈκ° μν μ λΆλ΄νμ¬ νμ μΌλ‘ μννλ λ¨μμ λλ€.
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Agent Team β
β β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β β Role A ββββΆβ Role B ββββΆβ Role C β β
β β (μμ±/μ μ)β β (νκ°/λ°λ‘ )β β (μ’
ν©/κΈ°λ‘)β β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β β² β β
β βββββββββ νΌλλ°± 루ν βββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
| μμΉ | μ€λͺ |
|---|---|
| μν λΆλ¦¬ | κ° μμ΄μ νΈλ νλμ λͺ νν μ± μλ§ μν |
| νΌλλ°± 루ν | μ°μΆλ¬Ό β νκ° β κ°μ μ λ°λ³΅μΌλ‘ νμ§ ν₯μ |
| μλ ΄ 쑰건 | 무ν λ°λ³΅ λ°©μ§λ₯Ό μν΄ μ΅λ λ°λ³΅ νμ μ€μ |
| Scribe κΈ°λ‘ | λͺ¨λ νμ Scribeκ° ν¬ν¨λμ΄ κ³Όμ /κ²°κ³Όλ₯Ό λ¬Έμν |
| κ³΅ν΅ κ°λλ μΌ | AGENTS.mdλ₯Ό ν΅ν΄ λͺ¨λ νμ λμΌν μμ κ·μΉ μ μ© |
| π Planner-Executor | βοΈ Debate & Critic | β‘ Generator-Evaluator | ποΈ Code Generation | |
|---|---|---|---|---|
| λͺ©μ | 체κ³μ μ€ν | μ΅μ μ κ²°λ‘ λμΆ | λ°λ³΅ κ°μ μΌλ‘ νμ§ ν₯μ | μ€κ³ κΈ°λ° μ½λ μμ± |
| ν κ΅¬μ± | Planner β Executor β Validator β Scribe | Proposer β Opponent β Critic β Synthesizer β Scribe | Generator β Evaluator β Refiner β Scribe | Architect β Developer β Reviewer β Scribe |
| ν΅μ¬ 루ν | κ³ν β μ€ν β κ²μ¦ | μ μ β λ°λ‘ β νκ° | μμ± β νκ° β κ°μ | μ€κ³ β ꡬν β 리뷰 |
| μ΅λ λ°λ³΅ | Revise ν μ¬μ€ν | 3 Rounds | 3 Cycles | 3 Cycles |
| μ ν©ν μμ | ꡬν, λ§μ΄κ·Έλ μ΄μ , μ μ | κΈ°μ μ ν, μν€ν μ² λΉκ΅ | μ½λ μμ±, λ¬Έμ μμ±, 리뷰 | μ½λ μ€κ³Β·κ΅¬ν·리뷰 ν΅ν© |
μ ν ν¨ν΄: βοΈ Debate & Critic
| λ¨κ³ | μμ΄μ νΈ | μν λ΄μ© |
|---|---|---|
| Round 1 | Proposer | "λͺ¨λ Έλ ν¬λ₯Ό μ±νν΄μΌ ν©λλ€. μ½λ 곡μ κ° μ½κ³ , CI/CD νμ΄νλΌμΈμ ν΅ν© κ΄λ¦¬ν μ μμ΅λλ€." |
| Opponent | "λ©ν°λ ν¬κ° λ«μ΅λλ€. νλ³ λ 립 λ°°ν¬κ° κ°λ₯νκ³ , μ μ₯μ ν¬κΈ°κ° μμ λΉλκ° λΉ λ¦ λλ€." | |
| Critic | "Proposerμ CI ν΅ν© μ£Όμ₯μ κ°λ ₯νλ, ν κ·λͺ¨(5λͺ )μμλ λͺ¨λ Έλ ν¬ κ΄λ¦¬ λΆλ΄μ΄ ν΄ μ μμ΅λλ€." | |
| Synthesizer | μμ§ μλ ΄ λΆκ° β ν κ·λͺ¨μ λ°°ν¬ λΉλ κΈ°μ€μΌλ‘ Round 2 μ§ν | |
| Round 2 | Synthesizer | β μλ ΄ β "μ΄κΈ°μλ λͺ¨λ Έλ ν¬ + Turborepo, ν 10λͺ μ΄μ μ λΆλ¦¬ κ²ν " κΆκ³ |
| μ΅μ’ | Scribe | λ Όμ κ³Όμ Β·κ·Όκ±°Β·μ΅μ’ κΆκ³ μμ λ¬Έμν |
μ ν ν¨ν΄: β‘ Generator & Evaluator
| λ¨κ³ | μμ΄μ νΈ | μν λ΄μ© |
|---|---|---|
| Cycle 1 | Generator | JWT κΈ°λ° μΈμ¦ API μ΄μ μμ± |
| Evaluator | 보μ 6/10 (ν ν° λ§λ£ λλ½) β β Fail | |
| Refiner | ν ν° λ§λ£ μ€μ , refresh token rotation μΆκ° | |
| Cycle 2 | Evaluator | 보μ 8/10 (rate limiting λ―Έμ μ©) β β Fail |
| Refiner | express-rate-limit λ―Έλ€μ¨μ΄ μ μ© | |
| Cycle 3 | Evaluator | 보μ 9/10, μ½λ νμ§ 9/10 β β Pass |
| μ΅μ’ | Scribe | Cycleλ³ κ°μ μ΄λ ₯κ³Ό μ΅μ’ API λͺ μΈ λ¬Έμν |
μ ν ν¨ν΄: π Planner & Executor
| λ¨κ³ | μμ΄μ νΈ | μν λ΄μ© |
|---|---|---|
| κ³ν | Planner | νμ€ν¬ λΆν΄: β PGμ¬ SDK μ€μΉ β β‘ κ²°μ λͺ¨λΈ β β’ API ꡬν β β£ μΉν β β€ ν μ€νΈ |
| μ€ν | Executor | νμ€ν¬ β β‘β’ μμλλ‘ κ΅¬ν |
| κ²μ¦ | Validator | β’ β Revise β "νλΆ μ²λ¦¬ λ‘μ§ λλ½" |
| μμ | Planner | νμ€ν¬ β’μ νλΆ μλν¬μΈνΈ μΆκ° |
| μ¬μ€ν | Executor | μμ λ β’β£β€ μ¬κ΅¬ν β λͺ¨λ νμ€ν¬ β Pass |
| μ΅μ’ | Scribe | μ 체 κ³νΒ·μ€νΒ·κ²μ¦ μ΄λ ₯ λ¬Έμν |
μ ν ν¨ν΄: ποΈ Code Generation
| λ¨κ³ | μμ΄μ νΈ | μν λ΄μ© |
|---|---|---|
| μ€κ³ | Architect | νμΌ κ΅¬μ‘° μ€κ³: services/profile.js + routes/profile.js, RESTful μΈν°νμ΄μ€ μ μ, κΈ°μ‘΄ auth λ―Έλ€μ¨μ΄ μ¬μ¬μ© |
| ꡬν | Developer | Architect μ€κ³μ λ°λΌ CRUD API μ½λ ꡬν |
| 리뷰 (Cycle 1) | Reviewer | β Revise β "μ λ ₯ κ²μ¦ λλ½, SQL Injection μν" |
| μμ | Developer | express-validator μ μ©, νλΌλ―Έν° μ΄μ€μΌμ΄ν μΆκ° |
| 리뷰 (Cycle 2) | Reviewer | β Pass β 보μ 8/10, μ½λ νμ§ 9/10, μ€κ³ μ€μ 10/10 |
| μ΅μ’ | Scribe | μ€κ³Β·κ΅¬ν·리뷰 κ³Όμ κ³Ό μ΅μ’ API λͺ μΈ λ¬Έμν |
λͺ¨λ μμ΄μ νΈλ AGENTS.mdμ μ μλ Harness Rulesλ₯Ό μ€μν©λλ€:
- π΄
git pushμ λ κΈμ§ β λͺ¨λ μ격 λ°μμgh pr create --draftλ₯Ό ν΅ν PR κΈ°λ° μν¬νλ‘μ°λ‘ μ§ν - μ½λκ° μ격 μ μ₯μμ λ°μλκΈ° μ λ°λμ μ¬λμ κ²ν λ₯Ό κ±°μΉ¨
MIT