3P by davespark 12시간전 | ★ favorite | 댓글과 토론

전통적인 소프트웨어 엔지니어링(결정론적, 엄격한 제어)의 습관이 AI 에이전트 개발(확률론적, 유연성 중심)에서 오히려 방해가 된다는 내용.

  • Hugging Face의 Philipp Schmid가 지적한 바에 따르면, 시니어 개발자일수록 LLM의 불확실성을 ‘코드로 제거’하려 해 주니어보다 느려진다.
  • 비유: 관제사(전통) → 디스패처(에이전트) 역할 전환 필요.
  1. 텍스트가 새로운 상태(State)
    • 함정: 자연어 입력을 구조화된 데이터(예: true/false)로 강제하면 맥락 상실.
    • 해결: 피드백(예: “승인, 미국 시장 집중”)을 텍스트로 보존해 동적 조정 가능.

  2. 제어권을 넘겨라
    • 함정: 흐름을 하드코딩(예: 구독 취소 루트)하면 비직선적 상호작용 대응 실패.
    • 해결: 에이전트(LLM)가 맥락 기반으로 의도 판단하도록 신뢰.

  3. 에러는 그냥 입력이다
    • 함정: 에러 발생 시 프로그램 중단(전통 방식)으로 고비용 실행 낭비.
    • 해결: 에러를 피드백으로 제공해 에이전트가 자가 복구 시도.

  4. 유닛 테스트에서 Eval로
    • 함정: 이진 테스트(TDD) 적용 시 확률적 시스템에서 무의미(무한 유효 답변).
    • 해결: 신뢰성(Pass@k), 품질(LLM Judge), 추적(Eval)로 변동성 관리.

  5. 에이전트는 진화하고, API는 그렇지 않다
    • 함정: 인간 중심 API(암묵적 맥락) 사용 시 에이전트 환각 발생.
    • 해결: 상세 시맨틱 타이핑(예: “user_email_address”)과 독스트링으로 명확화. 에이전트는 도구 변화에 적응 가능.

결론

확률성을 받아들이고, Eval/자기 수정으로 관리. “신뢰하되 검증하라” – 엄격함 대신 탄력적 시스템 구축이 핵심. (원문 출처: Philipp Schmid의 “Why (Senior) Engineers Struggle to Build AI Agents”)