LLM5 [3/3] Harness와 MCP를 결합한 AI Agent 구축 지금까지 진행한 Python → Tool Calling → Agent Loop → MCP → Skill → Harness가 실제 코드 하나로 어떻게 합쳐지는지 이해하는 단계입니다.특히 이번에는 코드를 단순히 한 줄씩 번역하기보다는,“이 코드가 왜 필요한가 → 실행하면 무슨 일이 일어나는가 → 데이터가 어디로 이동하는가”를 중심으로 설명하겠습니다.1. 먼저 전체 그림부터 잡겠습니다우리가 지금 만든 시스템은 크게 두 개의 프로그램입니다.┌──────────────────────────────────────────────────────────┐│ Harness / AI Agent ││ .. 2026. 10. 5. [2/3] 하니스엔지니어링(Harness Engineering) 로직 구현 이번 코드는 앞서 공부한 MCP + Skill 구조에서 한 단계 더 발전한 형태입니다.이전에는 우리가 다음 구조를 공부했습니다.SKILL.md → LLM → MCP Tool → MCP Server → 실제 데이터 → LLM → 답변이번에는 여기에 Harness Engineering이 추가됩니다.즉,“LLM에게 일을 시키는 것”에서 끝나는 것이 아니라, LLM이 여러 작업을 안정적으로 수행하도록 바깥에서 계획·상태·저장·재실행을 관리하는 구조입니다.특히 이번 코드에서 꼭 이해해야 할 핵심은 다음 5가지입니다.① SKILL.md → AI에게 "어떻게 일할지" 가르친다.② Tool → AI가 실제 데이터를 가져오게 한다.③ Agent Loop → Tool 호출 → 결과 전달.. 2026. 10. 4. XVI. 작은 AI Agent에 5가지 기능을 추가한 프로그램(끝) # 1. Tools from pathlib import Path def calculator(expr:str)->str: """(20*4)+15와 같은 간단한 산술 표현식을 계산합니다.""" allowed = set("0123456789+-*/().") expr = expr.replace(" ", "") if not expr or not set(expr) allowed: return "오류: 숫자와 +-*/().만 허용됩니다." try: return str(eval(expr)) except (SyntaxError, ZeroDivisionError) as e: .. 2026. 8. 26. V. AI Agent의 핵심 부품들 하나씩 만들어보기 # 1. Tool 실행과 안전장치 TOOLS = {"calculator": lambda a: eval_expr(a.get("expr",""))} def eval_expr(expr): return f"{expr}의 결과값" def run_tool(name, args, steps, max_steps): if steps >= max_steps: return "중지되었습니다. 단계 제한에 도달하였습니다." if name not in TOOLS: return f"중지되었습니다. {name}이라는 툴이 없습니다." if not isinstance(args, dict): return "중지.. 2026. 8. 23. IV. AI Agent가 LLM의 응답을 JSON으로 받고, 그 안에서 Tool 이름과 인자(arguments)를 꺼내서 실제 Tool 실행으로 연결하기 위한 기초 # 1. JSON 문자열을 Python 객체로. import json raw = '{"tool":"search", "args":{"query":"refund policy"}, "done":false}' data = json.loads(raw) print(type(data)) print(data["tool"]) print(data["args"]["query"]) print(data["done"], type(data["done"])) #-------- 2. Python 객체를 JSON 문자열로 import json payload = { "model":"some-model", "max_tokens": 2048, .. 2026. 8. 22. 이전 1 다음 반응형