에이전트 런타임
이 페이지는 openboaAgent 런타임이 실제로 어떻게 동작하는지 설명하는 canonical 문서입니다.
에이전트가 레이어의 의미를 설명한다면, 이 페이지는 런타임 contract를 설명합니다.
에이전트 리질리언스는 pause, retry, requeue, replay 같은 recovery behavior를 설명합니다.
한 문장으로 요약한 런타임 계약
openboa Agent 런타임은 다음과 같은 session-first 시스템입니다.- durable
Session이 실제 실행 객체다 wake(sessionId)가 그 세션에 대해 한 번의 boundedHarnessloop를 실행한다- 그 run은 mounted resource, tool, retrieval, shell, outcome posture를 사용한다
- 그리고 결과를 같은 session의 이벤트와 runtime artifact로 다시 기록한다
One-wake flow
가장 중요한 포인트는 두 가지입니다.- prompt는 disposable하다
- session은 durable하다
핵심 런타임 객체
현재 public runtime 모델의 핵심 객체는 다음과 같습니다.Agent- reusable worker runtime identity
Environment- reusable execution substrate
Session- 실제 running object
SessionEvent- append-only truth
ResourceAttachment- mounted durable input
Harness- one-wake bounded run loop
Sandbox- execution boundary
ToolDefinition- stable callable contract
Prompt view와 truth의 차이
런타임에서 진실은 prompt 안에 있지 않습니다. 진실은 다음에 있습니다.- session event log
- session runtime artifact
- shared substrate
- durable memory surface
- long-running session은 context window를 초과한다
- compacted summary는 useful하지만 reversible truth는 아니다
- future wake는 old event나 exact shell evidence를 다시 읽어야 할 수 있다
상태와 stop model
현재 status는 다음 네 가지입니다.idlerunningreschedulingterminated
idlerequires_actionreschedulingterminated
requires_action은 custom tool result나 managed tool confirmation처럼 외부 입력이 더 필요할 때 session을 pause시키는 seam입니다.
기본 저장 구조
세션은 기본적으로 다음 경로에 저장됩니다.session.json- canonical durable state
events.jsonl- append-only event journal
runtime/- 현재 세션 continuity
wake-queue.jsonl- internal revisit scheduling
Runtime artifact
런타임은 prompt 밖에서도 상태를 다시 읽을 수 있도록 artifact를 materialize합니다. 대표적인 artifact는 다음과 같습니다.- outcome
- outcome grade / evaluation
- context budget
- event feed
- wake traces
- shell state / history / last output
- permission posture
- environment / resource catalog
.openboa-runtime/ 아래에서 Agent가 file처럼 다시 읽을 수 있습니다.
Mount model
기본 mount 모델은 다음 세 층으로 나뉩니다./workspace- session execution hand
/workspace/agent- shared substrate
/workspace/.openboa-runtime- runtime catalog
/memory/learnings- reusable learning surface
/vaults/*- protected read-only mount
Proactive 실행
proactive는 “백그라운드에서 몰래 뭔가 하는 것”이 아닙니다.
현재 의미는 bounded revisit입니다.
흐름은 이렇습니다.
- provider가 loop directive에서
queuedWakes를 제안한다 - harness가 이를 검증하고 durable queue에 쓴다
- orchestration이 due wake를 나중에 consume한다
- 같은 session이 다시
wake(sessionId)로 실행된다
Learning loop
learning은 session-local scratch state와 다릅니다.
현재 흐름은:
- provider가
learnings를 emit한다 - harness가 normalize하고 dedupe한다
- learn store에 저장한다
- durable enough하면
MEMORY.md같은 shared memory로 promote할 수 있다
Retrieval과 reread
openboa는 compacted context 하나를 계속 믿는 방식으로 long-running agent를 만들지 않습니다. 대신:- current wake에서는 bounded context만 조립하고
- retrieval candidate로 prior truth를 찾고
- 필요하면 session event나 runtime artifact를 다시 연다
- session은 truth
- prompt는 view
- retrieval candidate는 hint
- reread가 실제 verification
Outcome과 promotion loop
shared mutation과 durable promotion은 explicit하게 다뤄집니다. 핵심 원칙은:- current session work는
/workspace에서 한다 - shared substrate mutation은 direct write가 아니다
compare -> evaluate -> promote경로를 탄다
- session execution hand의 자유도는 유지되고
- shared durable substrate는 보호된다
Common operating loop
가장 일반적인 운영 loop는 다음과 같습니다.- session에 event append
wake(sessionId)- harness가 bounded context assemble
- provider run
- new event / runtime artifact 기록
- 필요하면
sleep,requires_action,queued revisit,done
이 페이지가 다루지 않는 것
이 페이지는 다음을 전부 다루지는 않습니다.- bootstrap file별 세부 의미
- full internal architecture
- exhaustive tool catalog