- OpenAPI 표준을 기반으로 LLM과 API 간의 명확한 계약을 정의하는 오픈 스펙
- API 호출을 목적 기반의 도구로 구성하여 LLM이 쉽게 사용할 수 있도록 함
- 기존 OpenAPI 문서만으로는 LLM이 적절한 API를 선택하고 호출하는 데 어려움이 있었음
- agents.json은 API 호출 과정은 결정론적으로 유지하면서도, LLM이 달성하고자 하는 결과는 비결정론적으로 수행할 수 있도록 지원함
왜 필요한가?
- LLM을 사용하려면 API와 연동하는 방식을 직접 구현해야 하는 경우가 많음
- 많은 개발자들이 에이전트의 비결정론적 동작을 포기하고, 하드코딩된 워크플로우를 통해 원하는 결과를 얻으려 함
- agents.json을 사용하면 원하는 결과를 얻는 과정에서 LLM이 비결정론적으로 동작하면서도, API 호출 자체는 결정론적으로 실행될 수 있음
- 기존 API는 개발자 중심으로 설계되어 있어, LLM이 직접 사용하기에는 어려움이 있음
- Gmail API 예시:
- 이메일을 검색하고, 스레드의 이메일 목록을 가져오고, 특정 이메일에 응답하는 과정이 필요
- LLM이 OpenAPI 문서를 그대로 참고하면 적절한 API 호출을 선택하는 데 실패하는 경우가 많았음
- agents.json을 사용하면 API 호출을 미리 정의하여 올바른 순서대로 실행 가능
agents.json의 구성 요소
- agents.json 파일
- API 호출을 서로 연결하여 결과 중심적인 도구를 정의하는 역할
- 기존 OpenAPI 파일과 함께 사용됨
- agents.json SDK
- LLM이 agents.json을 기반으로 도구를 불러오고, 일련의 API 호출을 실행할 수 있도록 함
기존 OpenAPI와의 차이점
- OpenAPI만 사용하면 LLM이 API 호출을 올바르게 선택하지 못하는 경우가 많음
- agents.json을 사용하면 API 호출 과정을 템플릿화하여, 원하는 결과를 얻기 위한 최적의 API 호출 흐름을 제공 가능
오픈소스로 공개된 이유
- 초기에는 내부에서 사용하던 설정 파일이었으나, 점차 기능이 확장되면서 오픈소스로 공개 결정
- HubSpot의 CTO인 Dharmesh가 LLM을 위한 API 번역 스펙 개념을 제안했으며, 이에 영감을 받아 공개함
- 현재 10개의 검증된 API 통합이 이루어졌으며, 매일 새로운 API가 추가되고 있음
- 개발자가 쉽게 확장할 수 있도록 툴 검색 및 사용자 정의 컬렉션 플랫폼을 무료로 제공 (https://wild-card.ai)