Agent Environment

Agent environment는 agent가 observe하거나 change할 수 있는 external state입니다. File, repository, terminal, web page, API, queue, issue tracker, generated artifact가 포함될 수 있습니다.

간단한 transition view는 아래와 같습니다.

는 agent의 working state, 는 selected action, 는 environment state, 는 action과 observation이 만든 transition입니다.

Environment는 agent 밖에 있는 truth source입니다. 대화 안의 말, plan, memory는 environment state를 대체하지 못합니다.

Environment type

TypeExamplesTypical actionVerification
Read-onlysearch result, log, documentation, repository fileinspect and citesource path, selected evidence
Editablesource file, Markdown note, configuration, generated artifactpatch or regeneratediff, build, rendered check
ExternalAPI, CI system, deployment target, issue trackerquery or mutateremote status, URL, audit log
Humanapproval, feedback, task constraint, review decisionask or waitexplicit response

중요한 이유

Agent는 text context와 actual external state를 혼동할 때 실패합니다. Conversation에 쓴 plan은 file이 바뀌었거나 build가 통과했거나 deployment가 성공했다는 증거가 아닙니다. Environment는 직접 inspect해야 합니다.

State Boundary

Boundary예확인 방식
Local workspacefile, git status, generated outputrg, diff, build
Remote serviceGitHub Actions, Pages, PR, issueCLI/API status
Runtimeserver, browser, queue jobsmoke check, logs
Human stateapproval, review decisionexplicit response

확인할 것

  • agent가 어떤 external state를 observe할 수 있는가?
  • agent가 어떤 external state를 change할 수 있는가?
  • 어떤 action이 read-only이고 어떤 action이 side-effecting인가?
  • environment가 의도대로 바뀌었음을 어떤 evidence가 증명하는가?
  • generated 또는 out of scope라서 무시해야 할 state는 무엇인가?
  • local success와 remote deployed success를 구분했는가?

Blog/Wiki Environment Map

EnvironmentTruth sourceTypical verifier
Local contentcontent/**/*.mddiff, link check
Build outputpublic/ generated by Quartznpx quartz build
Git statebranch, staged files, commitgit status, git log
Public siteGitHub Pages deploymentActions run status, rendered URL
Uncurated inputcontent/inbox/publishing gate and sanitization check