π μμ΄μ νΈ ν둬νν
λꡬ μ€λͺ , μμ€ν ν둬ννΈ κ΅¬μ‘°, μΆλ‘ λͺ¨λ μ λ
μμ΄μ νΈ ν둬ννΈ μ€κ³
λꡬ μ€λͺ , μμ€ν ν둬ννΈ κ΅¬μ‘°, μΆλ‘ λͺ¨λ μ λ
μμ΄μ νΈμ κΈ°μ΅κ³Ό νλ¨μ μ€κ³νλ€
μν κ΄λ¦¬ λ©μ»€λμ¦κ³Ό μμ΄μ νΈ ν둬ννΈ μ€κ³μ ν΅μ¬ μ리
μμ΄μ νΈ ν둬ννΈ μ€κ³
μΌλ° vs μμ΄μ νΈ Β· μμ€ν ν둬ννΈ κ΅¬μ‘° Β· description Β· μΆλ‘ μ λ
μμ΄μ νΈ ν둬ννΈ μ€κ³
μμ€ν ν둬ννΈ κ΅¬μ‘°λΆν° μΆλ‘ λͺ¨λ μ λκΉμ§ β λ΅λ³μ΄ μλλΌ νλμ μ€κ³νλ κ΄μ
μ’μ λ΅λ³μ΄ μλλΌ μ¬λ°λ₯Έ νλ
μμ΄μ νΈ ν둬ννΈλ λꡬ μ νκ³Ό μ€νμ μ§λ°°ν©λλ€ β 4λΈλ‘ ꡬ쑰μ description νμ§, μΆλ‘ λͺ¨λ μ λκ° νλ νμ§μ κ²°μ ν©λλ€.
- μμ€ν ν둬ννΈ 4λΈλ‘ β μν Β· κ·μΉ Β· νμ Β· μ ν
- description νμ§ β λꡬ μ ν μ νλλ₯Ό κ²°μ
- μΆλ‘ μ λ β ReAct vs Plan-and-Execute
- κ°μ 루ν β ν μ€νΈ β μ μ½ μΆκ° β μλ νκ°
μλͺ»λ ν둬ννΈμ λκ°λ λΆμ νν ν μ€νΈκ° μλλΌ μλͺ»λ λꡬ νΈμΆμ΄λΌλ λΆμμ©μ λλ€.
μΌλ° ν둬ννΈ vs μμ΄μ νΈ ν둬ννΈ
"μ’μ λ΅λ³"μ΄ μλλΌ "μ¬λ°λ₯Έ νλ"μ μ λ
λꡬ μ μμ μ€ν€λ§ μμ±μ κΈ°λ³Έμ γAI μμ΄μ νΈ κΈ°μ΄γ λͺ¨λμ λꡬ μ€κ³ ννΈμμ λ€λ£Ήλλ€. μ΄ ννΈλ μμ€ν ν둬ννΈ κ΅¬μ‘°μ μΆλ‘ μ λ κ΄μ μμ μ¬νν©λλ€.
μμ€ν ν둬ννΈ 4λΈλ‘ ꡬ쑰
μμ΄μ νΈκ° μ¬λ°λ₯΄κ² νλνλλ‘ νλ μ€κ³ ꡬ쑰
# μμ€ν
ν둬ννΈ 4λΈλ‘ β μν Β·κ·μΉΒ·νμΒ·μ ν
"""
## β μν (Role)
λΉμ μ AWS λΉμ© λΆμ μ λ¬Έκ°μ
λλ€.
λꡬλ₯Ό μ¬μ©νμ¬ μ νν λ°μ΄ν° κΈ°λ°μΌλ‘ λ΅λ³ν©λλ€.
## β‘ νλ κ·μΉ (Rules)
- λΉμ© λ°μ΄ν° νμ β get_cost_data λ¨Όμ νΈμΆ
- μΆμΈ‘ κΈμ§ β νμ λꡬ κ²°κ³Ό κΈ°λ°
- ν λ²μ λꡬ 3κ° μ΄μ μ°μ νΈμΆ κΈμ§
## β’ μΆλ ₯ νμ (Format)
- κΈμ‘: USD, μμμ 2μ리
- μ¦κ°λ₯ : νΌμΌνΈ
- μμ½ λ¨Όμ , μμΈ λμ€μ
## β£ μ ν (Constraints)
- λΉμ© μ΅μ ν "μ€ν"μ κΈμ§ (λΆμκ³Ό μ μλ§)
- λ€λ₯Έ κ³μ μ κ·Ό κΈμ§
"""
- μν β μ μ²΄μ± + νλ λ°©μΉ¨. "λκ΅¬λ‘ λ°μ΄ν° κΈ°λ° λ΅λ³"κΉμ§ μν μ ν¬ν¨
- νλ κ·μΉ β λꡬ μ¬μ© μμΒ·μΆμΈ‘ κΈμ§Β·νΈμΆ νμ μ ν. μ€λμ μ κ°μ₯ λ¨Όμ μλ³Ό λΈλ‘
- μΆλ ₯ νμ β λ¨μΒ·μλ¦ΏμΒ·μμ μμλ₯Ό κ³ μ ν΄ μλ΅ μΌκ΄μ± ν보
- μ ν β κΆνμ κ²½κ³. λͺ» νκ² ν μΌ(μ€ν κΈμ§Β·κ³μ μ κ·Ό κΈμ§)μ λͺ μ
descriptionμ΄ μ νλλ₯Ό κ²°μ
LLMμ΄ λꡬλ₯Ό κ³ λ₯΄λ μ μΌν κ·Όκ±° β description
ν μ€ μ€λͺ
λͺ¨νΈν μμ β μ μ¬ λꡬμ νΌλ
쑰건·νμΒ·μμλ₯Ό λ΄μ μ€λͺ
νΈμΆ μμ + νλΌλ―Έν° νμ + λ°ν μμ
κ³Όλν μ€λͺ
ν΅μ¬ λ°μ μΈλΆκ° λ Έμ΄μ¦λ‘ μμ©
descriptionμ κΈΈμ΄κ° μλλΌ νλ¨ μ 보μ λ°λκ° κ΄κ±΄μ λλ€ β νΈμΆ μμ Β·μ λ ₯Β·μΆλ ₯μ΄ λλ¬λλμ§λ₯Ό κΈ°μ€μΌλ‘ λ€λ¬μ΅λλ€.
μ’μ description 곡μ
"μΈμ " + "λ λ£κ³ " + "λ λ°λ" + "μ£Όμμ¬ν"
νμ μμ
- μΈμ : "λΉμ© κΈμ‘/μ¦κ°/μΆμ΄ μ§λ¬Έ μ νΈμΆ"
- μ λ ₯: service β AWS μλΉμ€λͺ (ec2, s3)
- μ λ ₯: period β μ‘°ν κΈ°κ° (last-7d)
- μΆλ ₯: μΌλ³ λΉμ© λ°μ΄ν° (JSON)
- μ£Όμ: μλΉμ€λͺ λΆλͺ ννλ©΄ νμΈ ν νΈμΆ
λμ μ
- "λ°μ΄ν°λ₯Ό κ°μ Έμ΅λλ€"
- "λΉμ© κ΄λ ¨ μμ "
- "query" (νλΌλ―Έν°λ§)
μΆλ‘ λͺ¨λ μ λ
μμ€ν ν둬ννΈλ‘ μμ΄μ νΈμ μ¬κ³ λ°©μμ κ²°μ
ReAct μ λ
κΈ°λ³Έ β λ¨κ³λ³ μ μ
- "λ¨κ³λ³λ‘ λ΅νμΈμ"
- "λꡬλ₯Ό νλμ© νΈμΆνκ³ κ²°κ³Όλ₯Ό νμΈ"
- κ°λ¨ν μ§μ, λꡬ 1~2κ°μ μ ν©
- Strands κΈ°λ³Έ λμ
{'text': 'λ§€ μ€ν μ μμ΄ νμν λνν μμ΄μ νΈμ μ ν©ν©λλ€. μ¬μ©μ μλκ° λ°λ μ μμ λ.', 'code': 'system_prompt = """\nμ¬μ©μ μ§λ¬Έμ λ¨κ³λ³λ‘ λ΅νμΈμ.\nκ° λ¨κ³μμ νμν λꡬλ₯Ό νλμ© νΈμΆνκ³ ,\nκ²°κ³Όλ₯Ό νμΈν λ€ λ€μ λ¨κ³λ₯Ό κ²°μ νμΈμ.\n"""', 'codeLang': 'python'}
Plan-and-Execute μ λ
λ³΅ν© μμ μ©
- "λ¨Όμ κ³νμ μΈμ°μΈμ"
- "κ³νμ 보μ¬μ£Όκ³ μΉμΈ ν μ€ν"
- λ³΅ν© μμ , λꡬ 3+κ° μ‘°ν©μ μ ν©
- ν둬ννΈλ‘ μ λ (λͺ μμ μ§μ)
{'text': '볡μ‘ν λ©ν°μ€ν μμ μμ μ¬μ©μκ° κ³νμ 미리 νμΈνκ³ μΆμ λ. HITLκ³Ό μμ°μ€λ½κ² κ²°ν©.', 'code': 'system_prompt = """\nμ¬μ©μ μ§λ¬Έμ λ°μΌλ©΄:\n1. νμν λ¨κ³λ₯Ό κ³ννμΈμ (λꡬ νΈμΆ μμ)\n2. κ³νμ μ¬μ©μμκ² λ³΄μ¬μ£ΌμΈμ\n3. μΉμΈ ν μμλλ‘ μ€ννμΈμ\n"""', 'codeLang': 'python'}
ν둬ννΈ κ°μ 루ν
1νμ±μ΄ μλ μ§μμ λ°λ³΅ κ°μ
-
1
μ΄κΈ° μμ±
μν + κ·μΉ + νμ + μ νμΌλ‘ μ΄μ μμ±
-
2
ν μ€νΈ
5~10건 μ€ν β μ€ν¨ ν¨ν΄ μμ§ (λꡬ μ ν μ€λ₯, λ²μ μ΄κ³Ό)
-
3
μ μ½ μΆκ°
μ€ν¨ ν¨ν΄μ λν λͺ μμ κ·μΉ μΆκ° β μ¬ν μ€νΈ
-
4
μλ νκ°
strands-agents-evalsλ‘ μ μ κΈ°λ° λΉκ΅ β A/B ν μ€νΈ
μ€ν¨ ν¨ν΄μ λͺ¨μ λͺ μμ κ·μΉμΌλ‘ λλ¨Ήμ΄λ λ°λ³΅μ λλ€ β κ°μ΄ μλλΌ strands-agents-evals μ μλ‘ κ°μ μ κ²μ¦ν©λλ€.
messages[] Β· SessionManager Β· description Β· νλ κ·μΉ