Part I 개요
Note
- 시작 상태:
h00· 완료 상태:h03- 논문: §2.4 The Minimal Harness, §6 Agent Loop Design, §8 Tool and Action Systems
현재 구조
사용자와 model만 있다. 그리고 model이 할 수 있는 일은 텍스트를 입력 받아 텍스트로 답을 하는 것 뿐이다.
flowchart LR
U[사용자 지시] --> M[model] --> A[텍스트 답]
- model은 파일을 읽거나 명령을 실행하지 못한다. 파일 내용을 물으면 읽을 수 없다는 답이나 추측한 답을 만든다.
- 사용자가 결과를 보고 다음 지시를 직접 다시 써야 한다.
이 Part에서 다루는 내용
이번 Part에서는 아무것도 없는 상황에서 agent loop와 기초적인 tool을 만들어 가장 기본적인 유형의 harness를 만들 것이다. 이를 통해 model이 harness를 통해 사용자의 작업 디렉터리에서 작업할 수 있는 기초적인 능력을 얻게 될 것이다.
| Lab | 질문 | 더하는 구조 |
|---|---|---|
| H0 Hello Harness | LLM을 agent로 만드는 최소 구조는 무엇인가? | agent loop, read_file tool, 실행 기록 |
| 대화형 도구의 기본 틀 | 사람과 주고받는 대화형 모드 | |
| H1 Tool Loop | bash 하나만 주면 model은 어디까지 스스로 해낼 수 있을까? | bash tool, --tools로 tool 고르기 |
| H2 Editing | bash만으로 파일을 고칠 때와 전용 편집 tool을 줄 때, 비용과 작업 범위는 어떻게 달라질까? | write_file, search_replace tool |
이 Part를 마치면
flowchart TB
U[사용자 지시<br/>--instruction 또는 대화형 입력] --> L
subgraph H[hel]
L[agent loop<br/>max_turns까지 반복]:::new
T[tool<br/>bash · read_file<br/>write_file · search_replace]:::new
R[실행 기록]:::new
end
L <--> M[model]
L <--> T
L --> R
T <--> W[(작업 디렉터리)]
classDef new fill:#fff3bf,stroke:#e8590c,color:#000
hel이 앞으로 만들어 갈 harness의 이름이다.- harness는 model이 요청한 tool을 실행하고, 결과를 대화에 붙여 model을 다시 부른다. model이 tool 호출 없이 답하면 loop가 끝난다.
- model이 받는 것은 사용자 지시, 사용 가능한 tool 목록, 대화 기록뿐이다. 어떤 OS에서 실행되는지, 작업 디렉터리가 어디인지, 그 저장소에 어떤 규칙이 있는지는 model이 tool을 호출해서 알아내야 한다. 이 문제는 Part II에서 다룬다.