장기 실행 에이전트(Agent) 개발을 위한 핵심 기술: Skills, Shell, Compaction
장기 실행 에이전트(Long-running Agent) 개발을 위해 Skills, Shell, Compaction 세 가지 핵심 기술을 소개
Skills는 재사용 가능한 버전 관리 지침을 제공하여 에이전트의 작업 신뢰성을 향상시킴
Shell Tool은 에이전트가 종속성을 설치하고 스크립트를 실행하며, 보고서와 같은 결과물을 생성할 수 있는 환경을 제공
Compaction은 컨텍스트 제한을 해결하기 위해 장기 실행 에이전트의 실행을 자동 압축
Glean의 사례를 통해 Skills 기반 라우팅(Routing) 도입 후 정확도가 20% 감소했으나, Negative Example과 Edge Case를 추가하여 성능을 회복
Skills: 에이전트(Agent)의 작업 지침
Skills는 에이전트가 작업을 수행하기 위한 재사용 가능한 지침 묶음으로, SKILL.md 매니페스트(Manifest)를 포함한다.
SKILL.md는 프론트매터(Frontmatter)와 지침을 포함하며, 모델이 실제 작업을 수행할 때 참조하는 버전 관리 플레이북(Playbook) 역할을 수행
Skills가 제공되면 플랫폼은 각 Skill의 이름, 설명 및 경로를 모델에 노출하고, 모델은 해당 메타데이터를 사용하여 Skill 호출 여부를 결정
Glean의 사례에서 Skills 기반 라우팅(Routing) 도입 후 정확도가 감소했으나, Negative Example과 Edge Case를 추가하여 성능을 회복했다.
Shell Tool: 에이전트(Agent)를 위한 실행 환경
Shell Tool은 에이전트가 실제 터미널 환경에서 작업할 수 있도록 지원하며, OpenAI에서 호스팅하는 컨테이너 또는 로컬 런타임(Runtime)을 사용할 수 있다.
Hosted Shell은 Responses API를 통해 상태 저장 작업, 도구 호출, 멀티 턴(Multi-turn) 연속성 및 결과물을 제공
Shell Tool을 통해 에이전트는 종속성을 설치하고, 스크립트를 실행하며, 보고서와 같은 결과물을 생성 가능
/mnt/data를 결과물(Artifact)을 저장하는 표준 위치로 사용하며, 도구는 디스크에 쓰고, 모델은 디스크를 기반으로 추론하며, 개발자는 디스크에서 검색한다.
Compaction: 장기 실행을 위한 컨텍스트 관리
Compaction은 긴 워크플로우(Workflow)로 인해 발생하는 컨텍스트 창(Context Window) 제한 문제를 해결하기 위해 서버 측에서 컨텍스트 창을 관리하고 대화 기록을 자동 압축한다.
Responses API에서 Server-side Compaction을 통해 컨텍스트가 임계값을 초과할 때 자동 압축 실행
Standalone Compact Endpoint를 사용하여 압축 시점을 명시적으로 제어 가능
Skills, Shell, Compaction을 함께 사용하면, 시스템 프롬프트(System Prompt)를 복잡하게 관리하지 않고도 반복 가능한 워크플로우(Repeatable Workflow)를 구축할 수 있다.
장기 실행 에이전트(Agent) 설계를 위한 팁
장기 실행 에이전트(Agent)를 설계할 때, 지속적인 실행을 위한 설계가 중요하다.
컨테이너 재사용(Container Reuse)을 통해 종속성, 캐시된 파일 및 중간 결과물을 유지
previous_response_id를 전달하여 모델이 동일한 스레드에서 작업을 계속하도록 지원
Compaction을 긴 실행을 위한 기본 기능으로 사용
Skills 설명은 라우팅 로직(Routing Logic)처럼 작성하고, 구체적인 입력, 도구 및 예상 결과물을 포함
이러한 설계를 통해 재시작(Restart) 빈도를 줄이고, 다단계 작업의 일관성을 유지할 수 있다.
보안 및 API 호출을 위한 권장 사항
Skills와 네트워크 연결을 함께 사용할 경우, 데이터 유출(Data Exfiltration)의 위험이 있으므로 보안에 유의해야 한다.
Org-level Allowlist를 작게 유지하고, 요청 수준의 Network Policy를 설정하여 네트워크 접근을 제어
인증된 API 호출을 위해 domain_secrets를 사용하여 자격 증명 노출을 방지
Skills는 Hosted Shell 및 Local Shell 모드 모두에서 작동하며, 로컬에서 빠르게 반복하고, 호스팅된 컨테이너에서 실행하여 배포 일관성을 유지
결과적으로, 엄격한 네트워크 접근 제어와 자격 증명 보호를 통해 안전한 에이전트(Agent)를 구축할 수 있다.