--- id: wiki-2026-0508-tool-use-function-calling title: "Tool Use & Function Calling" category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [P-Reinforce-AUTO-TULC-001] duplicate_of: none source_trust_level: A confidence_score: 1.0 tags: [auto-reinforced, tool-use, function-calling, api-integration, agent-action] raw_sources: [] last_reinforced: 2026-05-04 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Tool Use & Function Calling|Tool Use & Function Calling]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > "μ§€λŠ₯의 손과 발: ν…μŠ€νŠΈ μƒμ„±μ˜ ν•œκ³„λ₯Ό λ„˜μ–΄, μ™ΈλΆ€ APIλ₯Ό ν˜ΈμΆœν•˜κ±°λ‚˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•¨μœΌλ‘œμ¨ ν˜„μ‹€ 세계에 직접적인 영ν–₯을 미치고 μ •ν™•ν•œ μ™ΈλΆ€ 데이터λ₯Ό κ°€μ Έμ˜€λŠ” μ—μ΄μ „νŠΈμ˜ 핡심 μΈν„°νŽ˜μ΄μŠ€." ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) 도ꡬ μ‚¬μš©(Tool Use) λ˜λŠ” ν•¨μˆ˜ 호좜(Function Calling)은 λͺ¨λΈμ΄ 슀슀둜 ν•΄κ²°ν•  수 μ—†λŠ” μž‘μ—…μ„ μ™ΈλΆ€ μ‹œμŠ€ν…œμ— μœ„μž„ν•˜λŠ” κΈ°μˆ μž…λ‹ˆλ‹€. 1. **μž‘λ™ 원리**: * **도ꡬ μ •μ˜ (Definition)**: λͺ¨λΈμ—κ²Œ μ‚¬μš© κ°€λŠ₯ν•œ λ„κ΅¬μ˜ 이름, μ„€λͺ…, λ§€κ°œλ³€μˆ˜(Parameter) μŠ€ν‚€λ§ˆλ₯Ό 미리 μ•Œλ €μ€λ‹ˆλ‹€. * **호좜 κ²°μ • (Selection)**: μ‚¬μš©μžμ˜ μ§ˆλ¬Έμ— λ‹΅ν•˜κΈ° μœ„ν•΄ νŠΉμ • 도ꡬ가 ν•„μš”ν•˜λ‹€κ³  νŒλ‹¨λ˜λ©΄, λͺ¨λΈμ€ λ‹΅λ³€ λŒ€μ‹  ν•΄λ‹Ή 도ꡬλ₯Ό ν˜ΈμΆœν•˜κΈ° μœ„ν•œ JSON ν˜•νƒœμ˜ λͺ…λ Ήμ–΄λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€. * **κ²°κ³Ό 반영 (Integration)**: μ™ΈλΆ€ μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰λœ κ²°κ³Ό(예: 날씨 데이터, DB 쿼리 κ²°κ³Ό)λ₯Ό λ‹€μ‹œ λͺ¨λΈμ—κ²Œ μž…λ ₯ν•˜μ—¬ μ΅œμ’… 닡변을 μƒμ„±ν•©λ‹ˆλ‹€. 2. **μ£Όμš” 사둀**: * **Search**: μ΅œμ‹  정보λ₯Ό μœ„ν•΄ μ›Ή 검색 도ꡬ ν™œμš©. * **Calculator/Python**: μ •ν™•ν•œ 수치 κ³„μ‚°μ΄λ‚˜ 데이터 뢄석을 μœ„ν•΄ μ½”λ“œ μ‹€ν–‰κΈ° ν™œμš©. * **Database**: κΈ°μ—… λ‚΄ 데이터 쑰회λ₯Ό μœ„ν•΄ SQL 쿼리 생성 및 μ‹€ν–‰. 3. **λ°œμ „**: * μ΅œμ‹  λͺ¨λΈλ“€μ€ μ—¬λŸ¬ 개의 도ꡬλ₯Ό λ™μ‹œμ— 호좜(Parallel Tool Use)ν•˜κ±°λ‚˜, λ³΅μž‘ν•œ μˆœμ„œλ‘œ 도ꡬλ₯Ό μ—°κ²°ν•˜λŠ” λŠ₯λ ₯이 맀우 λ›°μ–΄λ‚©λ‹ˆλ‹€. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) * **λ³΄μ•ˆ μœ„ν—˜**: λͺ¨λΈμ΄ μ•…μ˜μ μΈ λͺ…λ Ήμ–΄λ₯Ό μƒμ„±ν•˜μ—¬ μ‹œμŠ€ν…œμ„ νŒŒκ΄΄ν•˜κ±°λ‚˜ μ€‘μš” 데이터λ₯Ό μœ μΆœν•  수 μžˆμœΌλ―€λ‘œ, μ‹€ν–‰ ν™˜κ²½(Sandbox)의 μ—„κ²©ν•œ 격리가 ν•„μˆ˜μ μž…λ‹ˆλ‹€. * **ν™˜κ° (Hallucination)**: μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 도ꡬλ₯Ό λΆ€λ₯΄κ±°λ‚˜, λ„κ΅¬μ˜ λ§€κ°œλ³€μˆ˜λ₯Ό 잘λͺ» μƒμ„±ν•˜λŠ” 였λ₯˜κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. ## πŸ”— 지식 μ—°κ²° (Graph) * **μƒμœ„ κ°œλ…**: [[Autonomous Agents & Workflows|Autonomous Agents & Workflows]] * **μ—°κ΄€ 기술**: [[Model Context Protocol (MCP)|Model Context Protocol (MCP)]], [[API Design|API Design]] * **ν•΄κ²° 기술**: [[Execution Environment (Sandbox)|Execution Environment (Sandbox)]] --- *Last updated: 2026-05-04* ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*