목표 한 줄로 처음부터 끝까지 도는 에이전트

거의 빈 루프에 세 개의 뇌만 채우면, 에이전트가 스스로 계획 → 행동 → 관찰 → 재계획을 돌며 목표에 도달합니다. 검색·상세조회·표작성 도구는 이미 굴러갑니다 · 설치 0 · 키 0.
주어진 것 · 목표 명세 + 통과 기준
🎯 목표: “비 오는 주말, 실내에서 놀 수 있고 1인 2만원 이하인 데이트 코스 후보 3곳을 찾아 표로 정리해줘.”
조건① 실내(indoor = true) 조건② 가격 ≤ 20,000원 통과 기준: 조건 통과 3곳으로 표 완성
주어진 것 · 도구 상자 (이미 동작함)

에이전트가 골라 쓸 수 있는 도구 3종

🔎 search(검색어) → 후보 장소 id들을 돌려줌 (비용 120토큰)
📋 detail(id) → 그 장소의 실내여부·가격·태그를 돌려줌 (비용 60토큰)
🧾 table(id들) → 조건 통과 후보로 최종 표를 작성 (비용 80토큰)

쓸 수 있는 검색어(재계획용): 실내 데이트 · 전시 · 체험 · 카페 · 보드게임

STEP 1 · 뇌① 계획/행동/재계획 plan → act → replan

policy(state) — “지금 무슨 도구를 쓸까?”

// 매 바퀴, 지금 상태(state)를 보고 다음 행동 { tool, input } 하나를 정해 return
function policy(state) {
}
계획은 다섯 갈래로 갈립니다 — 위에서부터 순서대로 물어보세요:
① 후보가 하나도 없으면 → 우선 검색으로 시작 (state.queriesLeft[0])
② 아직 상세를 안 본 후보가 있으면 → 그 후보 상세 조회 (state.undetailed[0])
③ 조건 통과가 아직 3곳 미만인데 안 써본 검색어가 남았으면 → 다시 검색(재계획)
④ 조건 통과가 3곳 이상이면 → 표 작성 (state.passing)
⑤ 더 찾을 게 없으면 → 지금 가진 걸로 표
비워두면? 에이전트가 행동을 못 정해 안전하게 멈춥니다(오류 메시지 안내). 채워야 진짜로 돕니다.
STEP 2 · 뇌② 관찰/종료 판정 observe → stop

isGoalMet(state) — “목표를 이뤘나?”

// 매 바퀴 맨 앞에서, 지금 상태로 목표를 달성했는지 true/false 판정
function isGoalMet(state) {
}
두 가지가 모두 참이면 목표 달성입니다 —
① 표가 만들어졌나? → state.tableBuilt
② 조건 통과 후보가 3곳 이상인가? → state.passing.length >= state.need
항상 true로 두면? 아무것도 안 하고 1스텝 만에 끝나 “목표 미달”로 표시됩니다(안전).
STEP 3 · 뇌③ 안전벨트 걸고 돌리기 budget · guardrail

토큰 예산 — 폭주하면 여기서 멈춘다

1500 토큰을 넘어서면 즉시 정지 (권장 1500)

🛡️ 이와 별개로 엔진에는 끌 수 없는 강제 상한 20스텝(HARD_CAP)이 항상 켜져 있어, 정책을 잘못 짜도 무한루프는 원천 차단됩니다. 예산은 “돈이 새기 전에” 먼저 거는 당신의 안전벨트입니다.

Signal Vol.3 · 루프 엔지니어링 · 이 정점 데모는 외부 서버·API 키 없이 브라우저 안에서 100% 돕니다(결정적 도구).