
에이전트 모델을 학습할 때 필요한 것은 단순한 질의응답 쌍만이 아닙니다. 사용자가 요청하고, 모델이 판단하고, 도구를 호출하고, 결과를 받아 다시 응답하는 전체 상호작용 흐름이 중요합니다. AgentTrove는 이런 에이전트 상호작용 트레이스를 모은 오픈소스 데이터셋입니다. Hugging Face 컬렉션 기준 open-thoughts/AgentTrove는 170만 개 규모로 공개되어 있습니다.1
이 데이터셋을 볼 때 핵심 질문은 “얼마나 큰가?”보다 “학습 가능한 형식으로 어떻게 다룰 것인가?”입니다. 특히 SFT나 에이전트 학습에 활용하려면 트레이스 안의 역할, 도구 호출, 도구 응답이 일관된 대화 구조로 정리되어 있어야 합니다.
AgentTrove에서 먼저 봐야 할 것
AgentTrove는 ShareGPT 스타일 레이아웃을 사용하는 에이전트 트레이스 컬렉션입니다. 즉, 단일 텍스트가 아니라 여러 턴으로 구성된 대화 흐름을 다루는 데이터로 이해하는 편이 좋습니다.
실제로 학습 파이프라인에 넣으려면 다음 요소를 먼저 확인해야 합니다.
user,assistant,tool,system같은 역할이 명확한가도구 호출과 도구 결과가 서로 맞게 연결되어 있는가
빈 메시지나 학습에 방해되는 필드가 있는가
사용하는 학습 프레임워크가 기대하는
conversations또는messages구조와 맞는가
이 기준을 세워두면 AgentTrove를 단순히 “큰 데이터셋”으로 보는 대신, 에이전트 행동을 학습 가능한 대화 데이터로 변환하는 작업으로 접근할 수 있습니다.
OpenAI Chat Messages 형식 변환본의 의미
AgentTrove를 바로 쓰기 어렵다면 WhitzardAgent/AgentTrove-OpenAI를 참고할 수 있습니다. 이 데이터셋은 원본 open-thoughts/AgentTrove를 OpenAI Chat Messages 형식으로 변환한 5만 개 레코드 버전입니다.2 라이선스는 Apache-2.0입니다.2
OpenAI Chat Messages 형식은 role과 content를 가진 JSONL 메시지 배열을 사용합니다.2 변환된 레코드는 messages 필드 안에 trajectory 데이터를 담고, user, assistant, tool, system 역할 매핑을 포함합니다.2
이 형식이 중요한 이유는 명확합니다. 에이전트 학습에서는 모델이 단순히 답변 문장을 생성하는 것뿐 아니라, 언제 도구를 호출하고 그 결과를 어떻게 다음 응답에 반영하는지도 배워야 합니다. WhitzardAgent/AgentTrove-OpenAI는 native tool_calls와 tool 역할 메시지를 지원하므로, 도구 사용 흐름을 유지한 채 데이터를 살펴보는 데 유용합니다.2
전체 다운로드 전에 스트리밍으로 확인하기
170만 행 전체를 먼저 내려받기보다, 스트리밍으로 일부 샘플을 확인하는 편이 안전합니다. 데이터의 구조와 품질을 빠르게 점검한 뒤 필요한 만큼만 가공하는 방식이 실용적입니다.
from datasets import load_dataset
ds = load_dataset(
"open-thoughts/AgentTrove",
split="train",
streaming=True
)
for i, row in enumerate(ds):
print(row)
if i == 2:
break이 단계에서 확인할 것은 데이터의 “내용”보다 “구조”입니다. 어떤 태스크가 들어 있는지, 도구 호출이 어떤 필드에 기록되는지, 메시지 역할이 일관적인지, SFT 포맷으로 변환할 때 손봐야 할 부분이 있는지 먼저 봐야 합니다.
SFT 데이터로 정리할 때의 체크포인트
AgentTrove를 ShareGPT 스타일 또는 OpenAI Chat Messages 스타일 SFT 데이터로 만들 때는 대화 배열의 일관성이 가장 중요합니다. 학습기는 보통 conversations나 messages 같은 리스트를 기대하므로, 각 턴이 어떤 역할의 메시지인지 명확해야 합니다.
실전에서는 다음 순서로 점검하는 것이 좋습니다.
역할 매핑을 정한다
user,assistant,tool,system역할이 학습 포맷과 맞는지 확인합니다.도구 호출과 결과를 맞춘다
도구를 호출한 메시지와 도구가 반환한 메시지가 흐름상 연결되어 있어야 합니다.빈 메시지와 불필요한 필드를 제거한다
내용이 비어 있거나 학습 목표와 맞지 않는 필드는 품질을 떨어뜨릴 수 있습니다.작은 샘플로 먼저 학습 테스트를 한다
전체 데이터 변환 전에 일부 샘플로 토크나이징, 로딩, 학습 루프가 정상 동작하는지 확인하는 편이 안전합니다.
이 과정에서 OpenAI 변환본은 좋은 기준점이 될 수 있습니다. 원본을 직접 변환하더라도, messages 구조와 역할 매핑이 어떻게 구성되어 있는지 비교할 수 있기 때문입니다.
AgentIR로 보는 변환 가능성
AgentIR도 함께 볼 만합니다. AgentIR은 에이전트 trajectory를 위한 오픈소스 컴파일러 인프라로, 에이전트 트레이스를 여러 타깃 형식으로 변환할 수 있습니다.2
이는 AgentTrove 같은 트레이스를 특정 포맷에 고정된 데이터로 보지 않게 해줍니다. 한 번 정리한 trajectory를 OpenAI 형식뿐 아니라 다른 학습 또는 평가 포맷으로 내보내는 방식도 고려할 수 있습니다.2
결론
AgentTrove의 가치는 170만 개라는 규모에만 있지 않습니다. 더 중요한 점은 에이전트의 판단, 도구 호출, 결과 반영 과정을 학습 가능한 대화 흐름으로 다룰 수 있다는 데 있습니다.
실전에서는 먼저 스트리밍으로 원본 구조를 확인하고, WhitzardAgent/AgentTrove-OpenAI 같은 변환본을 참고해 작은 SFT 세트부터 만드는 것이 좋습니다. 이후 역할 매핑, 도구 호출, 빈 메시지를 정리하면서 원하는 학습 포맷에 맞춰 확장하면 됩니다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
