본문 바로가기
C.W.K.
Stream
Lesson 05 of 10 · published

여러 도구 조율하기

~20 min · tools, agents, orchestration

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

도구가 많아질수록 선택 자체가 일이 돼

도구 열 개를 노출하면 모델은 매 차례 하나나 병렬 묶음을 골라야 해. 이제 프롬프트는 어떤 의도에 어느 도구가 맞는지, 어떤 순서로 부를지, 어디서 멈출지까지 분기 부담을 져. 많은 에이전트가 도구는 너무 많고 설명은 너무 얇은 이 지점에서 무너져.

복잡도를 견디는 방식

  • 분야별로 묶어 — 먼저 별도 분기 프롬프트가 분야를 고르고, 분야 전용 에이전트에는 관련 도구만 보여줘.
  • 독립된 읽기는 병렬 호출해 — 서로의 결과를 기다릴 필요가 없는 작업은 한 차례에 함께 불러.
  • 의존 순서를 적어 — “X 전에 Y를 불러 customer_id를 받아”처럼 순서를 명시해.
  • 도구 예산을 둬 — 요청마다 호출 횟수의 상한을 정해 반복을 묶어.

피해야 할 구성

  • 에이전트 하나에 도구 서른 개 이상을 한꺼번에 노출해.
  • 책임이 겹치는 도구 둘을 두고 모델이 임의로 고르게 해.
  • 순서 안내가 없어 첫 도구가 실패하면 다른 길을 찾지 못해.

Code

도구 호출 예산 강제하기·python
MAX_TOOL_CALLS = 8

calls = 0
while calls < MAX_TOOL_CALLS:
    resp = client.messages.create(model=..., tools=tools, messages=msgs)
    if resp.stop_reason == "end_turn":
        break
    if resp.stop_reason == "tool_use":
        calls += 1
        tool_results = run_tools(resp.content)
        msgs += [{"role": "assistant", "content": resp.content},
                  {"role": "user", "content": tool_results}]
else:
    raise RuntimeError("tool budget exhausted")

External links

Exercise

도구가 여덟 개 이상인 에이전트를 골라 분야별로 묶고, 분기기가 더 작은 도구 모음을 가진 두 처리 경로로 보내게 바꿔봐. 알맞은 도구를 고르는 비율을 전후로 비교해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.