첫 AI 에이전트 만들기: 배운 점들

드디어 첫 번째 완전 자율 AI 에이전트를 만들었어요. 기대만큼이나 겸손해지는 경험이었죠. 제가 배운 점을 공유할게요.

계획 루프가 모델보다 중요하다

저는 처음에 단순한 “루프 안의 LLM” 방식으로 시작했어요 — 프롬프트를 보내고, 행동을 받아 실행하고, 반복하는 방식이죠. 가끔은 잘 됐어요. 전환점은 명시적 계획을 추가했을 때였어요. 에이전트가 행동하기 전에 단계별 계획을 먼저 적게 하고, 도구 호출이 끝날 때마다 그 계획을 수정하게 만든 거죠.

while not task_complete:
    plan = llm("Given the goal and current state, what's the plan?")
    action = llm("Execute the next step of the plan.")
    result = tools.execute(action)
    memory.append(action, result)

메모리는 보기보다 어렵다

단기 메모리(현재 대화)는 쉬워요. 어려운 건 장기 메모리예요 — 세션을 넘어 무엇을 기억할 가치가 있는지 판단하는 것이죠. 저는 결국 간단한 3계층 구조로 정리했어요:

  1. 스크래치패드 — 현재 작업의 모든 것
  2. 에피소딕 — 과거 도구 실행의 요약
  3. 시맨틱 — 정제된 사실들을 담은 벡터 스토어

주의해야 할 실패 모드

  • 루프 중독 — 에이전트가 같은 실패하는 행동을 무한 반복하는 것
  • 환각된 도구 출력 — 실제로 일어나지 않은 결과를 “기억”하는 것
  • 범위 확장 — 단순한 작업이 40단계짜리 대작으로 불어나는 것

정리하자면: 에이전트는 20% 모델, 80% 스캐폴딩이에요. 지능은 진짜지만, 유용하게 만드는 건 그 주변의 엔지니어링입니다.

더 많은 실험이 준비 중이에요 — 따라오고 싶으시면 구독해 주세요.