오늘 저희는 Eval Engineering Skill을 출시합니다. 이 스킬은 코딩 에이전트가 저장소와 에이전트 트레이스의 컨텍스트를 사용하여 평가를 구축할 수 있도록 돕습니다.
이 스킬은 에이전트가 어떻게 구성되어 있는지 검사하고, 가능한 경우 트레이스에서 패턴을 마이닝하며, 테스트할 능력을 제안합니다.
이 스킬은 사용자와 인터뷰하도록 설계되었습니다. 사용자는 제안에 대한 피드백을 제공하고 각 평가를 반복적으로 승인할 수 있습니다. 최종 결과물은 Harbor 형식의 실행 가능한 평가 세트입니다.
환경 및 작업 구축
이 스킬은 먼저 저장소를 읽고 프롬프트, 모델, 도구, 스킬, 훅 등을 포함한 에이전트 표면을 매핑합니다. 또한 API 호출과 같은 해당 동작을 뒷받침하는 데이터 및 서비스를 식별합니다.
사용자는 langsmith-cli와 같은 도구를 사용하여 검색할 수 있는 트레이스를 에이전트에 가리킬 수도 있습니다. 트레이스는 도구가 인수, 결과, 오류 등 실제로 어떻게 동작하는지 보여줍니다. 이러한 관찰된 계약은 스킬이 통제된 환경에서 관련 프로덕션 동작을 재현하는 데 도움이 됩니다.
저장소와 트레이스를 크롤링하면 스킬이 에이전트에게 어떤 능력이 중요한지 알게 되어 평가 작업을 제안할 수 있습니다. 사용자와 인터뷰하는 것이 한 번에 생성하는 것보다 훨씬 더 나은 평가 수용으로 이어진다는 것을 발견했습니다. 사용자는 제안된 평가 방향 중에서 선택하고, 어떤 도구 및 종속성을 라이브로 실행해야 하는지 또는 시뮬레이션해야 하는지에 대한 질문에 대한 지침을 제공합니다. 예를 들어, 비용이 발생하거나 프로덕션에 쓰기 작업이 필요한 도구 호출은 평가 호출마다 실행하는 대신 시뮬레이션할 수 있습니다.
저희는 이 흐름을 문서 Q&A 에이전트인 chat-langchain에서 테스트했습니다. 이 에이전트의 경우 환경에는 프로덕션 에이전트를 모델로 한 에이전트 검색 도구를 통해 노출된 데이터 코퍼스가 필요했습니다. 작업에는 실제 트레이스에서 가져온 현실적인 문서 질문과 골든 답변 문자열 및 인용된 문서를 사용하여 답변을 확인하는 검증기가 포함되었습니다.

평가 설계는 반복적입니다
에이전트가 때때로 한 번에 평가를 생성할 수 있지만, 최상의 평가는 사용자가 피드백을 제공하고 에이전트에서 측정할 가치가 있는 기능을 지정할 때 나온다는 것을 발견했습니다. 코딩 에이전트 및 스킬은 좋은 평가를 구축하는 방법에 대한 도메인 지식이 인코딩되고 사용자가 시간이 지남에 따라 반복할 수 있는 자연스러운 인터페이스를 제공합니다.
예를 들어, 검증기를 구축할 때 첫 번째 검증기가 최종 검증기인 경우는 드물었습니다. 이를 개선하는 유용한 방법은 평가를 실행하고 결과의 양쪽을 검사하는 것이었습니다.
- 에이전트 궤적(메시지, 도구 호출, 작업 포함)
- 검증기 궤적(증거, 추론, 최종 점수)
이를 통해 작업 또는 검증기 설계가 우리가 신경 쓰는 것을 측정하고 있는지, 아니면 에이전트가 지름길을 택할 수 있는 리워드 해킹이 가능한지 알 수 있었습니다. 이러한 지름길에는 평가에서 만점을 받기 위해 관련 없는 출처를 과도하게 인용하거나, 실제로 취하지 않은 작업을 주장하거나, 노출된 답변 자료를 악용하거나, 작업을 완료하지 않고 프록시를 충족시키는 것이 포함될 수 있습니다. 에이전트가 문제를 해결하는 방법에 대한 트레이스를 관찰하면 이러한 실패의 원인이 드러나는 경우가 많습니다. 그런 다음 작업, 환경 및 검증기를 수정하고 다시 실행할 수 있습니다.
평가는 Harbor 형식입니다
이 스킬은 평가를 Harbor 작업으로 구축합니다.
- 지침: 작업을 설명하는 시작 시 에이전트에게 주어지는 메시지
- 환경: 설치할 도구 또는 파일 시스템에 채울 데이터와 같은 작업 설정을 포함하는 Dockerfile로 제공
- 검증기: 에이전트가 작업을 올바르게 완료했는지 점수를 매김
이 스킬은 이러한 구성 요소를 함께 Harbor 작업으로 구축합니다.
1evals/<task-id>/2├── task.toml3├── instruction.md4├── environment/5└── tests/
Harbor는 환경에서 에이전트를 실행하고 그 궤적, 아티팩트, 보상 및 오류를 기록합니다. 동일한 평가는 다른 모델, 프롬프트, 도구 및 에이전트 버전에 대해 실행될 수 있습니다.
이것이 중요한 이유
지속적 학습은 프로덕션 데이터를 사용하여 시간이 지남에 따라 에이전트를 개선하는 평가를 구축하는 지속적인 데이터 마이닝 문제로 생각할 수 있습니다. 팀은 트레이스를 마이닝하여 반복적인 사용자 요청, 오류, 실패한 도구 호출 및 잘못된 상태 변경을 찾습니다. 이는 평가가 되어 동일한 동작을 측정하고 향후에 방지할 수 있도록 합니다.
평가는 에이전트의 훈련 데이터입니다. 팀은 프롬프트 및 도구 변경 또는 파인튜닝과 같은 하네스 엔지니어링을 통해 평가에 에이전트 동작을 맞출 수 있습니다. 평가는 이러한 변경이 의도된 기능을 개선했는지 결정하기 위한 고정된 목표를 제공합니다.
컨테이너화된 평가는 이 프로세스를 더 빠르게 만듭니다. 에이전트 구성이 변경되는 동안 작업과 환경은 안정적으로 유지되므로, 빌더는 모델, 도구, 프롬프트 또는 완전한 에이전트 버전을 교체하고 결과를 직접 비교할 수 있습니다. 여러 구성이 병렬로 실행될 수 있습니다.
재현 가능한 환경은 해당 신호에 중요합니다. 평가가 프로덕션의 관련 도구, 데이터, 권한, 상태 및 실패 모드를 반영할 때, 빌더는 에이전트가 어떻게 작동하는지 여전히 대표성을 지니는 안정적인 테스트베드를 얻습니다. 변경되는 프로덕션 시스템에 의존하거나 프로덕션 상태에 쓰기 작업을 하지 않고도 빠르게 실험할 수 있습니다.
결과 루프는 다음과 같습니다.
트레이스 마이닝 -> 실패 식별 -> 평가 구축 -> 에이전트 개선 -> 재실행
지금 사용해보세요
Eval Engineering Skill은 langchain-ai/langchain-skills 저장소에서 사용할 수 있습니다.
Codex 또는 Claude Code에 스킬을 설치하고, 평가하려는 에이전트가 포함된 저장소를 열고, 가능한 경우 트레이스 세트를 에이전트에 가리킨 다음, 간단한 프롬프트로 시작하세요.
저희는 이 스킬을 확장하고 평가를 자동으로 구축하고 에이전트를 자율적으로 맞추는 것을 더 쉽게 만드는 도구를 구축하기를 기대하고 있습니다.


![[메모] 성과가 낮은 부하 직원을 배제하는 상사들](/cdn-cgi/image/width=1920,quality=90,format=auto,metadata=none/https%3A%2F%2Fcms-assets.youmind.com%2Fmedia%2F1784827522698_408j7z_HN3Kb76awAAvvjF.jpg)


