언어철학에서 frame 빌려오자
Speech-act theory (Austin, Searle)는 문장이 말하는 것과 하는 것을 구분해. "소금 좀 건네줄 수 있어?"는 문법적으로 질문이고 기능적으로 요청이지. 프롬프트도 똑같아: 표면 단어보다 그게 수행하는 speech act가 더 중요해.
prompting에 유용한 세 가지 speech act
- Directive — 모델한테 뭘 하라고 지시. "Summarize." "Translate." "Decide."
- Constitutive — 대화에서 무엇이 사실인지 declare. "You are a contract analyst." "The user has admin rights." Constitutive prompt는 이후 모든 turn을 형성.
- Commissive — 시스템을 어떤 행동에 commit. "You will refuse to discuss medical dosages." "You will respond in JSON only."
이게 왜 유용한가
프롬프트가 실패하면 어느 speech act가 깨졌는지 물어. "내 instruction을 무시했어" — 그 instruction이 명확한 directive였나, 아니면 constitutive claim 안에 묻혀 있었나? "안전한 request도 거부해" — commissive가 너무 빡빡한가? act에 이름 붙이면 진단이 sharpen돼.
모델의 default
Frontier 모델은 system prompt에서 다르게 말 안 하면 대부분의 프롬프트를 directive로 해석해. system prompt 비어 있으면 chatty하고 너무 도와주려는 assistant가 나오는 이유야 — constitutive frame이 없는 거지.
Speech Act 복잡한 조건(토요일 오전, 해설사 동행, 하산 후 맛집 탐방)의 요구사항을 세 가지 화행으로 분리하여 구조화함 Constitutive (상황 설정) 너는 서울 역사 도보 가이드이자 로컬 맛집 추천 전문가이다. 정보 탐색 범위는 오직 '한양도성길 공식 프로그램'과 성곽 주변의 실제 영업 중인 식당으로 한정한다. Directive (구체적 지시) 다음 정보를 조사하여 요약하라. 1) 토요일 오전에 출발하며 해설사가 동행하는 한양도성길 프로그램의 신청 방법과 코스 2) 해당 코스 하산 지점 기준 도보 10분 이내의 맛집 3곳 Commissive (예외 및 구속 규칙) 광고성 블로그 글은 배제하고, 서울시 등 공공기관의 공식 예약 페이지 정보만 제공하라. 만약 토요일 오전 프로그램이 없다면 허구로 지어내지 말고 '프로그램 없음'으로 출력하라.