챗봇 응답 생성 과정 추적
SessionTrace는 Agent가 한 응답을 만들기 위해 거친 단계를 기록합니다. 컨텍스트 검색과 도구 호출을 확인하고, 사용자가 응답을 기다리는 동안 진행 상태를 표시하는 데 사용합니다.
Get Session Trace는 Agent RID, 세션 RID와 추적 ID를 받습니다. 완료된 대화에서는 Get Content의 exchanges[].result.sessionTraceId로 추적 ID를 얻을 수 있습니다.
진행 상태 읽기
status가 IN_PROGRESS이면 응답을 생성하는 중입니다. COMPLETE가 될 때까지 추적을 다시 조회합니다. 완료 상태는 응답 생성이 끝났다는 뜻이며, 개별 도구의 성공 여부는 각 출력의 type을 확인해야 합니다.
추가 컨텍스트를 담는 contexts는 응답 생성이 끝난 뒤에만 채워집니다. 따라서 진행 중에 이 필드가 없더라도 검색을 사용하지 않는 구성이라고 단정하지 않습니다. 완료한 추적에서 컨텍스트 객체가 존재하고 내부 목록이 비어 있으면 검색을 시도했으나 관련 컨텍스트를 찾지 못한 경우입니다.
도구 호출의 입력과 출력
toolCallGroups는 같은 시점에 시작하도록 요청한 도구 호출을 묶고, 그룹을 호출 요청 순서로 반환합니다. 이 배열만으로 실제 병렬 실행이나 그룹 내부 완료 순서를 판단하지 않습니다.
각 호출에는 toolMetadata와 input이 있으며, 도구 실행 중에는 output이 비어 있습니다. toolMetadata.type은 다음 값을 사용합니다.
| 값 | 도구 종류 |
|---|---|
FUNCTION | 함수 |
ACTION | 액션 |
ONTOLOGY_SEMANTIC_SEARCH | 온톨로지 의미 검색 |
OBJECT_QUERY | 객체 쿼리 |
UPDATE_APPLICATION_VARIABLE | 애플리케이션 변수 갱신 |
REQUEST_CLARIFICATION | 추가 설명 요청 |
OBJECT_QUERY_WITH_SQL | SQL 객체 쿼리 |
CODE_EXECUTION | 코드 실행 |
input.thought는 Agent가 도구를 선택한 이유에 관해 제공한 추가 메시지입니다. input.inputs는 매개변수 이름을 키로 사용하며, 각 값은 type: string과 value, 또는 type: rid와 rid로 표현합니다.
출력이 type: success이면 output에 문자열 또는 RID가 들어갑니다. type: failure이면 correctionMessage에 도구가 Agent에 반환한 수정 안내가 들어갑니다. Agent는 이 안내로 도구 입력을 고칠 수 있습니다. 추적을 읽는 애플리케이션은 도구 이름과 종류, 실행 중 상태 및 개별 실패를 구분하여 표시합니다.