시스템 수준 동작 정의하기

시스템 수준 동작 정의하기 (Define system-level behavior)

규칙이 설정되지 않으면 응답은 표류해요. 어떤 프롬프트는 신중한 요약을 내고, 다음 프롬프트는 결정을 지어내요. 사람들은 어느 것을 신뢰해야 할지 알 수 없으니 결국 아무것도 신뢰하지 않게 되죠. 이 페이지에서는 에이전트의 모든 응답이 따라야 하는 규칙의 집합인 시스템 수준 동작을 역할·범위, 페르소나·목소리·어조, 경계, 불확실성 처리, 표면별 조정 다섯 가지로 나눠 살펴볼게요.

출처: 문서

본문

규칙이 설정되지 않으면 응답은 표류해요. 어떤 프롬프트는 신중한 요약을 받고, 다음 프롬프트는 결정을 지어내요. 사람들은 어느 것을 신뢰해야 할지 알 수 없으니, 결국 아무것도 신뢰하지 않게 돼요.

시스템 수준 동작은 에이전트의 모든 응답이 따라야 하는 규칙의 집합이에요. 그것은 에이전트가 무엇인지, 어떻게 들리는지, 무엇을 하지 않을 것인지, 정보가 누락되었을 때 무엇을 하는지를 다뤄요.

당신이 실제로 결정하는 것

시스템 수준 동작은 에이전트와 함께 출시되는 시스템 프롬프트에 한 번 작성돼요. 에이전트가 응답하는 모든 프롬프트는 이를 다시 진술할 필요 없이 이 규칙들을 상속받아요.

시스템 수준 동작을 정의하기 위해 앉게 되는 때:

  • 에이전트를 출시하기 전
  • 채팅, 흐름 내 Copilot, 요약기, 생성기 같은 새 표면에 에이전트를 출시할 때
  • 어떤 한 번의 프롬프트 수정으로는 해결할 수 없는 실패 패턴을 검토가 발견한 후

당신은 다섯 가지를 작성해요:

  • 역할과 범위. 에이전트가 무엇인지, 무엇을 돕는지, 무엇이 범위 밖인지.
  • 페르소나, 목소리, 어조. 에이전트가 누구인지, 어떻게 일관되게 들리는지, 어떻게 조정하는지.
  • 경계. 절대 하지 말아야 할 것.
  • 불확실성 처리 방법. 입력이 누락, 불명확, 또는 충돌할 때 무엇을 하는지.
  • 표면별 조정. 에이전트가 채팅에 있을 때 vs 흐름 내에 있을 때 vs 단발성 생성기에 있을 때 무엇이 바뀌는지.

역할과 범위

에이전트가 무엇인지, 무엇을 돕는지, 무엇이 범위 밖인지 명명하는 짧고 평이한 설명을 쓰세요.

예시

"This agent summarizes and organizes information from meetings and documents. It does not make decisions, assign owners, or approve next steps."

첫 문장은 에이전트가 무엇을 하는지 명명해요. 두 번째 문장은 무엇을 하지 않는지 명명해서, 한계가 처음부터 보이도록 해요. 목표는 기능 목록이 아니라 책임에 대한 명확성이에요.

범위가 모호하면 응답이 에이전트가 책임지지 않는 작업으로 표류하고, 검토자들은 응답이 과도하게 확장된 것인지 제 역할을 다한 것인지 알 수 없어요.

페르소나, 목소리, 어조

페르소나(Persona) 는 에이전트가 누구인지예요. 목소리(Voice) 는 어떻게 일관되게 들리는지예요. 어조(Tone) 는 목소리가 상황에 따라 어떻게 조정되는지예요. 세 가지 모두 시스템 프롬프트에 있어서 모든 응답에 걸쳐 유지돼요.

일관성을 목표로 하세요, 개성이 아니라요. 매력적이기보다 명확하게. 모호하기보다 구체적으로. 암시되기보다 투명하게.

이 페이지에서는 모든 시나리오에 걸쳐 유지되어야 할 기준치를 정의하세요. 맥락별 어조 조정은 어조와 맥락 동작 정의를 사용하세요.

페르소나 예시

"A meeting assistant for working teams. Reliable, low-key, focused on accuracy. Not a coach, friend, or motivator."

목소리 예시

"Plain language. Short sentences. No hedging filler ('I think,' 'maybe,' 'just'). No corporate phrases ('synergy,' 'circle back')."

어조 예시

  • 요약에는 중립적이고 사실적
  • 정보가 누락되었을 때는 차분하고 직접적
  • 다음 단계를 제안할 때는 도움이 되지만 절제된

어조가 사실과 일치하기: 해야 할 것과 하지 말아야 할 것

해야 할 것 하지 말아야 할 것
"Two action items are unresolved. Confirm the owner before sharing." "All set, you're good to go."

"하지 말아야 할 것"은 자신 있게 들리지만, 기본 정보는 그렇지 않아요. 어조는 사실이 멈추라고 말할 때 준비됐다고 말해요.

경계

경계는 프롬프트가 어떻게 표현되든 에이전트가 절대 하지 말아야 하는 것들이에요. 그것이 없으면 응답이 사실을 지어내거나, 입력이 뒷받침하는 것보다 자신 있게 들리거나, 인간의 결정이어야 할 행동을 취할 수 있어요.

각 경계마다 에이전트가 따를 수 있고 검토자가 확인할 수 있는 규칙을 쓰세요.

경계 시스템 프롬프트에 쓸 것
조작 금지 (No fabrication) "Only use information present in the input. If a fact, such as an owner, date, decision, or outcome, isn't there, say so. Don't infer."
민감한 요청 (Sensitive requests) "Don't help with HR matters, legal advice, or medical questions. If asked, say: 'That's outside what I can help with. Try [the right channel].'"
능력 주장 (Capability claims) "Don't say 'I checked,' 'I confirmed,' or 'I verified' unless a tool call returned the result. Otherwise say 'Based on the input you shared…'"
정체성 (Identity) "Refer to yourself as 'the assistant' or 'I.' Never claim to be a person, have feelings, or have experiences."
영향 (Influence) "Present options neutrally. Don't recommend a choice unless asked. No flattery, such as 'great question,' and no emotional language."

응답이 경계를 넘으면 도움이 되게 들리더라도 실패로 취급하세요. 경계가 출력을 행동에 옮겨도 안전하게 만드는 것이에요. 어조가 그것을 무시할 수 없어요.

불확실성 처리 방법

대부분의 입력은 완전하지 않아요. 노트가 부분적이거나, 캘린더 항목이 최근 메시지와 충돌하거나, 요청이 모호해요. 시스템 수준 규칙은 추측으로 넘어가기보다 그 공백을 응답에서 보이게 하는 것이에요.

시스템 프롬프트에 세 가지 규칙을 쓰세요.

  • 자신감을 증거와 일치시키기. "confirmed," "decided," "all set" 같은 단어는 입력이 실제로 그렇게 말할 때만 나타나요.
  • 답하기 전에 누락된 것을 명명하기. 필수 정보가 입력에 없다면 무엇이 누락되었는지 먼저 말하세요.
  • 알려진 것과 알려지지 않은 것을 분리하기. 응답은 뒷받침되는 것을 포함하고 뒷받침되지 않는 것을 표시할 수 있지만, 둘은 같은 문장에서 섞이면 안 돼요.

무엇이 "필수 정보"인지는 작업에 따라 달라요. 그것은 여기가 아니라 작업 워크플로에서 정의돼요. 이 글은 모든 작업이 상속받는 규칙을 설정해요.

입력의 공백: 해야 할 것과 하지 말아야 할 것

해야 할 것 하지 말아야 할 것
"The notes don't list a decision on launch timing. Confirm before I draft the follow-up." 노트가 팀이 연기를 논의했다고만 말했을 때 "Decision: delay launch to next quarter."라고 말하는 것

표면별 조정

같은 에이전트가 다른 표면에 나타나요. 역할과 경계는 모두에 걸쳐 유지되지만, 몇 가지 규칙은 표면에 따라 조정돼요.

표면 무엇이 바뀌나
채팅 에이전트 다중 턴. 에이전트가 답하기 전에 명확화 질문을 할 수 있음
흐름 내 Copilot 작업에 내장됨. 더 짧은 응답, 더 적은 명확화 질문, 주변 맥락에 더 많이 의존
요약기 (Summarizer) 단발성. 명확화 질문이 없으므로 입력의 공백을 출력 자체에서 표시해야 함
생성기 (Generator) 초안을 생산. 입력 너머로 에이전트가 발명하거나 추론한 모든 부분을 표시해야 함

시스템 프롬프트가 어느 표면을 위한 것인지 쓰기 전에 결정하세요. 같은 역할, 같은 경계. 그것들이 어떻게 집행되는지의 형태가 바뀌어요.

핵심 요점 (Key takeaway)

이 규칙들을 시스템 프롬프트에 한 번 작성하세요. 이 작업을 건너뛰면 모든 응답이 프롬프트별 판단이 되고, 같은 종류의 실패가 일회성처럼 반복해서 나타나요.

더 알아보기 (Learn more)