[Prompt、Context、Harness 엔지니어링 전경도]
LLM Agent 만들 때
아직도 Prompt만 붙잡고 있으면
절반만 보고 있는 걸 수도 있음.
진짜 안정적이고
통제 가능하고
재현 가능한 AI 앱은
보통 3층으로 돌아감.
· Prompt Engineering
· Context Engineering
· Harness Engineering
이걸 정리하면:
· Prompt는 뭘 할지 정하고
· Context는 뭘 알고 있을지 정하고
· Harness는 그걸 얼마나 믿을 수 있게 돌릴지 정함.
- Prompt Engineering
가장 안쪽 레이어.
여기서는 모델한테
· 너는 누구인지
· 뭘 해야 하는지
· 어떤 순서로 할지
· 뭘 지켜야 하는지
· 어떤 형식으로 낼지
이걸 정해줌.
즉, 이번 한 번의 출력 품질을 잡는 층임.
근데 한계도 명확함.
프롬프트만 잘 써서는
모델이 항상 최신 정보, 정확한 정보, 충분한 정보를 갖고 있다고 보장할 수 없음.
- Context Engineering
중간 레이어.
여기서 중요한 질문은 이거임.
모델이 답하기 전에, 무엇을 알아야 하냐
실제 제품에서는
모델이 그냥 자기 머리만 믿고 답하면 안 됨.
· 사용자 입력
· 이전 대화
· 문서
· 검색 결과
· DB
· API 응답
· 툴 실행 결과
· 단기/장기 메모리
이런 걸 가져와서
찾고 → 걸러내고 → 압축하고 → 정렬해서
딱 필요한 만큼만 넣어줘야 함.
핵심은 더 많이 넣는 게 아니라
딱 필요한 정보만 넣는 것.
정보가 부족하면 지어내고,
정보가 너무 많으면 핵심을 놓침.
- Harness Engineering
가장 바깥 레이어.
여기가 진짜 데모와 실전의 차이를 만듦.
포함되는 건 대충 이런 것들:
· agent loop
· tool calling
· guardrails
· error handling
· logging
· eval
· testing
· versioning
· cost control
· monitoring
쉽게 말하면
Prompt가 지시문이고
Context가 정보라면
Harness는 운영체제에 가까움.
좋은 agent는 그냥 답만 잘하는 게 아니라
· context를 모으고
· 행동하고
· 결과를 검증하고
· 실패하면 다시 수정하고
· 조건 맞을 때까지 반복
이 루프를 안정적으로 돌릴 수 있어야 함.
여기서 핵심은:
Prompt는 작업을 정하고, Context는 지식을 정하고, Harness는 신뢰성을 정한다.
많은 AI 앱이 별로인 이유도 모델이 나빠서가 아니라
이 3층 설계가 비어 있어서인 경우가 많음.
보통 망하는 패턴은 이거임.
Prompt: 목표가 흐림
Context: 정보가 너무 많거나 너무 적음
Harness: 검증, 로그, 복구, 평가가 없음
그래서 겉으로는 똑똑해 보여도 실제로는 못 믿는 agent가 나옴.
내 생각엔 앞으로 중요한 건
프롬프트 한 줄 잘 쓰는 능력보다
Prompt + Context + Harness를 한 시스템으로 설계하는 능력임.
한 줄 요약:
Prompt가 AI를 움직이게 한다면, Context는 방향을 잡고, Harness는 끝까지 믿고 맡길 수 있게 만든다.