π― νλ€μ€ μμ§λμ΄λ§
ν¨λ¬λ€μ μ§ν Β· κ΅¬μ± μμ Β· μ€κ³ ν¨ν΄ Β· νλ‘λμ μ±μλ β μμ΄μ νΈ μ€ν νκ²½ μ€κ³
νλ€μ€ μμ§λμ΄λ§
ν¨λ¬λ€μ μ§ν Β· κ΅¬μ± μμ Β· μμ΄μ ν± λ£¨ν Β· μ€κ³ ν¨ν΄ Β· μ±μλ
Agent = Model + Harness
λꡬ Β· λ©λͺ¨λ¦¬ Β· μ€μΌμ€νΈλ μ΄μ Β· κ°λλ μΌ Β· νκ° β μμ΄μ νΈ μ€ν νκ²½ μ 체μ μ€κ³
ν¨λ¬λ€μ μ§ν
Prompt β Context β Harness β λμ΄μ§λ μ€κ³ λ²μ
ν¨λ¬λ€μ μ§ν
μ λ ₯μμ μ€ν νκ²½μΌλ‘ β μ΅μ ν λμμ΄ ν κ²Ήμ© λμ΄μ Έ μ¨ μ§νμ νλ¦
ν둬ννΈμμ νλ€μ€λ‘
μ΅μ ν λμμ΄ μ λ ₯ ν μ€νΈμμ μ€ν νκ²½ μ μ²΄λ‘ λμ΄μ Έ μ¨ νλ¦μ μ§μ΅λλ€.
- ν둬ννΈ μμ§λμ΄λ§ β "μ΄λ»κ² λ¬Όμ΄λ³ΌκΉ"
- 컨ν μ€νΈ μμ§λμ΄λ§ β "무μμ 보μ¬μ€κΉ"
- νλ€μ€ μμ§λμ΄λ§ β "μ΄λ€ νκ²½μμ μ€νν κΉ"
- 곡μν β Martin Fowler Β· ThoughtWorks (2026)
μΈ ν¨λ¬λ€μμ λμ²΄κ° μλλΌ ν¬ν¨ κ΄κ³(Harness β Context β Prompt)μ λλ€ β μ€κ³ λ²μκ° ν κ²Ήμ© λμ΄μ§λλ€.
μμ§λμ΄λ§ ν¨λ¬λ€μ 3λ¨κ³
μ λ ₯ μ΅μ νμμ μ€ν νκ²½ μ€κ³κΉμ§ β ν κ²Ήμ© λμ΄μ§ μ΅μ ν λμ
Harness Engineering μ©μ΄λ 2026λ Martin Fowlerμ ThoughtWorksκ° μ 립νμ΅λλ€ β λͺ¨λΈμ΄ μμ΄μ νΈκ° λλ©΄μ νμ°μ΄ λ νμ₯μ λλ€.
ν¬ν¨ κ΄κ³ β Prompt β Context β Harness
λμ²΄κ° μλλΌ νμ₯ β μμͺ½ κ²Ήμ κ·Έλλ‘ λκ³ μ€κ³ λ²μκ° ν κ²Ήμ© λμ΄μ§λ ꡬ쑰
νλ€μ€λ₯Ό μ€κ³νλ©΄ 컨ν μ€νΈμ ν둬ννΈλ κ·Έ μμμ ν¨κ» μ€κ³λ©λλ€ β λ°κΉ₯ κ²Ήμ΄ μμͺ½ κ²Ήμ ν¬ν¨ν©λλ€.
μΈ ν¨λ¬λ€μ λΉκ΅
μ΄μ Β· μ΅μ ν λμ Β· κ²°κ³Όλ¬Ό Β· ν¬ν¨ κ΄κ³ 4μΆμΌλ‘ λ³Έ μ°¨μ΄
| νλͺ© | Prompt | Context | Harness |
|---|---|---|---|
| μ΄μ | μ λ ₯ ν μ€νΈ | 컨ν μ€νΈ μλμ° | μ€ν νκ²½ μ 체 |
| μ΅μ ν λμ | μ§μ νμ§ | μ 보 μ λ³Β·μμΆ | νλ λ²μΒ·μμ Β·νμ₯ |
| κ²°κ³Όλ¬Ό | λ¨μΌ νΈμΆ κ°μ | μ 보 νμ©λ κ°μ | μμ¨ μμ΄μ νΈ λμ |
| ν¬ν¨ κ΄κ³ | β | Prompt β Context | Context β Harness |
μμ κ°λ μ΄ νμλ₯Ό ν¬ν¨ν©λλ€ β νλ€μ€λ₯Ό μ μ€κ³νλ©΄ 컨ν μ€νΈμ ν둬ννΈ νμ§λ μμ°μ€λ½κ² λ°λΌμ΅λλ€.
μ νλ€μ€κΉμ§ μλκ°
λͺ¨λΈμ΄ λꡬλ₯Ό νΈμΆνκ³ λ°λ³΅νκ³ μμνλ μμ΄μ νΈκ° λλ©΄μ μκΈ΄ λ³ν
λ¨μΌ νΈμΆμ΄ μλ μ§μμ 루νλ₯Ό κ΄λ¦¬νλ μλμ λλ€ β ν둬ννΈκ° μλλΌ μ€ν νκ²½μ΄ μ€κ³ κ³Όμ κ° λ©λλ€.
νλ€μ€μ μ μμ κ΅¬μ± μμ
Agent = Model + Harness Β· Tool Β· Orchestrator Β· Memory Β· Guard Β· Eval
μ μμ κ΅¬μ± μμ
λͺ¨λΈμ κ°μΈλ μ€ν νκ²½μ μ μμ λ€μ― κ΅¬μ± μμ
Agent = Model + Harness
λͺ¨λΈμ κ°μΈλ μ€ν νκ²½ μ μ²΄κ° νλ€μ€μ λλ€ β λꡬ, λ©λͺ¨λ¦¬, μ€μΌμ€νΈλ μ΄μ , κ°λλ μΌ, νκ°.
- Model = μμ§ Β· Harness = λλ‘ Β· μ νΈ Β· κ·μΉ Β· μ λΉμ
- 5λ κ΅¬μ± μμ β Tool Β· Orchestrator Β· Memory Β· Guard Β· Eval
- ν΅μ¬ μν β νλ λ²μ Β· μμ μ₯μΉ Β· νμ₯μ± Β· κ΄μΈ‘μ±
- μμ μ ν β νμ€ν¬ 볡μ‘λμ λ°λΌ μ μ§ μΆκ°
λͺ¨λΈ μ±λ₯λ§μΌλ‘λ μμ΄μ νΈ νμ§μ΄ κ²°μ λμ§ μμ΅λλ€ β μ€ν νκ²½ μ μ²΄κ° νλ‘λμ νμ§μ κ²°μ ν©λλ€.
νλ€μ€ μ μ β μμ ν μ€
νλ‘λμ μμ΄μ νΈμ μ΅μ μ μ β λͺ¨λΈ νλλ‘λ νμ΄ λΆμ‘±ν μμ
λͺ¨λΈμ μμ§, νλ€μ€λ μ€ν νκ²½
ν둬ννΈ νμ₯μ΄ μλ νλ λ²μΒ·μμ μ₯μΉΒ·νμ₯μ±μ μμ€ν μ€κ³
Model β μμ§
μΆλ‘ λ₯λ ₯
- κ³ν Β· νλ¨ Β· μμ±μ μμ²
- κ΅μ²΄ κ°λ₯ν λΆν β νλ‘λ°μ΄λ μ ν κ°λ₯
- μμ§ λ¨λ μΌλ‘λ λͺ©μ λ¬μ± λΆκ°
μλμ°¨μ μμ§, κ·Ήμ₯μ λ°°μ°, μ°μ£Όμ μ μΆμ§μ²΄μ ν΄λΉν©λλ€. ν΅μ¬ λ₯λ ₯μ΄μ§λ§ μ£Όλ³ μμ€ν μμ΄λ λͺ©μ μ§μ λλ¬νμ§ λͺ»ν©λλ€.
Harness β μ€ν νκ²½
λλ‘ Β· μ νΈ Β· κ·μΉ Β· μ λΉμ
- νλ λ²μ μ μ β ν μ μλ κ²μ κ²½κ³
- μμ μ₯μΉ β μλͺ»λ νλμ μ¬μ μ°¨λ¨Β·μ¬ν κ΅μ
- νμ₯μ± β λ©λͺ¨λ¦¬ Β· λꡬ Β· νμ μμ΄μ νΈ
- κ΄μΈ‘μ± β 무μμ νλμ§ μΆμ Β·λΆμΒ·κ°μ
λ³μκΈ°Β·λΈλ μ΄ν¬Β·λ΄λΉκ²μ΄μ Β·μμ 벨νΈμ²λΌ μμ§μ κ°μΈ μλμ μμ , λͺ©μ μ§λ₯Ό κ²°μ ν©λλ€. νλ€μ€λ ν둬ννΈλ₯Ό μ μ°λ κΈ°μ μ΄ μλλΌ μμ€ν μ€κ³μ λλ€.
νλ€μ€ μλ λͺ¨λΈμ λΉν¬μ₯ λλ‘ μμ μ€ν¬μΈ μΉ΄μ λλ€ β κ°μ μμ§μ΄λΌλ λλ‘κ° μλμ μμ , λͺ©μ μ§λ₯Ό κ²°μ ν©λλ€.
νλ€μ€ 5λ κ΅¬μ± μμ
ToolΒ·OrchestratorΒ·MemoryΒ·GuardΒ·Eval β μνΈμμ©Β·μ§νΒ·κΈ°μ΅Β·μμ Β·νμ§μ λ§‘λ λ€μ― λ μ΄μ΄
λ€μ― μμκ° μ λΆ νμλ μλλλ€ β νμ€ν¬ 볡μ‘λμ λ°λΌ μ ν μ μ©νκ³ , μμ κ° μνΈμμ©μ΄ νλ€μ€ νμ§μ κ²°μ ν©λλ€.
κ΅¬μ± μμ μ ν κΈ°μ€
λ¨μ λ΄μμ νλ‘λμ μμ΄μ νΈκΉμ§ β 볡μ‘λμ λ°λ₯Έ μ μ§ νμ₯ κ²½λ‘
-
1
λ¨μ Q&A λ΄
Model + Tool 1~2κ°λ©΄ μΆ©λΆν©λλ€. κ²μμ΄λ μ‘°νμ²λΌ νλμ΄ λ¨μνλ©΄ λ¬΄κ±°μ΄ νλ€μ€λ κ³Όμ μ€κ³κ° λ©λλ€.
-
2
λꡬ μ¬μ© μμ΄μ νΈ
Orchestratorλ₯Ό λν΄ 3μμλ‘ κ΅¬μ±ν©λλ€. μ¬λ¬ λꡬμ μ νκ³Ό μ€ν μμλ₯Ό μ μ΄ν΄μΌ νλ λ¨κ³μ λλ€.
-
3
νλ‘λμ μμ΄μ νΈ
Guard Β· Eval Β· MemoryκΉμ§ 5μμ μ λΆλ₯Ό κ°μΆ₯λλ€. μμ κ³Ό νμ§, μΈμ κ° κΈ°μ΅μ΄ μλΉμ€ μ λ’°μ±μ μ’μ°ν©λλ€.
μ²μλΆν° λ€ λ£μ§ μμ΅λλ€ β 볡μ‘λκ° μ¬λΌκ° λ μμλ₯Ό μ μ§μ μΌλ‘ μΆκ°νλ κ²μ΄ νλ€μ€ μ€κ³μ κΈ°λ³ΈκΈ°μ λλ€.
μμ΄μ ν± λ£¨νμ μ€μΌμ€νΈλ μ΄μ
Plan β Act β Observe β Reflect Β· μ μ΄ μ λ΅ 3κ°μ§
μμ΄μ ν± λ£¨ν
루ν 4λ¨κ³μ μ΄λ₯Ό μ μ΄νλ μ€μΌμ€νΈλ μ΄μ μ λ΅
Plan β Act β Observe β Reflect
μμ΄μ νΈμ μ¬μ₯μ λ¨μΌ νΈμΆμ΄ μλ λ°λ³΅ 루νμ λλ€ β 루νμ μ μ΄ λ°©μμ΄ κ³§ μ€μΌμ€νΈλ μ΄μ μ λ΅μ λλ€.
- 루ν 4λ¨κ³ β κ³ν Β· νλ Β· κ΄μ°° Β· μ±μ°°
- ReAct β μ¦ν₯μ λ°λ³΅, λΉ λ₯Έ μλ΅
- Plan-and-Execute β μ 체 κ³ν ν μμ°¨ μ€ν
- Tree of Thought β μ¬λ¬ κ²½λ‘ νμ ν μ΅μ μ ν
루νκ° μμ΄μ νΈλ₯Ό λ§λ€κ³ , μ€μΌμ€νΈλ μ΄μ μ λ΅μ΄ 루νλ₯Ό μ μ΄ν©λλ€ β νλ‘λμ μμλ λ°λ³΅ μνμ΄ νμμ λλ€.
루νλ₯Ό λλ 4λ¨κ³
λ¨μΌ νΈμΆ(Prompt β Response)μ΄ μλ λ°λ³΅ 루νκ° μμ΄μ νΈμ ν΅μ¬ β λ§€ μνλ§λ€ νλμ κ²°μ νκ³ κ²°κ³Όλ₯Ό κ΄μ°°
μ€μΌμ€νΈλ μ΄μ 3κ°μ§ μ λ΅
루νμ μ μ΄ λ°©μμ κ²°μ νλ μΈ μ λ΅κ³Ό κ°κ°μ μ ν© μν©
ReAct
Think β Act β Observe λ°λ³΅
- μ¦ν₯μ β λ§€ μ€ν λ§λ€ λ€μ νλ κ²°μ
- ꡬν λ¨μ, μλ΅ λΉ λ¦
- κΈ΄ λ€λ¨κ³ κ³νμλ λΆμ ν©
μΈμ β λ¨μ λꡬ νΈμΆ, λΉ λ₯Έ μλ΅μ΄ μ€μν λνν μμ΄μ νΈ
Plan-and-Execute
μ 체 κ³ν μ립 β μμ°¨ μ€ν
- κ³ν λ¨κ³μ μ€ν λ¨κ³λ₯Ό λΆλ¦¬
- 볡μ‘ν λ€λ¨κ³ νμ€ν¬μ κ°ν¨
- μ€κ° μν© λ³ν μ μ¬κ³ν νμ
μΈμ β λ¨κ³κ° λ§κ³ μμ‘΄ κ΄κ³κ° μλ 볡μ‘ν νμ€ν¬
Tree of Thought
μ¬λ¬ κ²½λ‘ νμ β μ΅μ μ ν
- ν보 κ²½λ‘λ₯Ό λ³λ ¬ νμΒ·νκ°
- μ λ΅μ΄ λΆνμ€ν μΆλ‘ μ κ°ν¨
- ν ν° λΉμ©μ΄ κ°μ₯ νΌ
μΈμ β νμκ³Ό λ°±νΈλνΉμ΄ νμν λΆνμ€ν μΆλ‘ λ¬Έμ
κΈ°λ³Έμ ReActμ λλ€ β νμ€ν¬κ° 볡μ‘ν΄μ§μλ‘ κ³ννΒ·νμνμΌλ‘ νμ₯νλ, λΉμ©κ³Ό μ§μ°μ ν¨κ» κ³μ°ν©λλ€.
ReAct 루ν β Strands κΈ°λ³Έ λμ
@tool ν¨μμ Agent 쑰립λ§μΌλ‘ μλ ꡬλλλ μμ΄μ ν± λ£¨ν
from strands import Agent, tool
from strands.models import BedrockModel
model = BedrockModel(model_id="us.anthropic.claude-sonnet-4-6")
@tool
def check_inventory(item: str) -> str:
"""μ¬κ³ λ₯Ό νμΈν©λλ€."""
return f"{item}: μ¬κ³ 12κ°"
# β μμ΄μ νΈ μ‘°λ¦½ β toolsλ₯Ό μ λ¬νλ©΄ μμ΄μ ν± λ£¨νκ° μλ ꡬλ
agent = Agent(
model=model,
system_prompt="μ¬κ³ λ¬Έμλ₯Ό μ²λ¦¬νλ μμ΄μ νΈμ
λλ€.",
tools=[check_inventory],
)
# β‘ μ€ν β PlanβActβObserveβReflect λ°λ³΅, limitsκ° λ°λ³΅ μν
result = agent("A4 μ©μ§ μ¬κ³ μμ΄?", limits={"turns": 10})
print(str(result)) # β’ κ²°κ³Ό ν
μ€νΈ μΆμΆ
- tools μλ 루ν β 리μ€νΈλ§ μ λ¬νλ©΄ 루νκ° μλ ꡬλ, λ³λ while 루νλ₯Ό μμ±νμ§ μμ΅λλ€
- 루ν μν β Agent μμ±μμλ max_iterationsκ° μμ΅λλ€, νΈμΆ μ limits(turnsΒ·ν ν° μμ°)κ° μ λ³Έ β Hooks(BeforeToolCallEvent)λ λꡬ νΈμΆ κ°μ μ© λ³΄μ‘° μλ¨
- str(result) β κ²°κ³Ό ν μ€νΈ μΆμΆ
μ€κ³ ν¨ν΄
Self-Correcting Β· Human-in-the-Loop Β· Checkpoint Β· Progressive Delegation
μ€κ³ ν¨ν΄
λ°λ³΅ κ²μ¦λ μ€κ³ ν¨ν΄κ³Ό μν©λ³ μ ν κΈ°μ€
κ²μ¦λ νλ€μ€ κ΅¬μ± λ°©λ²λ‘
λ°λ³΅μ μΌλ‘ κ²μ¦λ ν¨ν΄μ μ‘°ν©ν΄ νμ€ν¬ 볡μ‘λμ μνλμ λμν©λλ€.
- Self-Correcting β κ²°κ³Ό μ체 νκ° ν μ¬μλ
- Human-in-the-Loop β κ³ μν μ‘μ μΉμΈ κ²μ΄νΈ
- Checkpoint β μ€κ° μν μ μ₯ Β· 볡ꡬ
- Progressive Delegation β μ λ’°λ λ°λΌ κΆν νλ
ν¨ν΄μ λ°°νμ μ΄μ§ μμ΅λλ€ β νλμ μμ΄μ νΈμ μ¬λ¬ ν¨ν΄μ μ‘°ν©νκ³ , λ¨μν κ²λΆν° μ μ§ μ μ©ν©λλ€.
ν΅μ¬ ν¨ν΄ 7κ°μ§
λ°λ³΅ κ²μ¦λ μΌκ³± ν¨ν΄ β μ‘°ν© κ°λ₯νλ©°, νλ‘λμ μ μ©μ Self-CorrectingκΉμ§κ° μμ μ
| ν¨ν΄ | ν΅μ¬ μμ΄λμ΄ | μ ν© μν© |
|---|---|---|
| Retrieval-Augmented | RAG(κ²μ μ¦κ° μμ±) + λꡬ νΈμΆ κ²°ν© | λ¬Έμ κΈ°λ° μ§μμλ΅ |
| Self-Correcting | κ²°κ³Ό μ체 νκ° ν μ¬μλ | μ½λ μμ±, μ νλ μ€μ |
| Human-in-the-Loop | κ³ μν μ‘μ μ μΈκ° μΉμΈ | κ²°μ Β· μμ Β· νλ‘λμ λ³κ²½ |
| Checkpoint | μ€κ° μν μ μ₯ Β· 볡ꡬ | μ₯κΈ° μ€ν, μ₯μ 볡ꡬ |
| Progressive Delegation | μ λ’°λμ λ°λΌ κΆν νλ | μ μ§μ μμ¨μ± λΆμ¬ |
| Context Offloading | ν° κ²°κ³Όλ μΈλΆ μ μ₯, μμ½λ§ μ μ§ | λμ©λ κ²°κ³Ό, ν ν° μ μ½ |
| Self-Modifying | AIκ° μμ μ νλ€μ€λ₯Ό μμ β μ°κ΅¬ λ¨κ³ | Meta FAIR Hyperagents |
μν©λ³ ν¨ν΄ μ ν
μνλ β μ νλ β μ€ν μκ° μμΌλ‘ μ’νκ°λ μ ν νλ¦
Self-Correcting β μκΈ° κ΅μ 루ν
coderκ° μμ±νκ³ reviewerκ° κ²μ¦νλ λ μμ΄μ νΈμ μκΈ° κ΅μ 루ν
from strands import Agent
from strands.models import BedrockModel
model = BedrockModel(model_id="us.anthropic.claude-sonnet-4-6")
# β μν λΆλ¦¬ β μμ±νλ μμ΄μ νΈμ κ²μ¦νλ μμ΄μ νΈ
coder = Agent(
model=model,
system_prompt="Python μ½λλ₯Ό μμ±ν©λλ€. κ°κ²°νκ³ ν
μ€νΈ κ°λ₯νκ².",
)
reviewer = Agent(
model=model,
system_prompt="μ½λλ₯Ό 리뷰ν©λλ€. λ²κ·Έ, 보μ, μ±λ₯ λ¬Έμ λ₯Ό μ§μ ν©λλ€.",
)
# β‘ μκΈ° κ΅μ 루ν β 리뷰μ΄κ° μΉμΈν λκΉμ§ λ°λ³΅ κ°μ (μν νμ)
def self_correcting_loop(task: str, max_attempts: int = 3) -> str:
code = str(coder(task))
for _ in range(max_attempts):
review = str(reviewer(f"λ€μ μ½λλ₯Ό 리뷰νμΈμ. λ¬Έμ μμΌλ©΄ PASSλ§ μΆλ ₯:\n{code}"))
# β’ μ’
λ£ μ‘°κ±΄ β 리뷰 ν΅κ³Ό μ 루ν νμΆ
if "PASS" in review.upper():
return code
code = str(coder(f"리뷰 νΌλλ°±μ λ°μνμΈμ:\n{review}\nμλ³Έ:\n{code}"))
return code
- μν λΆλ¦¬ β coderμ reviewerμ μμ€ν ν둬ννΈκ° μλ‘ λ€λ₯Έ κ΄μ μ κ°μ , κ°μ λͺ¨λΈμ΄λΌλ μν μ΄ λλ©λλ€
- max_attempts β μ΅λ μλ νμκ° λ¬΄ν 루νλ₯Ό μ°¨λ¨, μκΈ° κ΅μ ν¨ν΄μ νμ μμ μ₯μΉ
- PASS νμ μ μμ β μ€μ μμλ ν μ€νΈ μ€νμ΄λ Structured OutputμΌλ‘ νμ ν©λλ€
ꡬν μ€ννΈλΌκ³Ό νλ‘λμ μ±μλ
μ½λ vs μ μΈ Β· 체ν¬λ¦¬μ€νΈ Β· μ±μλ 5λ¨κ³
μ€ννΈλΌκ³Ό μ±μλ
ꡬν λ°©μ μ νκ³Ό νλ‘λμ μ±μλ λ‘λλ§΅
μ½λ β μ μΈ, κ·Έλ¦¬κ³ μ±μλ
ꡬν μ€ννΈλΌμμ νλ‘μ νΈμ μμΉλ₯Ό μ νκ³ , νλ‘λμ μ±μλλ₯Ό λ¨κ³μ μΌλ‘ λμ΄μ¬λ¦½λλ€.
- μ€ννΈλΌ β μ½λ μ μ΄ vs μ μΈμ ꡬμ±
- 체ν¬λ¦¬μ€νΈ β μμ Β· μμ Β· 볡μ Β· λΉμ© Β· κ΄μΈ‘ Β· νμ§
- μ±μλ 5λ¨κ³ β ν둬ννΈλ§ β μμ¨ μ΄μ
- λΈλ¦¬μ§ β λκ΅¬λ³ κ΅¬νμ μ μ© λͺ¨λμμ
μ λ΅ μμΉλ μμ΅λλ€ β μ μ΄λ ₯ vs μλμ νΈλ μ΄λμ€νμ μ±μλ λ¨κ³λ‘ νλ‘μ νΈλ§λ€ νλ¨ν©λλ€.
ꡬν μ€ννΈλΌ β μ½λ vs μ μΈ
μ μ΄λ ₯κ³Ό κ΅¬μ± μλμ νΈλ μ΄λμ€ν β νλ‘μ νΈμ λ§λ μμΉ μ ν
μ½λλ‘ μ μ΄
Strands Β· LangGraph
- μ μ΄λ ₯ μ΅κ³ β 루νμ μνλ₯Ό μ½λλ‘ μ μ
- @tool Β· Hooks Β· κ·Έλν λ± μ»€μ€ν μμ
- μΈνλΌ λ°°ν¬μ μ΄μμ μ§μ μ± μ
컀μ€ν μ€μΌμ€νΈλ μ΄μ κ³Ό 볡μ‘ν μν λ¨Έμ μ΄ νμν λ μ νν©λλ€. μ½λκ° κ³§ νλ€μ€μ λͺ μΈκ° λ©λλ€.
μ μΈμΌλ‘ ꡬμ±
κ΄λ¦¬ν νλ€μ€
- κ΅¬μ± μλ μ΅κ³ β μ€μ μ μΈμΌλ‘ μμ±
- λͺ¨λΈ Β· λꡬ Β· λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νμΌλ‘ μ 곡
- 컀μ€ν λ²μλ μ 곡 μ΅μ μμΌλ‘ μ ν
AgentCore Managed Harnessμ²λΌ νλ€μ€ μ체λ₯Ό μλΉμ€λ‘ λ°μ΅λλ€. νλ‘ν νμ κ³Ό νμ€νλ μμ΄μ νΈμ μ 리ν©λλ€.
νΈλ μ΄λμ€νλ μ μ΄λ ₯ vs μλμ λλ€ β μ μΈμΌλ‘ λΉ λ₯΄κ² μμνκ³ , μΈλ°ν μ μ΄κ° νμν΄μ§λ©΄ μ½λλ‘ μ νν©λλ€.
νλ‘λμ 체ν¬λ¦¬μ€νΈ
λ°°ν¬ μ λ°λμ νμΈνλ μμ Β· μμ Β· 볡μ Β· λΉμ© Β· κ΄μΈ‘ Β· νμ§ 6νλͺ©
μ¬μ― νλͺ©μ μ λΆ 5λ κ΅¬μ± μμμ μ§μ μ΄λ£Ήλλ€ β 체ν¬λ¦¬μ€νΈκ° κ³§ Tool Β· Orchestrator Β· Memory Β· Guard Β· Evalμ μ κ²νμ λλ€.
μ±μλ 5λ¨κ³
ν둬ννΈλ§ μλ Level 1μμ μμ¨ μ΄μ Level 5κΉμ§μ μ±μ₯ κ³λ¨
ν λ²μ Level 5λ₯Ό λ Έλ¦¬μ§ μμ΅λλ€ β Level 2μμ μμν΄ μ μ§μ μΌλ‘ μ¬λ €μΌ 볡μ‘μ±μ΄ ν΅μ λ©λλ€.
ꡬνμ μ μ© λͺ¨λμμ
StrandsΒ·LangGraphΒ·AgentCoreΒ·Kiro β μ½λΒ·κ·ΈλνΒ·μ μΈΒ·κ°λ° μμ μ κ°κ° λννλ λ€ κ°λ νλ€μ€
λκ΅¬λ³ κ΅¬νμ μ μ© λͺ¨λμ΄ λ³Έλ Ή
μ΄ λͺ¨λμ νλ€μ€μ κ°λ κ³Ό μ€κ³κΉμ§ λ€λ£Ήλλ€ β κ° κ΅¬ν λꡬμ μμΈλ μ μ© λͺ¨λμμ μ΄μ΄μ§λλ€.
- Strands Agents SDK β μ½λ λ 벨 νλ€μ€ (Strands κ³μ΄ λͺ¨λ)
- LangGraph β κ·Έλν μν λ¨Έμ νλ€μ€ (LangChain Β· LangGraph λͺ¨λ)
- AgentCore Managed Harness β μ μΈμ κ΄λ¦¬ν νλ€μ€ (AgentCore κ³μ΄ λͺ¨λ)
- Kiro β κ°λ° μμ νλ€μ€ (Kiro κ³μ΄ λͺ¨λ)
μ€ννΈλΌ μ μ΄λ μμΉλ μ리λ κ°μ΅λλ€ β Agent = Model + Harness, νλ‘λμ νμ§μ νλ€μ€κ° κ²°μ ν©λλ€.
μ§ν Β· μ μ Β· 루ν Β· ν¨ν΄ Β· μ±μλ β νλ€μ€ μμ§λμ΄λ§μ ν΅μ¬