모델에는 상태가 없고 도구에는 있어
모델은 한 메시지에서 다음 메시지를 만드는 함수야. 현재 초안, 덜 채운 양식, 진행 중인 주문 같은 상태는 바깥에 살고 도구로 접근해야 해. 상태 없는 모델과 상태를 가진 환경을 나누는 것이 에이전트 설계의 핵심이야.
상태를 가진 도구의 세 가지 모양
- 초안 —
create_draft,update_draft,send_draft를 쓰면 매 차례 초안 전체를 다시 넣지 않아도 고칠 수 있어. - 세션 —
start_session,step_session,finish_session으로 수명을 관리하고 세션 ID를 손잡이로 써. - 장바구니와 양식 — 객체가 자체 수명 주기를 가지고 도구가 값을 바꾸며 모델은 ID로 찾아가.
상태 전체를 맥락에 넣는 것보다 나은 까닭
- 맥락이 작아져 비용이 낮고 응답이 빨라.
- 도구 호출이 곧 변경 내역이므로 감사할 수 있어.
- 대화를 닫았다 돌아와도 같은 ID로 이어갈 수 있어.
- 두 에이전트가 같은 상태의 다른 부분을 동시에 다룰 수 있어.