𝗔𝗻𝗮𝘁𝗼𝗺𝘆 𝗼𝗳 𝗮 𝗚𝗼𝗼𝗱 𝗦𝗸𝗶𝗹𝗹
좋은 스킬의 구조
스킬은 단순한 지침의 집합 그 이상입니다. 에이전트 시스템에서 스킬은 정의된 역량(capability)입니다. 이를 통해 에이전트는 매번 동일한 추론을 반복하지 않고도 작업을 수행할 수 있습니다.
많은 사람들이 한 번은 작동하지만 실제 워크플로우에서는 실패하는 스킬을 만듭니다. 어떤 스킬은 사람이 사용하기에는 적합할지 몰라도, 다른 에이전트가 사용하려고 하면 오류가 발생할 수 있습니다. 또한 완벽한 시나리오에서는 잘 작동하더라도 데이터가 누락되면 실패할 수도 있습니다.
신뢰할 수 있는 스킬을 구축하려면 스킬을 소프트웨어 컴포넌트처럼 다뤄야 합니다. 스킬에는 명확한 계약(contract)이 필요합니다.
스킬 계약은 다음과 같은 질문에 답해야 합니다:
- 이 스킬에는 어떤 정보가 필요한가?
- 어떤 결과를 생성하는가?
- 어떤 가정을 전제로 하는가?
- 정보가 누락되면 어떻게 되는가?
이러한 경계가 없다면 복잡한 워크플로우를 구성할 수 없습니다.
스킬 설계 시 다음 네 가지 영역에 집중하십시오:
입력 설계 (Input Design) 스킬이 모든 것을 받아들이게 해서는 안 됩니다. 모호한 지침은 불확실성을 초래합니다. 입력값이 불분명하면 에이전트는 추측하는 데 에너지를 낭비하게 됩니다. 좋은 스킬은 정의된 작동 범위를 가집니다. 가정을 하기보다는 누락된 세부 정보를 식별해야 합니다.
출력 설계 (Output Design) 스킬은 진공 상태에서 존재하지 않습니다. 워크플로우의 다음 단계에서 그 결과를 사용해야 하기 때문입니다. 만약 스킬이 긴 문단을 반환한다면, 기계가 이를 읽는 데 어려움을 겪을 수 있습니다. 다음 에이전트나 오케스트레이터(orchestrator)가 의사결정을 내리는 데 도움이 되도록 출력을 설계하십시오.
실패 동작 (Failure Behavior) 대부분의 사람들은 성공 경로만을 설계합니다. 실제 시스템은 불완전한 데이터와 도구 오류에 직면합니다. 신뢰할 수 있는 스킬은 오류를 처리하는 방식을 정의합니다. 워크플로우가 복구될 수 있도록 시스템에 왜 실패했는지를 알려주어야 합니다.
제어된 유연성 (Controlled Flexibility) 지나친 경직성은 새로운 맥락에서 스킬을 무용지물로 만듭니다. 반대로 지나친 유연성은 예측 불가능하게 만듭니다. 포맷팅이나 검증(validation)과 같은 작업에는 엄격한 규칙을 사용하십시오. 조사나 계획과 같은 작업에는 더 많은 유연성을 부여하십시오.
단일 스킬은 느슨한 지침으로도 작동할 수 있지만, 스킬 라이브러리는 그렇지 않습니다.
에이전트 시스템을 구축하고 싶다면, 일회성 솔루션을 만드는 것을 멈추십시오. 시스템이 신뢰할 수 있는 역량을 구축하기 시작하십시오.
Source: https://dev.to/codanyks/anatomy-of-a-good-skill-designing-capabilities-that-systems-can-trust-4ap5
Optional learning community: https://t.me/GyaanSetuAi