β π μ΄λ² μ£Ό Weekly Digestλ‘ λμκ°κΈ°
DD-093 Code as Agent Harness
arXiv: 2605.18747 Upvotes: 199 | Comments: 3 μμ: μ΄λ² μ£Ό Top 2
λ Όλ¬Έ 리뷰: Code as Agent Harness
1. μ μ΄ λ Όλ¬Έμ΄ μ€μνκ°?
κΈ°μ‘΄μ μ°κ΅¬λ€μ λκ·λͺ¨ μΈμ΄ λͺ¨λΈ(LLM)μ΄ μ½λλ₯Ό μμ±νλ λ₯λ ₯μλ§ μ§μ€νμ¬, μ½λλ₯Ό λ¨μν ν μ€νΈ μμ± κ²°κ³Όλ¬Όλ‘ μ·¨κΈνλ κ²½ν₯μ΄ μμμ΅λλ€. μ΄λ‘ μΈν΄ μμ±λ μ½λκ° μ€μ νκ²½μμ μ΄λ»κ² μ€νλκ³ , μμ΄μ νΈκ° μ΄λ₯Ό ν΅ν΄ μ€μ€λ‘ μκ°νκ³ νλνλ κ³Όμ μ 체κ³μ μΌλ‘ λ€λ€μ§μ§ λͺ»νμ΅λλ€. μ΄ λ Όλ¬Έμ μ½λλ₯Ό λ¨μν μΆλ ₯λ¬Όμ΄ μλλΌ μμ΄μ νΈκ° μΆλ‘ νκ³ , νλνκ³ , νκ²½μ λͺ¨λΈλ§νλ©°, μ€νμ ν΅ν΄ κ²μ¦νλ μ΄μ 체μ (Operational Substrate)λ‘ μ¬μ μν©λλ€. μ¦, μ½λλ₯Ό μμ΄μ νΈλ₯Ό κ°μΈκ³ μ μ΄νλ νλ€μ€(Harness)λ‘ μ μνμ¬, LLMμ΄ μνκ° μλ λͺ¨λΈμμ μ₯κΈ°μ μΈ μμ μ μνν μ μλ κ°κ±΄ν μμ΄μ νΈλ‘ μ§νν μ μλ ν΅ν©λ νλ μμν¬λ₯Ό μ μν©λλ€.
2. ν΅μ¬ μμ΄λμ΄ μ½κ² μ΄ν΄νκΈ°
μΌμμν λΉμ : βμλμ°¨μ μ΄μ μβ
κΈ°μ‘΄μ LLM μ½λ μμ±μ λ§μΉ βμ΄μ μκ° μ€κ³λλ©΄μ μ’ μ΄μ 그리λ κ²βκ³Ό κ°μ΅λλ€. μ무리 μ κ΅ν μ€κ³λλ©΄(μ½λ)μ κ·Έλ €λ, κ·Έκ²μ΄ μ€μ μλμ°¨κ° μλλΌλ©΄ λ°ν΄λ₯Ό κ΅΄λ €κ° μ μμ΅λλ€. μ΄ λ Όλ¬Έμ΄ μ μνλ βCode as Agent Harnessβλ μ΄μ μ(LLM)κ° μ€μ λ‘ μλμ°¨(μ½λ νλ€μ€)μ νμΉνμ¬ νΈλ€μ μ‘°μνκ³ , μμ μ λ°κ³ , λ΄λΉκ²μ΄μ μ 보면μ λͺ©μ μ§λ‘ μ΄λνλ μμ€ν μ λλ€. μ¬κΈ°μ μ½λλ λ¨μν 보μ¬μ£Όλ μ€κ³λκ° μλλΌ, μ΄μ μμ μμ§λ₯Ό μ€μ μμ§μμΌλ‘ λ°κΏμ£Όλ μμ§, λ°ν΄, μ°λ£ μ₯μΉμ μν μ μνν©λλ€.
λ¨κ³λ³ λμ μ리
μ΄ μμ€ν μ ν¬κ² μΈ κ°μ§ μΈ΅(Layer)μΌλ‘ λλμ΄ μλν©λλ€. 첫 λ²μ§Έλ μΈν°νμ΄μ€ μΈ΅μΌλ‘, μ΄μ μκ° μλμ°¨μ μ μ΄ μ₯μΉμ μ°κ²°λλ λΆλΆμ λλ€. LLMμ΄ μμ±ν μ½λλ₯Ό ν΅ν΄ μΈλΆ λꡬλ νκ²½κ³Ό μνΈμμ©ν©λλ€. λ λ²μ§Έλ λ©μ»€λμ¦ μΈ΅μΌλ‘, μλμ°¨μ μ΄μ λ‘μ§μ λλ€. μμ΄μ νΈκ° κ³νμ μΈμ°κ³ (Planning), κ³Όκ±°μ μ£Όν κ²½λ‘λ₯Ό κΈ°μ΅νλ©°(Memory), μν©μ λ§λ λꡬλ₯Ό μ¬μ©νκ³ (Tool Use), μκΈ΄ λ¬Έμ λ₯Ό κ΅μ νλ(Control) κ³Όμ μ΄ ν¬ν¨λ©λλ€. λ§μ§λ§μΌλ‘ νμ₯ μΈ΅μμλ μ¬λ¬ λμ μλμ°¨κ° μλ‘ ν΅μ νλ©° κ΅ν΅ μν©μ μ‘°μ νλ κ²μ²λΌ, μ¬λ¬ μ λ¬Έ μμ΄μ νΈλ€μ΄ μ½λλ₯Ό 곡μ νλ©° νμ νλ λ©ν° μμ΄μ νΈ μ€μΌμ€νΈλ μ΄μ μ λ€λ£Ήλλ€.
ν΅μ¬ μκ³ λ¦¬μ¦ λ° κ΅¬μ‘°
μ΄ λ Όλ¬Έμ νΉμ ν μνμ 곡μ보λ€λ μμ€ν μν€ν μ²μ μ μ΄ νλ¦μ κ°μ‘°ν©λλ€. ν΅μ¬μ μν(State)μ μ½λμ μνΈμμ©μ λλ€. μμ΄μ νΈλ μ μ μΈ λͺ¨λΈ(Model)μμ νλ¨(Judgment)μ λ΄λ¦¬κ³ , μ΄λ₯Ό μ½λλΌλ λ§€κ°μ²΄λ₯Ό ν΅ν΄ κ°λ³μ μΈ μν(Mutable State)λ₯Ό λ³κ²½ν©λλ€. νλ€μ€ μΈνλΌλ μ΄λ¬ν μν λ³νμ μμ νκ² κ΄λ¦¬νκ³ , μμ΄μ νΈκ° μμ±ν μ½λκ° μ λ’°ν μ μλμ§ κ²μ¦(Verification)νλ μ μ± κ³Ό κΆν κ³μΈ΅μ μ 곡ν©λλ€. μ¦, μ½λλ₯Ό μ€ν κ°λ₯ν λ§€μ²΄λ‘ μ¬μ©νλ, μ΄λ₯Ό κ°μΈκ³ μλ νλ€μ€ μμ€ν μ΄ μ 체 μμ μ μμ μ±μ 보μ₯νλ ꡬ쑰μ λλ€.
3. μ€ν κ²°κ³Ό λΆμ
λ²€μΉλ§ν¬ λ° ν μ€νΈ νκ²½
μ΄ λ Όλ¬Έμ μννΈμ¨μ΄ 곡ν(SWE) μ λ°, νΉν μ μ₯μ(Repository) μμ€μ μμ§λμ΄λ§ μμ μ μ€μ¬μΌλ‘ λ€μν κΈ°μ‘΄ μμ€ν μ λΆμνκ³ μ¬κ΅¬μ±νμ΅λλ€. μ£Όλ‘ κ²½μ νλ‘κ·Έλλ°(Competitive Programming)λΆν° 볡μ‘ν μννΈμ¨μ΄ κ°λ° μνκ³μ μ΄λ₯΄λ κ΄λ²μν νκ²½μμ κΈ°μ‘΄ λ¨μΌ μμ΄μ νΈ μμ€ν κ³Ό μ μνλ νλ μμν¬μ ν¨μ¨μ±μ λΉκ΅ λΆμνμ΅λλ€.
κΈ°μ‘΄ SOTA(State-of-the-Art) λλΉ μ±λ₯
λ¨μΌ μμ΄μ νΈ λ°©μμ λ§₯λ½ μ°½(Context Window)μ μ νκ³Ό μ λ¬Έμ± λΆμ‘±μΌλ‘ μΈν΄ λκ·λͺ¨ μ½λλ² μ΄μ€λ₯Ό μ²λ¦¬νλ λ° νκ³κ° μμμ΅λλ€. λ°λ©΄, μ΄ λ Όλ¬Έμμ μ μνλ λ©ν° μμ΄μ νΈ μ€μΌμ€νΈλ μ΄μ λ°©μ(μ: ChatDev, MetaGPT, AgentCoder)μ μ μ©ν κ²½μ°, μμ μ 건μΆκ°, νλ‘κ·Έλλ¨Έ, ν μ€ν°, κ²ν μ κ°μ μν λ‘ λΆλ΄ν¨μΌλ‘μ¨ λ¬Έμ ν΄κ²° λ₯λ ₯μ΄ νκΈ°μ μΌλ‘ ν₯μλ¨μ 보μ¬μ€λλ€. νΉν λ¨μΌ μμ΄μ νΈκ° μκ° μμ (Self-correction)νκΈ° μ΄λ €μ΄ μ€λ₯λ€μ λ 립μ μΈ κ²ν μ±λμ ν΅ν΄ 30% μ΄μ λ μ ννκ² νμ§νκ³ μμ νλ€λ κ²°κ³Όκ° λ³΄κ³ λμμ΅λλ€.
μ£Όλͺ©ν λ§ν μ±κ³Ό
κ°μ₯ μΈμμ μΈ μ μ μ½λκ° λ¨μν μ°μΆλ¬Όμ΄ μλλΌ μμ΄μ νΈ κ°μ 곡μ κΈ°μ§(Shared Substrate)μ΄ λλ€λ μ μ λλ€. μμ΄μ νΈλ€μ΄ 곡μ νλ μ½λλ₯Ό ν΅ν΄ μλ‘μ μκ°μ νμΈνκ³ μμ ν¨μΌλ‘μ¨, μ 체 μμ€ν μ λͺ¨λμ±(Modularity)κ³Ό κ²μ¬ κ°λ₯μ±(Inspectability)μ΄ ν¬κ² κ°μ λμμ΅λλ€. μ΄λ 볡μ‘ν μ₯κΈ° μμ (Long-horizon Execution)μμ μμ΄μ νΈμ μ λ’°μ±μ λμ΄λ κ²°μ μ μΈ μν μ ν©λλ€.
4. νκ³μ κ³Ό ν₯ν μ°κ΅¬ λ°©ν₯
μ μκ° μΈκΈν νκ³
λμ μΌλ‘ μμ±λ μ½λκ° νλ€μ€ μΈνλΌ μ체λ₯Ό μμ ν λ체ν μλ μμ΅λλ€. μ¦, μμ΄μ νΈκ° μμ±ν μ½λκ° μ무리 λλν΄λ, μ΄λ₯Ό κ°μΈλ 보μ μ μ± , μλλ°μ€ κ²½κ³, κΆν κ΄λ¦¬μ κ°μ μΈκ°μ΄ μ€κ³ν μΈνλΌλ μ¬μ ν νμμ μ λλ€. μ½λλ₯Ό μ€ν κ°λ₯ν λ§€μ²΄λ‘ μ λ’°νκΈ° μν΄μλ λͺ¨λΈμ νλ¨λ ₯κ³Ό μΈκ°μ΄ μ€κ³ν μμ μ₯μΉκ° μ‘°νλ₯Ό μ΄λ£¨μ΄μΌ νλ€λ μ μ΄ κ°μ‘°λμμ΅λλ€.
κ°μ κ°λ₯ν μ
ν₯ν μ°κ΅¬μμλ μμ΄μ νΈκ° μμ±ν μ½λμ μ λ’°μ±μ μ΄λ»κ² λμ± λ³΄μ₯ν κ²μΈκ°(μ: νμμ κ²μ¦ Formal Verification)μ λκ·λͺ¨ λ©ν° μμ΄μ νΈ μμ€ν μμμ ν¨μ¨μ μΈ ν΅μ νλ‘ν μ½ μ€κ³κ° μ€μν κ³Όμ λ‘ λ¨μ μμ΅λλ€. λν, μ½λ νλ€μ€κ° νμ₯λ λ λ°μν μ μλ 보μ μ·¨μ½μ μ μ΅μννλ κΈ°μ κ°λ°λ νμν©λλ€.
5. μ€λ¬΄ μ μ© κ°λ₯μ±
μ΄λμ λ°λ‘ μ μ© κ°λ₯?
μ΄ κ°λ μ μλνλ μννΈμ¨μ΄ κ°λ° λꡬ, 볡μ‘ν λ°μ΄ν° λΆμ νμ΄νλΌμΈ, λ‘λ΄ κ³΅ν μ μ΄ μμ€ν λ±μ μ¦μ μ μ©ν μ μμ΅λλ€. νΉν, λκ·λͺ¨ λ κ±°μ μ½λλ₯Ό μ μ§λ³΄μνκ±°λ μλ‘μ΄ κΈ°λ₯μ ν΅ν©νλ βκ°λ°μ μμ΄μ νΈβλ₯Ό ꡬμΆν λ νμμ μΈ μν€ν μ²κ° λ κ²μ λλ€.
νμν 리μμ€
μ΄ μμ€ν μ ꡬμΆνλ €λ©΄ κ°λ ₯ν μΆλ‘ λ₯λ ₯μ κ°μ§ LLM(μ: GPT-4κΈ λͺ¨λΈ)κ³Ό μ½λλ₯Ό μμ νκ² μ€νν μ μλ 격리λ μ€ν νκ²½(Sandbox, Docker λ±)μ΄ νμν©λλ€. λν, μμ΄μ νΈ κ°μ λν κΈ°λ‘κ³Ό μ½λ μ€ν κ²°κ³Όλ₯Ό μ μ₯ν μ μλ λμ©λ λ²‘ν° λ°μ΄ν°λ² μ΄μ€ λ° μν μ μ₯μκ° μꡬλ©λλ€.
6. μ΄ λ Όλ¬Έμ μ΄ν΄νκΈ° μν μ¬μ μ§μ
- λκ·λͺ¨ μΈμ΄ λͺ¨λΈ(LLM): λ°©λν ν μ€νΈ λ°μ΄ν°λ‘ νμ΅λμ΄ μμ°μ΄ μ΄ν΄ λ° μμ± λ₯λ ₯μ κ°μΆ μΈκ³΅μ§λ₯ λͺ¨λΈμ λλ€.
- μμ΄μ νΈ(Agent): μ¬μ©μμ λͺ©νλ₯Ό λ¬μ±νκΈ° μν΄ νκ²½μ μΈμ§νκ³ , νλ¨νκ³ , λ 립μ μΌλ‘ νλνλ μμ¨μ μΈ μμ€ν μ λλ€.
- νλ€μ€(Harness): μμ€ν μ΄λ λͺ¨λΈμ μ μ΄νκ³ κ΄λ¦¬νκΈ° μν΄ μΈλΆμμ μ 곡νλ μννΈμ¨μ΄ κ³μΈ΅μ΄λ μ₯μΉλ₯Ό μλ―Έν©λλ€.
- ν둬ννΈ μμ§λμ΄λ§(Prompt Engineering): μΈμ΄ λͺ¨λΈμ΄ μνλ κ²°κ³Όλ₯Ό λ΄λλ‘ μ λ ₯νλ μμ°μ΄ λͺ λ Ήμ΄λ₯Ό μ΅μ ννλ κΈ°μ μ λλ€.
- λ©ν° μμ΄μ νΈ μμ€ν (Multi-Agent System): μ¬λ¬ κ°μ μμ΄μ νΈκ° μλ‘ νλ ₯νκ±°λ κ²½μνλ©° λ¬Έμ λ₯Ό ν΄κ²°νλ λΆμ° μμ€ν μ λλ€.
- μλλ°μ€(Sandbox): μΈλΆ μμ€ν μ 보μμ μννμ§ μλλ‘ νλ‘κ·Έλ¨μ 격리λ νκ²½μμ μ€νν΄ ν μ€νΈνλ 보μ κΈ°λ²μ λλ€.
- μ²΄μΈ μ€λΈ μ¬κ³ (Chain of Thought): λͺ¨λΈμ΄ 볡μ‘ν λ¬Έμ λ₯Ό ν΄κ²°ν λ μ€κ° λ¨κ³μ μΆλ‘ κ³Όμ μ λ¨κ³μ μΌλ‘ 보μ¬μ£Όλ μ¬κ³ λ°©μμ λλ€.
π μ΄λ² μ£Ό κ΄λ ¨ Deep Dive
| μμ | λ Όλ¬Έ | Deep Dive |
|---|---|---|
| π₯ | CiteVQA: Benchmarking Evidence Attrβ¦ | DD-092 |
| π₯ | Code as Agent Harness | π νμ¬ λ¬Έμ |
| π₯ | Anti-Self-Distillation for Reasoninβ¦ | DD-094 |
| 4. | DelTA: Discriminative Token Credit β¦ | DD-095 |
| 5. | TransitLM: A Large-Scale Dataset an⦠| DD-096 |
π μμ±μΌ: 2026-05-24 | π€ GLM-4.7 Deep Dive