리소스: Task
Task는 A2A의 핵심 작업 단위입니다. 현재 상태가 있으며 작업의 결과가 생성되면 아티팩트에 저장됩니다. 작업에 여러 턴이 있는 경우 기록에 저장됩니다.
| JSON 표현 |
|---|
{ "id": string, "contextId": string, "status": { object ( |
| 필드 | |
|---|---|
id |
필수 항목입니다. 새 작업에 대해 서버에서 생성한 작업의 고유 식별자 (예: UUID)입니다. |
contextId |
상호작용 (작업 및 메시지)의 컨텍스트 컬렉션에 대한 고유 식별자 (예: UUID)입니다. |
status |
필수 항목입니다. |
artifacts[] |
|
history[] |
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED |
metadata |
protolint:enable REPEATED_FIELD_NAMES_PLURALIZED 작업에 관한 맞춤 메타데이터를 저장하는 키/값 객체입니다. |
TaskStatus
작업 상태의 컨테이너
| JSON 표현 |
|---|
{ "state": enum ( |
| 필드 | |
|---|---|
state |
필수 항목입니다. 이 작업의 현재 상태입니다. |
message |
상태와 관련된 메시지입니다. |
timestamp |
상태가 기록된 ISO 8601 타임스탬프입니다. 예: '2023-10-27T10:00:00Z' 생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 |
TaskState
Task의 가능한 수명 주기 상태를 정의합니다.
| 열거형 | |
|---|---|
TASK_STATE_UNSPECIFIED |
작업이 알 수 없거나 불확실한 상태입니다. |
TASK_STATE_SUBMITTED |
작업이 제출되고 확인되었음을 나타냅니다. |
TASK_STATE_WORKING |
태스크가 에이전트에 의해 적극적으로 처리되고 있음을 나타냅니다. |
TASK_STATE_COMPLETED |
작업이 성공적으로 완료되었음을 나타냅니다. 이는 터미널 상태입니다. |
TASK_STATE_FAILED |
작업이 오류와 함께 완료되었음을 나타냅니다. 이는 터미널 상태입니다. |
TASK_STATE_CANCELED |
작업이 완료되기 전에 취소되었음을 나타냅니다. 이는 터미널 상태입니다. |
TASK_STATE_INPUT_REQUIRED |
계속 진행하려면 에이전트에 추가 사용자 입력이 필요함을 나타냅니다. 이는 중단된 상태입니다. |
TASK_STATE_REJECTED |
에이전트가 작업을 실행하지 않기로 결정했음을 나타냅니다. 이 작업은 초기 작업 생성 중에 수행하거나 에이전트가 작업을 진행할 수 없거나 진행하지 않을 것이라고 판단한 후에 수행할 수 있습니다. 이는 터미널 상태입니다. |
TASK_STATE_AUTH_REQUIRED |
계속하려면 인증이 필요함을 나타냅니다. 이는 중단된 상태입니다. |
메시지
Message는 클라이언트와 서버 간의 통신 단위입니다. 컨텍스트 또는 작업과 연결될 수 있습니다. 서버 메시지의 경우 contextId가 제공되어야 하고 taskId는 작업이 생성된 경우에만 제공되어야 합니다. 클라이언트 메시지의 경우 두 필드 모두 선택사항입니다. 단, 두 필드가 모두 제공되는 경우 일치해야 합니다 (contextId은 작업에 설정된 필드여야 함). taskId만 제공된 경우 서버는 이를 기반으로 contextId를 추론합니다.
| JSON 표현 |
|---|
{ "messageId": string, "contextId": string, "taskId": string, "role": enum ( |
| 필드 | |
|---|---|
messageId |
필수 항목입니다. 메시지의 고유 식별자 (예: UUID)입니다. 메시지 작성자가 만듭니다. |
contextId |
(선택사항) 메시지의 컨텍스트 ID입니다. 설정된 경우 메시지가 지정된 컨텍스트와 연결됩니다. |
taskId |
(선택사항) 메시지의 작업 ID입니다. 설정된 경우 메시지가 지정된 작업과 연결됩니다. |
role |
필수 항목입니다. 메시지 발신자를 식별합니다. |
parts[] |
필수 항목입니다. Parts는 메시지 콘텐츠의 컨테이너입니다. |
metadata |
(선택사항) 메시지와 함께 제공할 메타데이터입니다. |
extensions[] |
이 메시지에 있거나 이 메시지에 제공된 확장 프로그램의 URI입니다. |
referenceTaskIds[] |
이 메시지가 추가 컨텍스트를 위해 참조하는 작업 ID 목록입니다. |
역할
A2A 프로토콜 통신에서 메시지의 발신자를 정의합니다.
| 열거형 | |
|---|---|
ROLE_UNSPECIFIED |
역할이 지정되지 않았습니다. |
ROLE_USER |
메시지는 클라이언트에서 서버로 전송됩니다. |
ROLE_AGENT |
메시지는 서버에서 클라이언트로 전송됩니다. |
파트
Part는 커뮤니케이션 콘텐츠 섹션의 컨테이너를 나타냅니다. 파트는 순수 텍스트, 파일 (이미지, 동영상 등) 또는 구조화된 데이터 blob (예: JSON)일 수 있습니다.
| JSON 표현 |
|---|
{ "metadata": { object }, "filename": string, "mediaType": string, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "text": string, "raw": string, "url": string, "data": value // End of mutually exclusive fields. } |
| 필드 | |
|---|---|
metadata |
선택사항. 이 부분과 연결된 메타데이터입니다. |
filename |
파일의 선택적 |
mediaType |
파트 콘텐츠의 |
| 다음은 상호 배타적인 필드의 목록입니다. 응답에는 다음 필드 중 최대 하나가 설정됩니다. | |
text |
|
raw |
파일의 base64 인코딩 문자열입니다. |
url |
파일 콘텐츠를 가리키는 |
data |
JSON 값 (객체, 배열, 문자열, 숫자, 불리언 또는 null)로 임의의 구조화된 |
| 상호 배타적 필드의 끝입니다. | |
아티팩트
아티팩트는 작업 출력을 나타냅니다.
| JSON 표현 |
|---|
{
"artifactId": string,
"name": string,
"description": string,
"parts": [
{
object ( |
| 필드 | |
|---|---|
artifactId |
필수 항목입니다. 아티팩트의 고유 식별자 (예: UUID)입니다. 작업 내에서 고유해야 합니다. |
name |
아티팩트의 인간이 읽을 수 있는 이름입니다. |
description |
(선택사항) 아티팩트에 대한 사람이 읽을 수 있는 설명입니다. |
parts[] |
필수 항목입니다. 아티팩트의 콘텐츠입니다. 하나 이상의 파트를 포함해야 합니다. |
metadata |
(선택사항) 아티팩트에 포함된 메타데이터입니다. |
extensions[] |
이 아티팩트에 있거나 기여한 확장 프로그램의 URI입니다. |
메서드 |
|
|---|---|
|
진행 중인 작업을 취소합니다. |
|
작업의 최신 상태를 가져옵니다. |
|
지정된 필터와 일치하는 작업을 나열합니다. |
|
종료 상태가 아닌 작업의 작업 업데이트를 구독합니다. |