C.W.K.
Stream
Lesson 02 of 05 · published

Agent Loop: 소프트웨어식 OODA

~24 min · ooda, control-loop, stop-conditions

Level 0Observer
0 XP0/40 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

Observe, orient, decide, act

군대 쪽에서는 OODA라고 부르고, 소프트웨어 쪽에서는 control loop라고 부르고, agent 쪽에서는 ReAct라고 부르는 경우가 많아. 이름은 달라도 구조는 같아. 현재 상황을 읽고, 목표에 비춰 해석하고, 행동을 고르고, 실행하고, 결과를 다시 본다.

에이전트 품질은 바로 이 루프에 박혀 있어. 나쁜 에이전트는 모형이 영어를 까먹어서 망하는 게 아니야. 관찰값이 애매하고, tool error를 숨기고, iteration limit이 없고, 진전과 삽질을 구분하지 못해서 망한다.

종료 조건은 설계의 1급 시민

모든 루프에는 탈출구가 있어야 해. 보통 final answer, 최대 반복 횟수, 비용 제한, wall-clock timeout, 반복 에러 threshold, 사람의 interrupt, context budget 압박 같은 조건이 들어간다.

run이 왜 멈추는지 설명할 수 없다면 배포하면 안 돼. 무한 자율성은 지능이 아니라 청구서 사고야. 하얀 가운 입었다고 과학이 되는 거 아니거든.

관찰값은 쓸모 있어야 한다

도구 결과를 40KB JSON dump로 context에 던지면 안 돼. 다음 결정을 위해 필요한 것만 줘야 해. 무슨 일이 있었는지, 성공했는지, 무엇이 바뀌었는지, 다음에 가능한 행동이 뭔지.

Code

명시적 stop reason이 있는 loop·python
def should_stop(run):
    if run.final_answer:
        return True, "final_answer"
    if run.steps >= run.max_steps:
        return True, "max_steps"
    if run.cost_usd >= run.cost_limit_usd:
        return True, "cost_limit"
    if run.consecutive_errors >= 3:
        return True, "error_threshold"
    if run.context_tokens >= run.context_limit * 0.85:
        return True, "context_budget"
    return False, None

External links

Exercise

이전 lesson에서 만든 에이전트 설계에 stop condition을 최소 5개 붙여봐. business limit, safety limit, context-window limit을 각각 하나 이상 포함해.
Hint
business limit은 비용/시간, safety limit은 사람 승인, context limit은 compaction이나 graceful pause 같은 형태가 될 수 있어.

Progress

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

댓글 0

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

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