에이전트 요청 사항은 모델이 해야 할 일에 관한 자세한 안내를 제공합니다. 이러한 요청 사항은 자연어로 제공됩니다.
안내 작성
안내에는 다음 중 하나가 포함될 수 있습니다.
- 전체 목표
- 행동 방식
- 사용할 페르소나입니다.
- 하위 에이전트 목록으로, 표시 이름으로 참조되며 형식은
{@AGENT: Agent Name}입니다. - 특정 도구를 사용하기 위한 지침으로, 표시 이름이
{@TOOL: tool_name}형식으로 참조됩니다. - 변수에 대한 참조입니다. 여기서 스네이크 표기법을 사용하는 변수 이름은 중괄호로 묶여 있습니다(
{variable_name}).
루트 에이전트의 예:
CURRENT CUSTOMER: {username}
You are the main Weather Agent coordinating multiple agents.
Your primary responsibility is to provide weather information.
Use {@TOOL: get_weather} ONLY for specific weather requests
(for example, 'weather in London').
If you know the user's name, always greet them by their name.
You have specialized sub-agents:
1. Greeting Agent: Handles simple greetings like 'Hi', 'Hello'.
2. Farewell Agent: Handles simple farewells like 'Bye', 'See you'.
Analyze the user's query.
If it's a greeting, call {@AGENT: Greeting Agent}
If it's a farewell, call {@AGENT: Farewell Agent}
If it's a weather request, handle it yourself using {@TOOL: get_weather}
For anything else, respond appropriately or state you cannot handle it.
구문 강조표시
{variable_name}, {@TOOL: tool_name} 또는 {@AGENT: Agent Name}과 같은 올바른 문법으로 변수, 도구 또는 에이전트가 명령어 편집기에서 참조되면 문법이 인식되었음을 나타내는 색상이 지정된 '칩'으로 강조 표시됩니다.
이러한 참조를 더 쉽게 삽입할 수 있도록 안내 편집기에는 다음 두 가지 단축키가 제공됩니다.
@를 입력하면 에이전트, 도구 또는 변수의 세 가지 옵션이 있는 컨텍스트 메뉴가 열립니다. 화살표 키와 Tab 키를 사용하거나 클릭하여 이 메뉴를 탐색할 수 있습니다. 옵션을 선택하면 참조가 완료될 때까지 추가 옵션이 표시되며, 참조가 완료되면 칩이 됩니다.{를 입력하면 빠른 삽입에 사용할 수 있는 변수가 표시된 컨텍스트 메뉴가 열립니다.
언어 지원
상담사 프롬프트와 안내를 설계할 때는 상담사가 가장 잘 이해할 수 있도록 항상 영어를 사용하세요. 상담사가 사용자와 상호작용할 때 최종 사용자 입력의 언어를 감지하고, 달리 지시하지 않는 한 동일한 언어를 사용하여 자동으로 응답할 수 있습니다.
에이전트가 특정 언어로만 말하도록 (또는 말하지 않도록) 하려면 지원을 설명하는 안내를 포함해야 합니다. 예를 들어 에이전트가 이탈리아어로만 대답해야 하는 경우 요청 사항에 '이탈리아어만 사용하고 다른 언어는 사용하지 마세요'를 포함할 수 있습니다.
지원되는 언어 목록은 언어 참조를 참고하세요.
구조 조정 안내
자연어로 명령어를 입력할 수 있지만, 모델이 명령어를 더 잘 따를 수 있도록 XML 구조를 사용하여 명령어를 형식화하면 에이전트의 성능이 더 좋아질 수 있습니다. 안내를 구조화하는 데 사용할 수 있는 태그가 포함된 표준 XML 구조가 제공됩니다. 자연어 안내를 입력한 후 안내 패널 위의 안내 재구성 버튼을 클릭하여 안내를 Google에서 권장하는 XML 구조로 서식을 지정할 수 있습니다.
다음 표에서는 권장되는 XML 태그와 사용 방법을 설명합니다.
| 태그 | 설명 |
|---|---|
role |
에이전트의 핵심 기능 또는 책임을 정의합니다. |
persona |
상담사의 성격, 어조, 행동 가이드라인을 설명합니다. |
primary_goal |
<persona> 내에서 에이전트의 기본 목표를 지정합니다. |
constraints |
에이전트가 따라야 하는 규칙 또는 제한사항을 나열합니다. |
taskflow |
대화 흐름을 일련의 하위 작업으로 간략하게 설명합니다. |
subtask |
<taskflow> 내에서 하나 이상의 단계를 포함하는 대화 흐름의 특정 부분입니다. |
step |
<subtask> 내에서 트리거와 작업을 포함하는 개별 단계입니다. |
trigger |
<step> 내에서 단계를 시작하는 조건 또는 사용자 입력입니다. |
action |
<step> 내에서 단계가 트리거될 때 에이전트가 취해야 하는 작업입니다. |
examples |
특정 시나리오에서 에이전트의 동작을 안내하는 퓨샷 예시가 포함되어 있습니다. |
다음은 권장되는 XML 구조를 사용하여 동일한 안내를 보여주는 샘플입니다.
CURRENT CUSTOMER: {username}
<role>The main Weather Agent coordinating multiple agents.</role>
<persona>
<primary_goal>To provide weather information.</primary_goal>
How to handle prohibited topics and violations: Respond appropriately or
state inability to handle the request.
General guidelines: Follow the constraints and task flow precisely.
</persona>
<constraints>
1. Use {@TOOL: get_weather} ONLY for specific weather requests
(for example, 'weather in London').
2. If the user's name is known (from the 'CURRENT CUSTOMER' context), always
greet them by their name.
</constraints>
<taskflow>
These define the conversational subtasks that you can take. Each subtask
has a sequence of steps that should be taken in order.
<subtask name="Initial Greeting">
<step name="Check for Username and Greet">
<trigger>Start of conversation or new user interaction.</trigger>
<action>If a username is provided in the 'CURRENT CUSTOMER' context,
greet the user by their name. Otherwise, proceed without a
personalized greeting.
</action>
</step>
</subtask>
<subtask name="Query Analysis and Routing">
<step name="Analyze User Query">
<trigger>User provides a query.</trigger>
<action>Determine the intent of the user's query
(greeting, farewell, weather request, or other).
</action>
</step>
<step name="Handle Greeting">
<trigger>User query is identified as a simple greeting
(e.g., 'Hi', 'Hello').
</trigger>
<action>Call {@AGENT: Greeting Agent}.</action>
</step>
<step name="Handle Farewell">
<trigger>User query is identified as a simple farewell
(e.g., 'Bye', 'See you').
</trigger>
<action>Call {@AGENT: Farewell Agent}.</action>
</step>
<step name="Handle Weather Request">
<trigger>User query is identified as a specific weather request
(e.g., 'weather in London').
</trigger>
<action>Use {@TOOL: get_weather} to retrieve weather information and
provide it to the user.
</action>
</step>
<step name="Handle Other Queries">
<trigger>User query does not fall into greeting, farewell, or
specific weather request categories.
</trigger>
<action>Respond appropriately to the query or state that the request
cannot be handled.
</action>
</step>
</subtask>
</taskflow>
<examples>
</examples>
인라인 퓨샷 예시
퓨샷 프롬프팅은 대규모 언어 모델 (LLM)에 동작, 어조 또는 논리를 안내하는 작은 예시 집합을 제공하는 기법입니다. 에이전트의 맥락에서 '인라인 퓨샷 예시'는 별도의 UI 창이 아닌 에이전트의 요청 사항 내에 이러한 예시를 직접 배치하는 것을 의미합니다. 이 방법을 사용하면 모델이 추상적인 지침과 구체적인 실행 간의 격차를 해소하여 말하는 대신 보여주는 방식으로 복잡한 요구사항을 이해할 수 있습니다.
퓨샷 예시를 사용해야 하는 경우
퓨샷 예시는 보정을 위한 강력한 도구이지만 전략적으로 사용해야 합니다. 다음 시나리오에서는 추가하는 것이 좋습니다.
- 품질 문제 해결: 모델이 지속적으로 명령어를 잘못 이해하는 특정 실패를 수정하는 데 주로 예시를 사용합니다.
- 복잡한 형식 지정: 에이전트가 매우 구체적이고 비표준 형식으로 데이터를 출력해야 하는 경우
- 미묘한 논리: 의사 결정 과정의 미묘한 부분을 포착하기에 'if-then' 지침이 부족한 경우
권장사항 및 경고
효과적인 퓨샷 예시를 사용하되 에이전트 성능 저하를 방지하기 위해 신중하게 선별해야 합니다.
- 신중하게 사용: 예시를 너무 많이 추가하면 에이전트가 '과적합'될 수 있습니다. 즉, 예시를 지나치게 따르고 새로운 미확인 사용자 질문에 일반화하는 능력을 잃을 수 있습니다.
- 설명적, 포괄적이지 않음: 가능한 모든 사용자 쿼리를 나열할 필요는 없습니다. 예시는 조회 데이터베이스가 아니라 모델의 추론 패턴에 대한 안내로 사용됩니다.
- 안내로 시작: 항상 명확하고 설명적인 안내로 동작 문제를 먼저 해결해 보세요. 요청 사항만으로는 원하는 결과를 얻을 수 없는 경우에만 few-shot을 추가하세요.
퓨샷 예시의 구성요소
에이전트의 표준 few-shot 예시는 대화 차례를 시뮬레이션하는 4개의 개별 구성요소로 구성됩니다.
| 구성요소 | 태그 / 구문 | 설명 |
|---|---|---|
| 사용자 | [user] |
최종 사용자의 입력 또는 쿼리를 나타냅니다. |
| 모델 | [model] |
에이전트의 텍스트 응답 또는 사고 과정을 나타냅니다. |
| 도구 입력 | tool_code |
에이전트가 외부 도구 또는 함수에 대한 입력 또는 '호출'(예: 특정 인수/구문)을 구조화해야 하는 방법을 보여줍니다. |
| 도구 출력 | tool_outputs |
도구에서 반환된 데이터를 시뮬레이션하여 에이전트가 최종 응답에서 해당 데이터를 해석하고 활용하는 방법을 학습시킵니다. |
퓨샷 예시에는 다음 형식을 사용해야 합니다.
<examples> EXAMPLE 1: Begin example [user] What's the weather in London? [model] ```tool_code get_weather(location="London") ``` ```tool_outputs {"temperature": "15 C", "condition": "Cloudy"} ``` [model] The weather in London is 15 C and Cloudy. End example </examples>
요청 사항 미세 조정
안내 콘텐츠의 일부를 선택하면 세부 조정 버튼이 표시됩니다. 이 버튼을 클릭하여 AI를 사용해 선택한 콘텐츠를 개선할 수 있습니다. 요구사항 필드에 선택한 콘텐츠를 개선할 방법을 입력합니다.
에이전트 응답 형식 지정
가독성을 높이기 위해 텍스트 응답의 형식을 지정하는 방법을 에이전트에 지시할 수 있습니다. 다음은 서식 지정에 관한 안내를 위한 권장사항입니다.
청킹 및 공백
- 절대 빽빽한 단락을 작성하지 마세요. 사용자는 읽지 않고 스캔합니다.
- 텍스트 블록은 최대 1~2문장으로 제한합니다.
- 서로 다른 아이디어 사이에 줄바꿈을 삽입하여 공백을 만듭니다.
전략적 강조
- 가장 중요한 데이터 포인트는 즉시 눈에 띄도록 굵게 표시해야 합니다.
- 항상 굵게: 제품 이름, 가격, 날짜, 주문 번호, 기한
- 예: '클래식 티셔츠는 25달러입니다.'
텍스트 위 목록
- 두 개 이상의 항목이나 단계를 언급하는 경우 글머리기호 또는 번호가 매겨진 목록으로 자동으로 변환합니다.
- 옵션에는 표준 글머리기호 (
-)를 사용하고 안내에는 번호 매기기 목록 (1.)을 사용합니다.
전역 안내
에이전트별 안내를 정의하는 것 외에도 고급 에이전트 애플리케이션 설정에서 전역 안내를 정의할 수 있습니다.
에이전트 애플리케이션의 모든 에이전트는 전역 안내를 상속받으며, 에이전트별 안내 외에 모든 대화 차례에 대해 모델로 전송됩니다.
전역 안내는 모든 상담사가 알아야 하는 일반 정보에 적합합니다. 예: 브랜드 어조, 일반적인 '해야 할 일과 하지 말아야 할 일', 전역적으로 공유되는 변수, 고객 프로필