docs: expand 3 engineering pillars into 4 slides with examples and add script

This commit is contained in:
2026-07-19 14:37:21 +09:00
parent a027cf8885
commit 9620de9ae6
5 changed files with 261 additions and 90 deletions
+68 -28
View File
@@ -72,6 +72,9 @@ marp: true
사용자가 최종 목표만 주면 스스로 실행 가능한 단계별 세부 태스크를 설계하고, 진행 과정에서 문제가 생기면 계획을 유연하게 수정하는 능력입니다. 사용자가 최종 목표만 주면 스스로 실행 가능한 단계별 세부 태스크를 설계하고, 진행 과정에서 문제가 생기면 계획을 유연하게 수정하는 능력입니다.
- **Task Decomposition (작업 분해)**: 복잡한 목표를 실행 가능한 작은 단위의 세부 태스크로 분할 (예: Chain of Thought, Tree of Thoughts 등)
- **Self-Reflection (자기 성찰 및 피드백)**: 행동 결과를 스스로 분석하고 실수를 교정하여 향후 계획을 실시간으로 수정 (예: ReAct, Reflexion 프레임워크)
* **실제 예시**: * **실제 예시**:
에이전트에게 "블로그 기사 작성"을 요청하면, 스스로 **'키워드 조사 ➡️ 개요 작성 ➡️ 본문 집필 ➡️ 오탈자 검사'** 순으로 계획을 세웁니다. 만약 맞춤법 검사 도중 치명적인 논리 오류를 발견하면, 본문 작성 단계로 스스로 되돌아가 계획을 수정하고 다시 쓰는 자가 성찰(Self-Reflection)을 거칩니다. 에이전트에게 "블로그 기사 작성"을 요청하면, 스스로 **'키워드 조사 ➡️ 개요 작성 ➡️ 본문 집필 ➡️ 오탈자 검사'** 순으로 계획을 세웁니다. 만약 맞춤법 검사 도중 치명적인 논리 오류를 발견하면, 본문 작성 단계로 스스로 되돌아가 계획을 수정하고 다시 쓰는 자가 성찰(Self-Reflection)을 거칩니다.
@@ -81,6 +84,9 @@ marp: true
현재 나누는 대화의 즉각적인 흐름(단기 기억)뿐만 아니라, 과거의 경험과 누적된 지식(장기 기억)을 필요할 때마다 영속적으로 꺼내어 쓰는 능력입니다. 현재 나누는 대화의 즉각적인 흐름(단기 기억)뿐만 아니라, 과거의 경험과 누적된 지식(장기 기억)을 필요할 때마다 영속적으로 꺼내어 쓰는 능력입니다.
- **Short-term Memory (단기 기억)**: 현재 대화나 컨텍스트 윈도우 내에서 실시간으로 유지되는 즉각적인 맥락 정보
- **Long-term Memory (장기 기억)**: 외부 데이터베이스나 벡터 DB를 활용하여 과거 대화 기록 및 지식을 RAG 기법으로 바인딩하는 정보 보존 공간
* **실제 예시**: * **실제 예시**:
에이전트에게 "어제 작업하던 파이썬 소스코드의 오류를 이어서 수정해줘"라고 요청하는 경우입니다. 에이전트는 데이터베이스에 누적된 과거 대화 히스토리와, 벡터 DB에 저장되어 있는 소스코드의 예전 상태 정보를 동적으로 인출(Retrieval)해 와 대화 맥락을 끊김 없이 이어갑니다. 에이전트에게 "어제 작업하던 파이썬 소스코드의 오류를 이어서 수정해줘"라고 요청하는 경우입니다. 에이전트는 데이터베이스에 누적된 과거 대화 히스토리와, 벡터 DB에 저장되어 있는 소스코드의 예전 상태 정보를 동적으로 인출(Retrieval)해 와 대화 맥락을 끊김 없이 이어갑니다.
@@ -108,6 +114,8 @@ marp: true
현재 에이전트 기술에서 가장 중요한 변화 중 하나는, 과거에 에이전트 제어 시스템(Scaffolding, 에이전트의 구동을 돕는 외부 뼈대 구조)이 수동으로 제어하던 기능들이 점점 AI 모델 내부로 흡수되고 있는 현상입니다. 현재 에이전트 기술에서 가장 중요한 변화 중 하나는, 과거에 에이전트 제어 시스템(Scaffolding, 에이전트의 구동을 돕는 외부 뼈대 구조)이 수동으로 제어하던 기능들이 점점 AI 모델 내부로 흡수되고 있는 현상입니다.
- https://arca.live/b/characterai/174977057?category=%EB%89%B4%EC%8A%A42&p=1
- **스스로 생각하는 모델의 등장 (Test-time Compute, 추론 시점 추가 연산)** - **스스로 생각하는 모델의 등장 (Test-time Compute, 추론 시점 추가 연산)**
최근 출시된 Gemini Thinking이나 OpenAI o1/o3 같은 모델들은 외부 시스템이 루프를 돌려주지 않아도, 모델 스스로 출력을 내보내기 전에 내부적으로 계획을 세우고(Planning) 스스로 오류를 성찰(Reflection)하는 과정을 완료합니다. 최근 출시된 Gemini Thinking이나 OpenAI o1/o3 같은 모델들은 외부 시스템이 루프를 돌려주지 않아도, 모델 스스로 출력을 내보내기 전에 내부적으로 계획을 세우고(Planning) 스스로 오류를 성찰(Reflection)하는 과정을 완료합니다.
- **인지와 집행의 명확한 역할 분담** - **인지와 집행의 명확한 역할 분담**
@@ -119,41 +127,73 @@ marp: true
# 1. AI 에이전트 구현을 위한 3대 핵심 엔지니어링 기법 # 1. AI 에이전트 구현을 위한 3대 핵심 엔지니어링 기법
## AI 모델(LLM) vs AI 에이전트 성공적인 AI 에이전트 시스템을 구현하기 위해서는 단순히 모델에게 프롬프트를 입력하는 것을 넘어, **모델 제어**, **정보 연동**, **물리적 환경 연결**을 유기적으로 엮어내는 3가지 핵심 엔지니어링 기법이 필요합니다.
AI 에이전트(AI Agent)는 단순히 사용자의 텍스트 입력을 받아 응답을 생성하는 대화형 인터페이스(Chatbot)를 넘어, 주어진 최종 목표(Goal)를 자율적으로 달성하기 위해 환경을 인식(Perceive)하고, 스스로 계획(Planning) 및 추론(Reasoning)하며, 도구를 사용해 물리적/디지털적 행동(Action)을 수행하는 LLM 기반 소프트웨어 시스템입니다.
LLM 기반 에이전트 시스템 아키텍처는 크게 다음 3가지 핵심 요소로 구성됩니다: 1. **프롬프트 엔지니어링 (Prompt Engineering)**: 에이전트의 페르소나와 사고 방식(추론 가이드라인)을 규정하는 작업입니다.
1. **Planning (계획 및 추론)** 2. **컨텍스트 엔지니어링 (Context Engineering)**: 대화 흐름을 끊김 없이 보존하고 관련 데이터를 적시에 제공하는 정보 정리 작업입니다.
- **Task Decomposition (작업 분해)**: 복잡한 목표를 실행 가능한 작은 단위의 세부 태스크로 분할 (예: Chain of Thought, Tree of Thoughts 등) 3. **하네스 엔지니어링 (Harness Engineering)**: 격리된 환경에서 다양한 소프트웨어 도구를 안전하게 조작할 수 있는 물리적 손발을 달아주는 작업입니다.
- **Self-Reflection (자기 성찰 및 피드백)**: 행동 결과를 스스로 분석하고 실수를 교정하여 향후 계획을 실시간으로 수정 (예: ReAct, Reflexion 프레임워크)
2. **Memory (기억 장치)**
- **Short-term Memory (단기 기억)**: 현재 대화나 컨텍스트 윈도우 내에서 실시간으로 유지되는 즉각적인 맥락 정보
- **Long-term Memory (장기 기억)**: 외부 데이터베이스나 벡터 DB를 활용하여 과거 대화 기록 및 지식을 RAG 기법으로 바인딩하는 정보 보존 공간
- https://arca.live/b/characterai/174977057?category=%EB%89%B4%EC%8A%A42&p=1 ---
## 3대 핵심 엔지니어링 기법 ### 1️⃣ 프롬프트 엔지니어링 (Prompt Engineering)
성공적인 AI 에이전트 구현을 위해서는 모델 제어, 정보 연동, 물리적 환경 연결을 최적화하는 3대 엔지니어링 기법이 필수적으로 수반되어야 합니다.
- ### 프롬프트 엔지니어링 (Prompt Engineering) 에이전트가 주체적으로 판단하고 행동의 방향성을 잃지 않도록 역할 페르소나를 설계하고, **ReAct(Reason + Action)**와 같은 단계별 사고 흐름(Thought ➡️ Action ➡️ Observation)을 유도하는 기법입니다.
에이전트에게 명확한 역할 페르소나와 추론 가이드라인을 설계하고, 효율적인 추론 경로를 유도하기 위해 프롬프트 구조와 예시(Few-shot)를 최적화하는 기법입니다.
- **역할 페르소나 설계**: 에이전트가 특정 전문 도메인 지식과 행동 양식을 고수할 수 있도록 페르소나를 규정
- **추론 가이드라인 설계**: ReAct와 같은 사고 단계를 정의하여 모델이 계획 단계를 건너뛰지 않고 순차적으로 사고하도록 제어
- **Few-shot 최적화**: 최적의 추론 경로 및 응답 포맷 예시를 프롬프트에 제공하여 응답 일관성을 극대화
- ### 컨텍스트 엔지니어링 (Context Engineering) * **핵심 설계 요소**:
대화 상태(State)와 흐름을 보존하며, 외부 데이터베이스나 기억(Memory) 장치로부터 필요한 정보를 적시에 모델의 컨텍스트 윈도우에 효율적으로 바인딩하고 공급하는 기술입니다. 단일 에이전트 관점에서는 제한된 컨텍스트 공간 내에서 정보 밀도를 극대화하는 설계가 핵심입니다. - **페르소나 설계**: 전문 도메인 지식과 행동 양식(예: "너는 주니어 개발자를 코칭하는 꼼꼼한 테크리더 에이전트다") 부여
- **대화 상태 및 흐름 보존**: 이전 턴의 작업 상태와 대화 맥락을 유실 없이 세션 전반에 유지 - **추론 가이드라인**: 계획을 건너뛰고 섣부른 답변을 내지 않도록 논리적인 생각 단계를 의도적으로 설정
- **적시 동적 바인딩**: 외부 RAG 검색기나 메모리 캐시로부터 관련성이 가장 높은 데이터만을 선별하여 컨텍스트 윈도우에 결합 * **실제 프롬프트 구조 예시**:
- **메모리 압축 및 정리**: 불필요한 과거 로그를 요약하거나 중요 상태 구조체 위주로 정제하여 토큰 윈도우 효율성 제고 ```text
[System Prompt]
너는 복잡한 수식을 계산하는 수학 에이전트다. 다음 형식으로 사고해라:
- Thought: 문제 해결을 위한 다음 행동 계획을 작성해라.
- Action: 호출할 도구 이름과 인자값을 JSON으로 적어라. (예: Calculator)
- Observation: 도구 실행 결과가 여기에 채워질 것이다.
- Thought: 실행 결과를 바탕으로 성찰하고, 필요하면 다음 Action을 설계해라.
```
- ### 하네스 엔지니어링 (Harness Engineering) ---
에이전트가 계산기, 웹 브라우저, 외부 API 및 파일 시스템 등의 물리적 도구(Tools/Tool Use)에 안전하고 유연하게 연결되어 명령을 실행할 수 있도록 연결 고리를 결합하는 도구 연동 인터페이스 기술입니다.
- **물리 인터페이스 결합**: LLM의 도구 호출 의도(Tool Call)를 가로채어 실제 운영체제나 네트워크 상의 실행 스크립트로 전달하고 실행 결과를 모델에 반환
- **보안 샌드박싱**: 임의 코드 실행이나 파일 훼손 방지를 위해 파일 시스템 격리 및 API 호출 권한 등의 안전 제어막 형성
- **도구 활용 (Tool Use)**: 에이전트가 학습되지 않은 외부 정보에 접근하거나 외부 시스템에 영향을 미치기 위해 계산기, 코드 실행용 샌드박스, 웹 브라우저, 외부 API 등을 주도적으로 호출하는 능력
![Screenshot 2026-06-25 at 9.39.07 pm](../../assets/images/Screenshot%202026-06-25%20at%209.39.07%20pm.png) ### 2️⃣ 컨텍스트 엔지니어링 (Context Engineering)
에이전트가 다루는 대화 맥락과 작업 상태(State)를 효율적으로 정제하고, 수많은 외부 정보 중 **지금 꼭 필요한 관련 데이터(RAG)**만을 선별하여 제한된 AI의 기억 공간(컨텍스트 윈도우)에 밀도 높게 채워 넣는 기술입니다.
* **핵심 설계 요소**:
- **대화 상태 보존**: 이전 턴의 작업 결과를 유실 없이 보존
- **동적 바인딩**: 외부 RAG 검색기에서 관련도 높은 중요 데이터만 적시에 필터링하여 공급
- **메모리 압축**: 불필요한 과거 로그는 요약하고, 핵심 현재 상태 구조체만 유지해 토큰 낭비 방지
* **에이전트 상태 보존 예시 (State JSON)**:
```json
{
"task_id": "job_10294",
"current_working_directory": "/workspace/src",
"error_logs": ["SyntaxError: unexpected EOF while parsing at line 14"],
"completed_subtasks": ["1. 소스코드 로드 완료", "2. 오류 라인 식별"],
"next_action_required": "오류 라인 14의 괄호 닫힘 확인 및 수정 스크립트 작성"
}
```
---
### 3️⃣ 하네스 엔지니어링 (Harness Engineering)
에이전트가 파일 시스템 제어, 브라우저 조작, 외부 API 호출 등 컴퓨터 세상의 다양한 도구들을 안전하게 가동할 수 있도록 **물리적 인터페이스(연결 고리)**를 구성하는 기술입니다.
* **핵심 설계 요소**:
- **도구 호출 가로채기(Intercepting)**: 모델이 내놓은 도구 호출 의도(JSON 등)를 감지하고, 실제 터미널이나 프로그램의 함수로 전달해 구동함
- **보안 샌드박싱 (Sandboxing)**: 에이전트가 악성 코드나 파괴적인 명령어를 무단 실행하지 않도록 격리된 가상 환경을 구축하고 권한을 통제함
* **물리 인터페이스 도구 결합 예시**:
```
[LLM의 출력] ──> "Action: execute_command, args: { cmd: 'ls -la' }"
│ (하네스가 이를 가로챔)
[하네스 제어기] ──> 격리된 Docker 샌드박스 내부에서 'ls -la' 실제 실행
│ (실행 결과 가로챔)
[LLM의 입력] <── "Observation: total 12\ndrwxr-xr-x 3 user..." (모델에 반환)
```
![Harness Diagram](../../assets/images/Screenshot%202026-06-25%20at%209.39.07%20pm.png)
--- ---
@@ -69,6 +69,9 @@ marp: true
사용자가 최종 목표만 주면 스스로 실행 가능한 단계별 세부 태스크를 설계하고, 진행 과정에서 문제가 생기면 계획을 유연하게 수정하는 능력입니다. 사용자가 최종 목표만 주면 스스로 실행 가능한 단계별 세부 태스크를 설계하고, 진행 과정에서 문제가 생기면 계획을 유연하게 수정하는 능력입니다.
- **Task Decomposition (작업 분해)**: 복잡한 목표를 실행 가능한 작은 단위의 세부 태스크로 분할 (예: Chain of Thought, Tree of Thoughts 등)
- **Self-Reflection (자기 성찰 및 피드백)**: 행동 결과를 스스로 분석하고 실수를 교정하여 향후 계획을 실시간으로 수정 (예: ReAct, Reflexion 프레임워크)
* **실제 예시**: * **실제 예시**:
에이전트에게 "블로그 기사 작성"을 요청하면, 스스로 **'키워드 조사 ➡️ 개요 작성 ➡️ 본문 집필 ➡️ 오탈자 검사'** 순으로 계획을 세웁니다. 만약 맞춤법 검사 도중 치명적인 논리 오류를 발견하면, 본문 작성 단계로 스스로 되돌아가 계획을 수정하고 다시 쓰는 자가 성찰(Self-Reflection)을 거칩니다. 에이전트에게 "블로그 기사 작성"을 요청하면, 스스로 **'키워드 조사 ➡️ 개요 작성 ➡️ 본문 집필 ➡️ 오탈자 검사'** 순으로 계획을 세웁니다. 만약 맞춤법 검사 도중 치명적인 논리 오류를 발견하면, 본문 작성 단계로 스스로 되돌아가 계획을 수정하고 다시 쓰는 자가 성찰(Self-Reflection)을 거칩니다.
@@ -78,6 +81,9 @@ marp: true
현재 나누는 대화의 즉각적인 흐름(단기 기억)뿐만 아니라, 과거의 경험과 누적된 지식(장기 기억)을 필요할 때마다 영속적으로 꺼내어 쓰는 능력입니다. 현재 나누는 대화의 즉각적인 흐름(단기 기억)뿐만 아니라, 과거의 경험과 누적된 지식(장기 기억)을 필요할 때마다 영속적으로 꺼내어 쓰는 능력입니다.
- **Short-term Memory (단기 기억)**: 현재 대화나 컨텍스트 윈도우 내에서 실시간으로 유지되는 즉각적인 맥락 정보
- **Long-term Memory (장기 기억)**: 외부 데이터베이스나 벡터 DB를 활용하여 과거 대화 기록 및 지식을 RAG 기법으로 바인딩하는 정보 보존 공간
* **실제 예시**: * **실제 예시**:
에이전트에게 "어제 작업하던 파이썬 소스코드의 오류를 이어서 수정해줘"라고 요청하는 경우입니다. 에이전트는 데이터베이스에 누적된 과거 대화 히스토리와, 벡터 DB에 저장되어 있는 소스코드의 예전 상태 정보를 동적으로 인출(Retrieval)해 와 대화 맥락을 끊김 없이 이어갑니다. 에이전트에게 "어제 작업하던 파이썬 소스코드의 오류를 이어서 수정해줘"라고 요청하는 경우입니다. 에이전트는 데이터베이스에 누적된 과거 대화 히스토리와, 벡터 DB에 저장되어 있는 소스코드의 예전 상태 정보를 동적으로 인출(Retrieval)해 와 대화 맥락을 끊김 없이 이어갑니다.
@@ -105,6 +111,8 @@ marp: true
현재 에이전트 기술에서 가장 중요한 변화 중 하나는, 과거에 에이전트 제어 시스템(Scaffolding, 에이전트의 구동을 돕는 외부 뼈대 구조)이 수동으로 제어하던 기능들이 점점 AI 모델 내부로 흡수되고 있는 현상입니다. 현재 에이전트 기술에서 가장 중요한 변화 중 하나는, 과거에 에이전트 제어 시스템(Scaffolding, 에이전트의 구동을 돕는 외부 뼈대 구조)이 수동으로 제어하던 기능들이 점점 AI 모델 내부로 흡수되고 있는 현상입니다.
- https://arca.live/b/characterai/174977057?category=%EB%89%B4%EC%8A%A42&p=1
- **스스로 생각하는 모델의 등장 (Test-time Compute, 추론 시점 추가 연산)** - **스스로 생각하는 모델의 등장 (Test-time Compute, 추론 시점 추가 연산)**
최근 출시된 Gemini Thinking이나 OpenAI o1/o3 같은 모델들은 외부 시스템이 루프를 돌려주지 않아도, 모델 스스로 출력을 내보내기 전에 내부적으로 계획을 세우고(Planning) 스스로 오류를 성찰(Reflection)하는 과정을 완료합니다. 최근 출시된 Gemini Thinking이나 OpenAI o1/o3 같은 모델들은 외부 시스템이 루프를 돌려주지 않아도, 모델 스스로 출력을 내보내기 전에 내부적으로 계획을 세우고(Planning) 스스로 오류를 성찰(Reflection)하는 과정을 완료합니다.
- **인지와 집행의 명확한 역할 분담** - **인지와 집행의 명확한 역할 분담**
@@ -4,40 +4,70 @@ marp: true
# 1. AI 에이전트 구현을 위한 3대 핵심 엔지니어링 기법 # 1. AI 에이전트 구현을 위한 3대 핵심 엔지니어링 기법
## AI 모델(LLM) vs AI 에이전트 성공적인 AI 에이전트 시스템을 구현하기 위해서는 단순히 모델에게 프롬프트를 입력하는 것을 넘어, **모델 제어**, **정보 연동**, **물리적 환경 연결**을 유기적으로 엮어내는 3가지 핵심 엔지니어링 기법이 필요합니다.
AI 에이전트(AI Agent)는 단순히 사용자의 텍스트 입력을 받아 응답을 생성하는 대화형 인터페이스(Chatbot)를 넘어, 주어진 최종 목표(Goal)를 자율적으로 달성하기 위해 환경을 인식(Perceive)하고, 스스로 계획(Planning) 및 추론(Reasoning)하며, 도구를 사용해 물리적/디지털적 행동(Action)을 수행하는 LLM 기반 소프트웨어 시스템입니다.
LLM 기반 에이전트 시스템 아키텍처는 크게 다음 3가지 핵심 요소로 구성됩니다: 1. **프롬프트 엔지니어링 (Prompt Engineering)**: 에이전트의 페르소나와 사고 방식(추론 가이드라인)을 규정하는 작업입니다.
1. **Planning (계획 및 추론)** 2. **컨텍스트 엔지니어링 (Context Engineering)**: 대화 흐름을 끊김 없이 보존하고 관련 데이터를 적시에 제공하는 정보 정리 작업입니다.
- **Task Decomposition (작업 분해)**: 복잡한 목표를 실행 가능한 작은 단위의 세부 태스크로 분할 (예: Chain of Thought, Tree of Thoughts 등) 3. **하네스 엔지니어링 (Harness Engineering)**: 격리된 환경에서 다양한 소프트웨어 도구를 안전하게 조작할 수 있는 물리적 손발을 달아주는 작업입니다.
- **Self-Reflection (자기 성찰 및 피드백)**: 행동 결과를 스스로 분석하고 실수를 교정하여 향후 계획을 실시간으로 수정 (예: ReAct, Reflexion 프레임워크)
2. **Memory (기억 장치)**
- **Short-term Memory (단기 기억)**: 현재 대화나 컨텍스트 윈도우 내에서 실시간으로 유지되는 즉각적인 맥락 정보
- **Long-term Memory (장기 기억)**: 외부 데이터베이스나 벡터 DB를 활용하여 과거 대화 기록 및 지식을 RAG 기법으로 바인딩하는 정보 보존 공간
- https://arca.live/b/characterai/174977057?category=%EB%89%B4%EC%8A%A42&p=1
## 3대 핵심 엔지니어링 기법
성공적인 AI 에이전트 구현을 위해서는 모델 제어, 정보 연동, 물리적 환경 연결을 최적화하는 3대 엔지니어링 기법이 필수적으로 수반되어야 합니다.
- ### 프롬프트 엔지니어링 (Prompt Engineering)
에이전트에게 명확한 역할 페르소나와 추론 가이드라인을 설계하고, 효율적인 추론 경로를 유도하기 위해 프롬프트 구조와 예시(Few-shot)를 최적화하는 기법입니다.
- **역할 페르소나 설계**: 에이전트가 특정 전문 도메인 지식과 행동 양식을 고수할 수 있도록 페르소나를 규정
- **추론 가이드라인 설계**: ReAct와 같은 사고 단계를 정의하여 모델이 계획 단계를 건너뛰지 않고 순차적으로 사고하도록 제어
- **Few-shot 최적화**: 최적의 추론 경로 및 응답 포맷 예시를 프롬프트에 제공하여 응답 일관성을 극대화
- ### 컨텍스트 엔지니어링 (Context Engineering)
대화 상태(State)와 흐름을 보존하며, 외부 데이터베이스나 기억(Memory) 장치로부터 필요한 정보를 적시에 모델의 컨텍스트 윈도우에 효율적으로 바인딩하고 공급하는 기술입니다. 단일 에이전트 관점에서는 제한된 컨텍스트 공간 내에서 정보 밀도를 극대화하는 설계가 핵심입니다.
- **대화 상태 및 흐름 보존**: 이전 턴의 작업 상태와 대화 맥락을 유실 없이 세션 전반에 유지
- **적시 동적 바인딩**: 외부 RAG 검색기나 메모리 캐시로부터 관련성이 가장 높은 데이터만을 선별하여 컨텍스트 윈도우에 결합
- **메모리 압축 및 정리**: 불필요한 과거 로그를 요약하거나 중요 상태 구조체 위주로 정제하여 토큰 윈도우 효율성 제고
- ### 하네스 엔지니어링 (Harness Engineering)
에이전트가 계산기, 웹 브라우저, 외부 API 및 파일 시스템 등의 물리적 도구(Tools/Tool Use)에 안전하고 유연하게 연결되어 명령을 실행할 수 있도록 연결 고리를 결합하는 도구 연동 인터페이스 기술입니다.
- **물리 인터페이스 결합**: LLM의 도구 호출 의도(Tool Call)를 가로채어 실제 운영체제나 네트워크 상의 실행 스크립트로 전달하고 실행 결과를 모델에 반환
- **보안 샌드박싱**: 임의 코드 실행이나 파일 훼손 방지를 위해 파일 시스템 격리 및 API 호출 권한 등의 안전 제어막 형성
- **도구 활용 (Tool Use)**: 에이전트가 학습되지 않은 외부 정보에 접근하거나 외부 시스템에 영향을 미치기 위해 계산기, 코드 실행용 샌드박스, 웹 브라우저, 외부 API 등을 주도적으로 호출하는 능력
![Screenshot 2026-06-25 at 9.39.07 pm](../../../assets/images/Screenshot%202026-06-25%20at%209.39.07%20pm.png)
--- ---
### 1️⃣ 프롬프트 엔지니어링 (Prompt Engineering)
에이전트가 주체적으로 판단하고 행동의 방향성을 잃지 않도록 역할 페르소나를 설계하고, **ReAct(Reason + Action)**와 같은 단계별 사고 흐름(Thought ➡️ Action ➡️ Observation)을 유도하는 기법입니다.
* **핵심 설계 요소**:
- **페르소나 설계**: 전문 도메인 지식과 행동 양식(예: "너는 주니어 개발자를 코칭하는 꼼꼼한 테크리더 에이전트다") 부여
- **추론 가이드라인**: 계획을 건너뛰고 섣부른 답변을 내지 않도록 논리적인 생각 단계를 의도적으로 설정
* **실제 프롬프트 구조 예시**:
```text
[System Prompt]
너는 복잡한 수식을 계산하는 수학 에이전트다. 다음 형식으로 사고해라:
- Thought: 문제 해결을 위한 다음 행동 계획을 작성해라.
- Action: 호출할 도구 이름과 인자값을 JSON으로 적어라. (예: Calculator)
- Observation: 도구 실행 결과가 여기에 채워질 것이다.
- Thought: 실행 결과를 바탕으로 성찰하고, 필요하면 다음 Action을 설계해라.
```
---
### 2️⃣ 컨텍스트 엔지니어링 (Context Engineering)
에이전트가 다루는 대화 맥락과 작업 상태(State)를 효율적으로 정제하고, 수많은 외부 정보 중 **지금 꼭 필요한 관련 데이터(RAG)**만을 선별하여 제한된 AI의 기억 공간(컨텍스트 윈도우)에 밀도 높게 채워 넣는 기술입니다.
* **핵심 설계 요소**:
- **대화 상태 보존**: 이전 턴의 작업 결과를 유실 없이 보존
- **동적 바인딩**: 외부 RAG 검색기에서 관련도 높은 중요 데이터만 적시에 필터링하여 공급
- **메모리 압축**: 불필요한 과거 로그는 요약하고, 핵심 현재 상태 구조체만 유지해 토큰 낭비 방지
* **에이전트 상태 보존 예시 (State JSON)**:
```json
{
"task_id": "job_10294",
"current_working_directory": "/workspace/src",
"error_logs": ["SyntaxError: unexpected EOF while parsing at line 14"],
"completed_subtasks": ["1. 소스코드 로드 완료", "2. 오류 라인 식별"],
"next_action_required": "오류 라인 14의 괄호 닫힘 확인 및 수정 스크립트 작성"
}
```
---
### 3️⃣ 하네스 엔지니어링 (Harness Engineering)
에이전트가 파일 시스템 제어, 브라우저 조작, 외부 API 호출 등 컴퓨터 세상의 다양한 도구들을 안전하게 가동할 수 있도록 **물리적 인터페이스(연결 고리)**를 구성하는 기술입니다.
* **핵심 설계 요소**:
- **도구 호출 가로채기(Intercepting)**: 모델이 내놓은 도구 호출 의도(JSON 등)를 감지하고, 실제 터미널이나 프로그램의 함수로 전달해 구동함
- **보안 샌드박싱 (Sandboxing)**: 에이전트가 악성 코드나 파괴적인 명령어를 무단 실행하지 않도록 격리된 가상 환경을 구축하고 권한을 통제함
* **물리 인터페이스 도구 결합 예시**:
```
[LLM의 출력] ──> "Action: execute_command, args: { cmd: 'ls -la' }"
│ (하네스가 이를 가로챔)
[하네스 제어기] ──> 격리된 Docker 샌드박스 내부에서 'ls -la' 실제 실행
│ (실행 결과 가로챔)
[LLM의 입력] <── "Observation: total 12\ndrwxr-xr-x 3 user..." (모델에 반환)
```
![Harness Diagram](../../../assets/images/Screenshot%202026-06-25%20at%209.39.07%20pm.png)
@@ -0,0 +1,53 @@
# 🎙️ 특강 발표 대본 스크립트 — 1. Engineering
본 문서는 `1_engineering.md` 슬라이드에 대응하는 발표용 대본 스크립트입니다. 청중의 이해를 돕기 위해 친절한 구어체 존댓말로 작성되었습니다.
---
### 🎴 Slide 1: 1장 타이틀 및 개요
* **슬라이드 제목**: 1. AI 에이전트 구현을 위한 3대 핵심 엔지니어링 기법
* **대본**:
> "그럼 이제 본격적으로 1장, **AI 에이전트 구현을 위한 3대 핵심 엔지니어링 기법**을 살펴보겠습니다.
> 단순히 똑똑한 AI 모델을 가져온다고 해서 알아서 일하는 에이전트가 완성되지는 않습니다.
> 모델을 정밀하게 제어하고, 실시간 대화 정보를 관리하며, 실제 물리적 환경에 연결하기 위해 세 가지 엔지니어링 분야가 유기적으로 작동해야 합니다.
> 첫 번째는 머리를 세팅하는 **프롬프트 엔지니어링**, 두 번째는 기억을 구성하는 **컨텍스트 엔지니어링**, 세 번째는 실제 손발을 달아주는 **하네스 엔지니어링**입니다.
> 각 기법이 구체적으로 어떤 의미를 가졌는지 실제 사례와 함께 짚어보겠습니다."
---
### 🎴 Slide 2: 1️⃣ 프롬프트 엔지니어링 (Prompt Engineering)
* **슬라이드 제목**: 1️⃣ 프롬프트 엔지니어링 (Prompt Engineering)
* **대본**:
> "첫 번째 기둥인 **프롬프트 엔지니어링**입니다.
> 단순히 예쁜 문장으로 질문하는 기술을 넘어서, 에이전트의 역할과 자율적인 문제 해결 사고방식을 규정하는 고도의 기법입니다.
> 핵심은 에이전트에게 전문가적 태도를 주입하는 **'페르소나 설계'**와, 논리적이고 순차적으로 생각하게 만드는 **'추론 가이드라인 설계'**입니다.
> 슬라이드 아래의 프롬프트 예시를 보시죠. 우리는 모델에게 단순히 '문제를 풀어봐'라고 하지 않습니다.
> 대신 'Thought(네 생각을 먼저 적어라) ➡️ Action(네가 호출하고 싶은 실제 도구를 골라라) ➡️ Observation(도구의 실행 결과를 보고 분석해라)'이라는 사고 체계, 즉 ReAct 루프를 템플릿화하여 시스템 프롬프트로 강제합니다.
> 이렇게 구조화된 생각의 틀을 제공함으로써, AI가 섣불리 엉터리 답을 짐작하지 않고 신중하게 계획을 세워 행동하도록 유도하는 것입니다."
---
### 🎴 Slide 3: 2️⃣ 컨텍스트 엔지니어링 (Context Engineering)
* **슬라이드 제목**: 2️⃣ 컨텍스트 엔지니어링 (Context Engineering)
* **대본**:
> "두 번째 기둥은 **컨텍스트 엔지니어링**입니다.
> AI 모델의 기억 공간인 '컨텍스트 윈도우'는 무한하지 않고 비용이 듭니다.
> 따라서 대화 흐름을 압축하여 유지하고, 수많은 소스코드나 문서 중에서 지금 당장 필요한 핵심 데이터만 적시에 필터링하여 꽂아주는 기술이 필수적입니다.
> 슬라이드 오른쪽의 에이전트 상태 보존 예시를 보겠습니다.
> 에이전트는 사용자와 주고받은 20번의 긴 대화 내용을 날것 그대로 모델에 던지지 않습니다.
> 대신 현재 작업 ID가 무엇인지, 지금 작업 디렉터리는 어디인지, 발생한 에러 로그는 무엇인지, 그리고 이미 끝낸 작업과 다음에 할 일은 무엇인지 등을 JSON 형태의 구조화된 데이터 상태로 압축하고 요약하여 보존합니다.
> 이렇게 상태를 효율적으로 캐싱하고 정제하여 모델에 알려줌으로써, 불필요한 비용을 줄이고 답변의 정확도를 극대화할 수 있습니다."
---
### 🎴 Slide 4: 3️⃣ 하네스 엔지니어링 (Harness Engineering)
* **슬라이드 제목**: 3️⃣ 하네스 엔지니어링 (Harness Engineering)
* **대본**:
> "마지막 세 번째는 에이전트에게 진짜 실행 능력을 부여하는 **하네스 엔지니어링**입니다.
> 아무리 모델이 훌륭한 수정 계획을 세워도, 실제 디스크에 저장하거나 코드를 컴파일할 수 없다면 에이전트라고 부를 수 없습니다.
> 하네스는 모델이 내린 판단을 감지해 실제 컴퓨터 명령어(ls, python3 run 등)로 변환해 실행하고, 그 실행 결과를 다시 모델에게 바인딩해 주는 인터페이스 인프라입니다.
> 슬라이드의 다이어그램을 보시면 흐름이 잘 보입니다.
> 모델이 'Action: 파일 목록을 보고 싶어'라고 텍스트로 내놓으면, 에이전트 하네스 시스템이 이를 가로채서(Intercept) 실제 격리된 컴퓨터 환경(Docker 샌드박스 등)에서 명령을 수행합니다.
> 그리고 그 실행 결과를 다시 'Observation: 결과는 다음과 같아'라고 정형화해 모델의 눈앞에 가져다줍니다.
> 또한, 모델이 혹시나 컴퓨터를 망가뜨릴 수 있는 명령을 내리지 못하도록 안전망(Sandboxing)을 씌워주는 것 역시 하네스 엔지니어링의 핵심 의무입니다.
> 이 3대 기술이 완벽히 맞물렸을 때, 비로소 자율형 에이전트가 단독으로 기동할 수 있게 됩니다."
@@ -72,6 +72,9 @@ marp: true
사용자가 최종 목표만 주면 스스로 실행 가능한 단계별 세부 태스크를 설계하고, 진행 과정에서 문제가 생기면 계획을 유연하게 수정하는 능력입니다. 사용자가 최종 목표만 주면 스스로 실행 가능한 단계별 세부 태스크를 설계하고, 진행 과정에서 문제가 생기면 계획을 유연하게 수정하는 능력입니다.
- **Task Decomposition (작업 분해)**: 복잡한 목표를 실행 가능한 작은 단위의 세부 태스크로 분할 (예: Chain of Thought, Tree of Thoughts 등)
- **Self-Reflection (자기 성찰 및 피드백)**: 행동 결과를 스스로 분석하고 실수를 교정하여 향후 계획을 실시간으로 수정 (예: ReAct, Reflexion 프레임워크)
* **실제 예시**: * **실제 예시**:
에이전트에게 "블로그 기사 작성"을 요청하면, 스스로 **'키워드 조사 ➡️ 개요 작성 ➡️ 본문 집필 ➡️ 오탈자 검사'** 순으로 계획을 세웁니다. 만약 맞춤법 검사 도중 치명적인 논리 오류를 발견하면, 본문 작성 단계로 스스로 되돌아가 계획을 수정하고 다시 쓰는 자가 성찰(Self-Reflection)을 거칩니다. 에이전트에게 "블로그 기사 작성"을 요청하면, 스스로 **'키워드 조사 ➡️ 개요 작성 ➡️ 본문 집필 ➡️ 오탈자 검사'** 순으로 계획을 세웁니다. 만약 맞춤법 검사 도중 치명적인 논리 오류를 발견하면, 본문 작성 단계로 스스로 되돌아가 계획을 수정하고 다시 쓰는 자가 성찰(Self-Reflection)을 거칩니다.
@@ -81,6 +84,9 @@ marp: true
현재 나누는 대화의 즉각적인 흐름(단기 기억)뿐만 아니라, 과거의 경험과 누적된 지식(장기 기억)을 필요할 때마다 영속적으로 꺼내어 쓰는 능력입니다. 현재 나누는 대화의 즉각적인 흐름(단기 기억)뿐만 아니라, 과거의 경험과 누적된 지식(장기 기억)을 필요할 때마다 영속적으로 꺼내어 쓰는 능력입니다.
- **Short-term Memory (단기 기억)**: 현재 대화나 컨텍스트 윈도우 내에서 실시간으로 유지되는 즉각적인 맥락 정보
- **Long-term Memory (장기 기억)**: 외부 데이터베이스나 벡터 DB를 활용하여 과거 대화 기록 및 지식을 RAG 기법으로 바인딩하는 정보 보존 공간
* **실제 예시**: * **실제 예시**:
에이전트에게 "어제 작업하던 파이썬 소스코드의 오류를 이어서 수정해줘"라고 요청하는 경우입니다. 에이전트는 데이터베이스에 누적된 과거 대화 히스토리와, 벡터 DB에 저장되어 있는 소스코드의 예전 상태 정보를 동적으로 인출(Retrieval)해 와 대화 맥락을 끊김 없이 이어갑니다. 에이전트에게 "어제 작업하던 파이썬 소스코드의 오류를 이어서 수정해줘"라고 요청하는 경우입니다. 에이전트는 데이터베이스에 누적된 과거 대화 히스토리와, 벡터 DB에 저장되어 있는 소스코드의 예전 상태 정보를 동적으로 인출(Retrieval)해 와 대화 맥락을 끊김 없이 이어갑니다.
@@ -108,6 +114,8 @@ marp: true
현재 에이전트 기술에서 가장 중요한 변화 중 하나는, 과거에 에이전트 제어 시스템(Scaffolding, 에이전트의 구동을 돕는 외부 뼈대 구조)이 수동으로 제어하던 기능들이 점점 AI 모델 내부로 흡수되고 있는 현상입니다. 현재 에이전트 기술에서 가장 중요한 변화 중 하나는, 과거에 에이전트 제어 시스템(Scaffolding, 에이전트의 구동을 돕는 외부 뼈대 구조)이 수동으로 제어하던 기능들이 점점 AI 모델 내부로 흡수되고 있는 현상입니다.
- https://arca.live/b/characterai/174977057?category=%EB%89%B4%EC%8A%A42&p=1
- **스스로 생각하는 모델의 등장 (Test-time Compute, 추론 시점 추가 연산)** - **스스로 생각하는 모델의 등장 (Test-time Compute, 추론 시점 추가 연산)**
최근 출시된 Gemini Thinking이나 OpenAI o1/o3 같은 모델들은 외부 시스템이 루프를 돌려주지 않아도, 모델 스스로 출력을 내보내기 전에 내부적으로 계획을 세우고(Planning) 스스로 오류를 성찰(Reflection)하는 과정을 완료합니다. 최근 출시된 Gemini Thinking이나 OpenAI o1/o3 같은 모델들은 외부 시스템이 루프를 돌려주지 않아도, 모델 스스로 출력을 내보내기 전에 내부적으로 계획을 세우고(Planning) 스스로 오류를 성찰(Reflection)하는 과정을 완료합니다.
- **인지와 집행의 명확한 역할 분담** - **인지와 집행의 명확한 역할 분담**
@@ -119,41 +127,73 @@ marp: true
# 1. AI 에이전트 구현을 위한 3대 핵심 엔지니어링 기법 # 1. AI 에이전트 구현을 위한 3대 핵심 엔지니어링 기법
## AI 모델(LLM) vs AI 에이전트 성공적인 AI 에이전트 시스템을 구현하기 위해서는 단순히 모델에게 프롬프트를 입력하는 것을 넘어, **모델 제어**, **정보 연동**, **물리적 환경 연결**을 유기적으로 엮어내는 3가지 핵심 엔지니어링 기법이 필요합니다.
AI 에이전트(AI Agent)는 단순히 사용자의 텍스트 입력을 받아 응답을 생성하는 대화형 인터페이스(Chatbot)를 넘어, 주어진 최종 목표(Goal)를 자율적으로 달성하기 위해 환경을 인식(Perceive)하고, 스스로 계획(Planning) 및 추론(Reasoning)하며, 도구를 사용해 물리적/디지털적 행동(Action)을 수행하는 LLM 기반 소프트웨어 시스템입니다.
LLM 기반 에이전트 시스템 아키텍처는 크게 다음 3가지 핵심 요소로 구성됩니다: 1. **프롬프트 엔지니어링 (Prompt Engineering)**: 에이전트의 페르소나와 사고 방식(추론 가이드라인)을 규정하는 작업입니다.
1. **Planning (계획 및 추론)** 2. **컨텍스트 엔지니어링 (Context Engineering)**: 대화 흐름을 끊김 없이 보존하고 관련 데이터를 적시에 제공하는 정보 정리 작업입니다.
- **Task Decomposition (작업 분해)**: 복잡한 목표를 실행 가능한 작은 단위의 세부 태스크로 분할 (예: Chain of Thought, Tree of Thoughts 등) 3. **하네스 엔지니어링 (Harness Engineering)**: 격리된 환경에서 다양한 소프트웨어 도구를 안전하게 조작할 수 있는 물리적 손발을 달아주는 작업입니다.
- **Self-Reflection (자기 성찰 및 피드백)**: 행동 결과를 스스로 분석하고 실수를 교정하여 향후 계획을 실시간으로 수정 (예: ReAct, Reflexion 프레임워크)
2. **Memory (기억 장치)**
- **Short-term Memory (단기 기억)**: 현재 대화나 컨텍스트 윈도우 내에서 실시간으로 유지되는 즉각적인 맥락 정보
- **Long-term Memory (장기 기억)**: 외부 데이터베이스나 벡터 DB를 활용하여 과거 대화 기록 및 지식을 RAG 기법으로 바인딩하는 정보 보존 공간
- https://arca.live/b/characterai/174977057?category=%EB%89%B4%EC%8A%A42&p=1 ---
## 3대 핵심 엔지니어링 기법 ### 1️⃣ 프롬프트 엔지니어링 (Prompt Engineering)
성공적인 AI 에이전트 구현을 위해서는 모델 제어, 정보 연동, 물리적 환경 연결을 최적화하는 3대 엔지니어링 기법이 필수적으로 수반되어야 합니다.
- ### 프롬프트 엔지니어링 (Prompt Engineering) 에이전트가 주체적으로 판단하고 행동의 방향성을 잃지 않도록 역할 페르소나를 설계하고, **ReAct(Reason + Action)**와 같은 단계별 사고 흐름(Thought ➡️ Action ➡️ Observation)을 유도하는 기법입니다.
에이전트에게 명확한 역할 페르소나와 추론 가이드라인을 설계하고, 효율적인 추론 경로를 유도하기 위해 프롬프트 구조와 예시(Few-shot)를 최적화하는 기법입니다.
- **역할 페르소나 설계**: 에이전트가 특정 전문 도메인 지식과 행동 양식을 고수할 수 있도록 페르소나를 규정
- **추론 가이드라인 설계**: ReAct와 같은 사고 단계를 정의하여 모델이 계획 단계를 건너뛰지 않고 순차적으로 사고하도록 제어
- **Few-shot 최적화**: 최적의 추론 경로 및 응답 포맷 예시를 프롬프트에 제공하여 응답 일관성을 극대화
- ### 컨텍스트 엔지니어링 (Context Engineering) * **핵심 설계 요소**:
대화 상태(State)와 흐름을 보존하며, 외부 데이터베이스나 기억(Memory) 장치로부터 필요한 정보를 적시에 모델의 컨텍스트 윈도우에 효율적으로 바인딩하고 공급하는 기술입니다. 단일 에이전트 관점에서는 제한된 컨텍스트 공간 내에서 정보 밀도를 극대화하는 설계가 핵심입니다. - **페르소나 설계**: 전문 도메인 지식과 행동 양식(예: "너는 주니어 개발자를 코칭하는 꼼꼼한 테크리더 에이전트다") 부여
- **대화 상태 및 흐름 보존**: 이전 턴의 작업 상태와 대화 맥락을 유실 없이 세션 전반에 유지 - **추론 가이드라인**: 계획을 건너뛰고 섣부른 답변을 내지 않도록 논리적인 생각 단계를 의도적으로 설정
- **적시 동적 바인딩**: 외부 RAG 검색기나 메모리 캐시로부터 관련성이 가장 높은 데이터만을 선별하여 컨텍스트 윈도우에 결합 * **실제 프롬프트 구조 예시**:
- **메모리 압축 및 정리**: 불필요한 과거 로그를 요약하거나 중요 상태 구조체 위주로 정제하여 토큰 윈도우 효율성 제고 ```text
[System Prompt]
너는 복잡한 수식을 계산하는 수학 에이전트다. 다음 형식으로 사고해라:
- Thought: 문제 해결을 위한 다음 행동 계획을 작성해라.
- Action: 호출할 도구 이름과 인자값을 JSON으로 적어라. (예: Calculator)
- Observation: 도구 실행 결과가 여기에 채워질 것이다.
- Thought: 실행 결과를 바탕으로 성찰하고, 필요하면 다음 Action을 설계해라.
```
- ### 하네스 엔지니어링 (Harness Engineering) ---
에이전트가 계산기, 웹 브라우저, 외부 API 및 파일 시스템 등의 물리적 도구(Tools/Tool Use)에 안전하고 유연하게 연결되어 명령을 실행할 수 있도록 연결 고리를 결합하는 도구 연동 인터페이스 기술입니다.
- **물리 인터페이스 결합**: LLM의 도구 호출 의도(Tool Call)를 가로채어 실제 운영체제나 네트워크 상의 실행 스크립트로 전달하고 실행 결과를 모델에 반환
- **보안 샌드박싱**: 임의 코드 실행이나 파일 훼손 방지를 위해 파일 시스템 격리 및 API 호출 권한 등의 안전 제어막 형성
- **도구 활용 (Tool Use)**: 에이전트가 학습되지 않은 외부 정보에 접근하거나 외부 시스템에 영향을 미치기 위해 계산기, 코드 실행용 샌드박스, 웹 브라우저, 외부 API 등을 주도적으로 호출하는 능력
![Screenshot 2026-06-25 at 9.39.07 pm](../../assets/images/Screenshot%202026-06-25%20at%209.39.07%20pm.png) ### 2️⃣ 컨텍스트 엔지니어링 (Context Engineering)
에이전트가 다루는 대화 맥락과 작업 상태(State)를 효율적으로 정제하고, 수많은 외부 정보 중 **지금 꼭 필요한 관련 데이터(RAG)**만을 선별하여 제한된 AI의 기억 공간(컨텍스트 윈도우)에 밀도 높게 채워 넣는 기술입니다.
* **핵심 설계 요소**:
- **대화 상태 보존**: 이전 턴의 작업 결과를 유실 없이 보존
- **동적 바인딩**: 외부 RAG 검색기에서 관련도 높은 중요 데이터만 적시에 필터링하여 공급
- **메모리 압축**: 불필요한 과거 로그는 요약하고, 핵심 현재 상태 구조체만 유지해 토큰 낭비 방지
* **에이전트 상태 보존 예시 (State JSON)**:
```json
{
"task_id": "job_10294",
"current_working_directory": "/workspace/src",
"error_logs": ["SyntaxError: unexpected EOF while parsing at line 14"],
"completed_subtasks": ["1. 소스코드 로드 완료", "2. 오류 라인 식별"],
"next_action_required": "오류 라인 14의 괄호 닫힘 확인 및 수정 스크립트 작성"
}
```
---
### 3️⃣ 하네스 엔지니어링 (Harness Engineering)
에이전트가 파일 시스템 제어, 브라우저 조작, 외부 API 호출 등 컴퓨터 세상의 다양한 도구들을 안전하게 가동할 수 있도록 **물리적 인터페이스(연결 고리)**를 구성하는 기술입니다.
* **핵심 설계 요소**:
- **도구 호출 가로채기(Intercepting)**: 모델이 내놓은 도구 호출 의도(JSON 등)를 감지하고, 실제 터미널이나 프로그램의 함수로 전달해 구동함
- **보안 샌드박싱 (Sandboxing)**: 에이전트가 악성 코드나 파괴적인 명령어를 무단 실행하지 않도록 격리된 가상 환경을 구축하고 권한을 통제함
* **물리 인터페이스 도구 결합 예시**:
```
[LLM의 출력] ──> "Action: execute_command, args: { cmd: 'ls -la' }"
│ (하네스가 이를 가로챔)
[하네스 제어기] ──> 격리된 Docker 샌드박스 내부에서 'ls -la' 실제 실행
│ (실행 결과 가로챔)
[LLM의 입력] <── "Observation: total 12\ndrwxr-xr-x 3 user..." (모델에 반환)
```
![Harness Diagram](../../assets/images/Screenshot%202026-06-25%20at%209.39.07%20pm.png)
--- ---