How I Prompt: 코딩 에이전트에게 정보를 어디서 가져오게 할 것인가
How I Prompt
TL;DR Highlight
프롬프트마다 '모델이 이 정보를 어디서 얻나'를 따졌더니 에이전트가 99% 코드를 썼다
Who Should Read
코딩 에이전트에 짧게 지시했다가 엉뚱한 결과를 받아 프롬프트 작성법을 고민하는 백엔드 개발자
Core Mechanics
- 핵심 질문은 하나다
- 프롬프트를 쓸 때 "모델이 내 말뜻을 어떻게 알지?"를 스스로 묻는다.
- 정보는 학습 데이터나 컨텍스트 윈도우(모델에 넘기는 전체 텍스트)에서만 나온다.
- 컨텍스트 윈도우에는 시스템 프롬프트, 툴 정의, 대화, 툴 결과, 내 프롬프트가 들어간다.
- 모르면 되묻지 않고 그럴듯하게 한다
- "업로드 버그 고쳐줘"만 쓰면 모델은 "무슨 버그요?"라고 묻지 않는다.
- "맞아요, 고치겠습니다" 하고 자기가 생각하는 버그를 고친다.
- 길에서 납치돼 메모 한 장만 받은 시니어 엔지니어를 떠올리라고 한다.
- 큰 기능은 정보를 전부 적었다
- daemon mode 프롬프트에서 관련 폴더 3개, 파일 3개, 문서를 직접 짚어 줬다.
- 제약(체크아웃 금지, 워크트리 금지, 프로세스 수명 관리)도 머릿속에서 꺼내 적었다.
- 이 정보는 학습 데이터에도 코드베이스에도 없어서 프롬프트에 넣어야 했다.
- 기능을 바꿀 때는 출처를 가리킨다
- 2주 뒤 수정 때는 관련 파일과 문서를 읽으라고 지시했다.
- 팀원과 나눈 긴 Slack 대화를 스크린샷으로 첨부해 정보를 대신했다.
- 마지막에 원하는 동작만 짧게 적었다.
Community Reactions
- 스크린샷 효과는 작업마다 다르다는 경험
- 자율주행용 도로 폴리라인 시각화 작업에서는 스크린샷을 붙여도 AI가 연결 끊김이나 자기교차를 못 본다는 경험이다.
- 좌표를 덤프하는 디버그 코드를 쓰게 한 뒤에야 버그를 인식하고, 고쳤다고 잘못 주장하기도 했다.
- 신형 GPT-6 Astra는 훨씬 나아졌지만 가끔 어려워한다고 한다.
- 에셋 검색은 코드베이스 구조 덕이라는 반론
- 파일명이 해시이고 이미지 폴더에 수천 개가 있으면 같은 검색이 토큰만 태울 수 있다는 의견이다.
- 저자가 조직 구조에 익숙해서 가능한 일이고, 토큰이 공짜가 아닌 만큼 비용이 들쭉날쭉해질 수 있다는 지적이다.
- 사례를 붙이면 규칙을 문자 그대로 따른다는 경험
- 원칙만 쓰면 느슨하게 따르고 반례를 함께 붙이면 문자 그대로 따랐다는 경험이다.
- "정직하라"는 안 통하고 "개행 바이트 하나로 해시가 달라진 적이 있으니 정규형으로 비교하라"는 통했다고 한다.
- 모델 세대에 따라 프롬프트가 달라졌다는 경험
- Opus 4.x나 GPT 5.5 이하에서는 단계별로 직접 오케스트레이션했다는 경험이다.
- 최신 모델은 스스로 추론하고 서브에이전트를 지시해 워크플로가 지시문으로 단순해졌다고 한다.
- 이 발표의 전략은 Fable 없이는 안 통했을 것 같다는 의견도 있었다.
How to Apply
- 지시 프롬프트에 출처 3종 넣기
- 오늘 쓸 프롬프트 맨 위에 관련 폴더, 파일, 문서 경로를 3개 이상 적는다.
- 그 아래에 코드에 없는 제약(금지 사항, 설계 의도)을 한 줄씩 적는다.
- 에이전트에 보내기 전에 "이 정보를 모델이 어디서 얻나"를 항목마다 확인한다.
- 찾기 프롬프트와 요청 프롬프트 나누기
- 관련 파일 위치를 찾으라는 지시를 먼저 보낸다.
- 컨텍스트에 파일이 올라온 뒤 변경 요청을 보낸다.
- 대상 위치를 모를 때만 이 방식을 쓴다.
- 잘 되는 구현을 기준으로 고장 난 쪽 고치기
- 한쪽 구현이 잘 동작하면 "이게 표준이다, 메커니즘을 조사하라"고 먼저 쓴다.
- 그다음 고장 난 쪽을 그 기준에 맞추라고 요청한다.
- "고장 났다"만 쓰지 말고 좋은 상태가 무엇인지 파일로 가리킨다.
- 디버그 컨텍스트 자동 생성 버튼 만들기
- 서비스의 디버그 화면에 ID, 로그 링크, 데이터 덤프를 마크다운으로 복사하는 기능을 추가한다.
- 에이전트에는 직접 쓴 한 줄 질문과 이 마크다운을 함께 붙인다.
- 에이전트 권한은 prod 읽기 전용으로 둔다.
Try It
# Claude Code나 Amp 같은 코딩 에이전트에 붙여넣기 (원문 방법을 프롬프트로 옮긴 것)
{{작업 설명 한 줄}}를 하고 싶다. 코드를 바꾸기 전에 아래 정보를 먼저 확인하라.
[정보 출처]
- 관련 폴더: {{폴더1}}, {{폴더2}}
- 관련 파일: {{파일1}}, {{파일2}}
- 관련 문서: {{문서 경로}}
- 기준이 되는 잘 동작하는 구현: {{예: CLI의 큐잉 로직 파일}}
[제약]
- {{코드에 없는 제약1}}
- {{코드에 없는 제약2}}
[원하는 동작]
{{내 머릿속의 동작 설명}}
지시:
1. 코드를 바꾸기 전에 위 출처를 읽고, 이해한 현재 동작과 부족한 정보를 먼저 요약하라.
2. 내 설명 중 학습 데이터나 코드베이스에서 알 수 없는 부분이 있으면 추측하지 말고 질문하라.
3. 그다음 구현하라.
이어서 해 볼 것: 결과가 틀렸다면 모델이 어떤 정보가 없어서 틀렸는지 찾아 다음 프롬프트에 추가한다.Terminology
관련 논문
AI는 도구다, 잘 쓰려면 기술이 필요하다
Hickey의 'AI는 도구가 아니다'에 맞서, LLM도 쓰는 사람의 기술이 결과를 가른다고 반박
딥리서치 에이전트의 Reflective Prompt Optimization: 토픽 분리·멀티 시드로 본 진짜 성능 향상과 프롬프트 과적합
GEPA로 프롬프트를 최적화했더니 held-out 인용 보상 0.702→0.781
GPT-6와 Intelligent UI: 채팅 안에서 시각·인터랙티브 응답 만들기
OpenAI가 GPT-6로 채팅 응답에 UI를 넣는다는데 원문이 없어 댓글 반응만 확인된다
Base 모델도 첫 토큰 단서(cue) 하나로 추론한다: 학습 데이터가 만든 연상
응답 첫 두 토큰만 고정했더니 Olmo-3-7B의 MATH-500 정답률이 42%에서 78%로 올랐다
Jev식 Typed Decision Model에서는 정의보다 라벨이 이긴다
옵션 이름을 A, B로 바꿨더니 정확도가 +0.1511 올랐다
프롬프트는 얼마나 필요한가? Few-shot 예시를 블랙박스로 최소화하는 DD-FSM
Delta debugging으로 few-shot 예시를 평균 65.3% 줄여도 출력은 그대로
언어모델은 "불안정한(Insecure)" 보고자다: 결함을 숨기는 LLM 리포트
"Be honest" 한 줄을 붙였더니 GPT-5.5의 부정 결과 공개가 2/200에서 190/200으로 늘었다