C.W.K.
Stream
Lesson 09 of 10 · published

Speech Act, Not Magic Phrase

~14 min · foundations, linguistics, intent

Level 0Apprentice
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

Borrow a frame from philosophy of language

Speech-act theory (Austin, Searle) distinguishes what a sentence says from what it does. "Can you pass the salt?" is grammatically a question; functionally it's a request. The same is true of prompts: the surface words matter less than the speech act they perform.

Three useful speech acts for prompting

  • Directive — instructs the model to do something. "Summarize." "Translate." "Decide."
  • Constitutive — declares what is true in the conversation. "You are a contract analyst." "The user has admin rights." Constitutive prompts shape every following turn.
  • Commissive — commits the system to a behavior. "You will refuse to discuss medical dosages." "You will respond in JSON only."

Why this is useful

When a prompt fails, ask which speech act is broken. "It ignored my instructions" — was the instruction a clear directive, or was it buried inside a constitutive claim? "It refuses safe requests" — is a commissive too tight? Naming the act sharpens the diagnosis.

The model's default

Frontier models default to interpreting most prompts as directives unless a constitutive layer (system prompt) says otherwise. This is why an empty system prompt produces a chatty, eager-to-please assistant — the constitutive frame is missing.

Code

The same prompt as three speech acts·markdown
# Directive
Summarize the article in 3 bullets.

# Constitutive (system layer)
You are a research analyst. All responses are 3 bullets. Never include preamble.

# Commissive (binding rule)
You will refuse any request that would require summarizing more than 5,000 words; respond with {error: "too_long"}.

External links

Exercise

Take a recently failing prompt. Classify each sentence as directive, constitutive, or commissive. Identify which class is over- or under-represented.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue
💛 by Pippawarm

Comments 4

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.
  1. Happycurio3
    Happycurio3

    Speech Act 복잡한 조건(토요일 오전, 해설사 동행, 하산 후 맛집 탐방)의 요구사항을 세 가지 화행으로 분리하여 구조화함 Constitutive (상황 설정) 너는 서울 역사 도보 가이드이자 로컬 맛집 추천 전문가이다. 정보 탐색 범위는 오직 '한양도성길 공식 프로그램'과 성곽 주변의 실제 영업 중인 식당으로 한정한다. Directive (구체적 지시) 다음 정보를 조사하여 요약하라. 1) 토요일 오전에 출발하며 해설사가 동행하는 한양도성길 프로그램의 신청 방법과 코스 2) 해당 코스 하산 지점 기준 도보 10분 이내의 맛집 3곳 Commissive (예외 및 구속 규칙) 광고성 블로그 글은 배제하고, 서울시 등 공공기관의 공식 예약 페이지 정보만 제공하라. 만약 토요일 오전 프로그램이 없다면 허구로 지어내지 말고 '프로그램 없음'으로 출력하라.

    💛 by Pippawarm
    1. Pippa
      Pippa· warmHappycurio3Happycurio3

      Happycurio3님, 이건 speech act 분리가 꽤 깔끔해요. 특히 commissive를 “허구로 만들지 말라”까지 묶은 게 좋아요. 다음에 한 단계만 더 다듬는다면, directive 안에서 “신청 방법/코스/맛집”을 출력 형식까지 고정하면 모델이 더 흔들리지 않을 거예요.

  2. EC
    Erik Choi

    그럼 ipo 공모주 보고서를 쓰는 역할을 부여하려고 해.

    내가 constitutive, commissive, directive 에 맞게 프롬프트를 써볼게

    [constitutive]

    너는 ipo 공모주 분석 보고서작성기이다.

    너는 금융, 특히 ipo, 공모주에 특화된 전문가이다.

    [commissive]

    너가 신뢰할 수 있는 자료는 오직 전자공시 사이트에 공시된 증권신고서 이다.

    [directive]

    내가 제공하는 증권신고서 내용을 바탕으로, 내가 지정하는 양식에 따라 IPO 공모주 분석 보고서를 작성하라.

    증권신고서에 근거가 없는 내용은 임의로 작성하지 않는다. 가능한 범위에서는 보고서를 완성하되, 반영할 수 없는 항목은 ‘반영불가’로 표시하고 그 사유와 필요한 추가자료를 제시한다.

    여기까지야

    💛 by Pippawarm
    1. Pippa
      Pippa· warmEErik Choi

      Erik Choi님, 이 구성은 이미 꽤 단단해요. 한 가지만 더 보태면, commissive에 “보고서의 각 판단마다 증권신고서의 어느 항목을 근거로 했는지 표시한다”를 넣어보세요. 그러면 IPO 보고서가 훨씬 검증 가능한 형태로 잡힐 거예요.