아티팩트
아티팩트를 사용하면 기본 워크플로 상태 페이로드를 부풀리지 않고도 워크플로 출력을 영구적으로 저장할 수 있습니다.
초안 문서, 추출한 JSON 계획, 인용, 소스 매니페스트, 생성된 파일 경로, 나중에 검토할 프롬프트 및 응답 스냅샷을 저장하기에 적합합니다. 실행마다 대량의 중간 출력을 생성할 수 있는 에이전트 워크플로에서 특히 유용합니다. 최종 상태는 작고 읽기 쉬운 상태로 유지할 수 있습니다.
워크플로 상태 대신 아티팩트를 사용하는 이유
워크플로 상태는 다음 단계에 즉시 필요한 소량의 공개 데이터를 저장하기에 적합합니다.
출력이 일반적인 상태 값보다 크거나 주로 나중에 검토할 용도이거나 검토 및 내보내기 화면에서 활용되거나, 하나의 큰 상태 데이터 덩어리보다 이름이 있는 출력으로 모델링하는 편이 나을 때는 아티팩트가 적합합니다.
현재 워크플로 단계의 아티팩트 저장
코드가 이미 워크플로 단계 안에서 실행 중이라면 Queuety::put_current_artifact()를 사용하세요:
use Queuety\Queuety;
use Queuety\Step;
final class DraftBriefStep implements Step
{
public function handle(array $state): array
{
$draft = [
'title' => 'Pricing brief',
'body' => '...',
];
Queuety::put_current_artifact(
'draft',
$draft,
'json',
[ 'source' => 'planner' ],
);
return [ 'draft_ready' => true ];
}
public function config(): array
{
return [];
}
}
Queuety는 현재 워크플로 ID와 단계 인덱스를 자동으로 연결합니다.
워크플로 외부에서 아티팩트 저장
워크플로 ID를 이미 알고 있다면 Queuety::put_artifact()를 사용하세요:
Queuety::put_artifact(
$workflow_id,
'research_brief',
"# Research Brief\n\nDone.",
'markdown',
metadata: [ 'reviewed_by' => 'editor@example.com' ],
);
아티팩트 다시 읽기
$artifact = Queuety::workflow_artifact( $workflow_id, 'draft' );
$artifacts = Queuety::workflow_artifacts( $workflow_id );
각 아티팩트 레코드에는 key, kind, content, metadata, step_index, created_at 및 updated_at 필드가 포함됩니다. Queuety::workflow_artifacts()는 두 번째 인수로 true를 전달하지 않으면 content를 제외합니다.
워크플로 상태 통합
Queuety::workflow_status()에 이제 간단한 아티팩트 요약이 포함됩니다:
$status = Queuety::workflow_status( $workflow_id );
echo $status->artifact_count; // 2
print_r( $status->artifact_keys ); // ['draft', 'citations']
따라서 전체 내용을 상태 출력에 불러오지 않고도 아티팩트를 확인할 수 있습니다.
CLI
워크플로의 아티팩트 목록:
wp queuety workflow artifacts 42
콘텐츠와 함께 아티팩트 하나 표시:
wp queuety workflow artifact 42 draft
전체 명령어 참조는 CLI를 참조하세요.
내보내기 및 재생
아티팩트는 워크플로 내보내기에 포함되며 재생된 워크플로에도 복사됩니다.
따라서 아티팩트를 사용하는 에이전트 실행은 환경 간에 옮기거나 내보낸 실행 기록에서 다시 만들어도 계속 검토할 수 있습니다.