ARTEX 현재 시스템 문서
전체 문서
이 페이지 목차

ARTEX 현재 시스템 지도

ARTEX 현재 시스템 지도 · 관계

이 대상이 사용하는 구현·계약·의존 · 4개

전체 관계 4개 · 종류 선택·관계도

ARTEX는 승인된 보안 작업을 하나의 장기 태스크로 저장하고, LLM planner가 탐색 의도를 만들며, 여러 worker가 도구를 실행한 결과를 자산·사실·finding·증거로 되돌려 다음 계획을 촉발하는 Go/Next.js 애플리케이션이다. 이 문서는 reference/src/ARTEX의 현재 구현을 운영자와 구현 검토자가 코드까지 추적할 수 있게 설명한다.

설명 기준 · upstream Autumn-27/ARTEX b55ceb1fdd84a813d77de09a06af83d323a81f85 · 이 저장소에 고정한 revision 408bf6b16c425fb615fba80a110a7bc4bf38b0fe · 2026-10-07 확인 시 upstream main과 같은 HEAD · ARTEX source 경로의 staged/unstaged 변경 없음.

확인 수준 · Go backend, PostgreSQL/SQLite 선언, Next.js client, scripts와 tests를 정적으로 대조했다. 서버·DB·proxy·실제 LLM/MCP/ScopeSentry는 실행하지 않았다. Norma 내부 loop는 ARTEX가 options를 구성하고 event를 수집하는 경계까지만 이 문서가 소유한다. 소스 기준

이 문서가 답하는 질문

질문 독립 진입
태스크가 어떻게 목표·의도로 분해되고 끝나는가? 태스크 탐색 루프
자산을 어떻게 가져오고 scope·coverage와 연결하는가? 자산·scope·coverage
finding과 HTTP 증거는 어떻게 함께 확정되는가? Finding과 증거
사람이 실행 중 무엇을 관찰·수정·질문할 수 있는가? 사람 개입과 보조 실행
Planner/Worker/Main/Reporter가 어떤 runtime을 쓰는가? 에이전트 런타임
tool·skill·MCP·승인은 어디서 조립되고 강제되는가? 도구와 정책
어떤 저장소와 background loop가 상태를 소유하는가? 저장·서비스 모듈
모든 DB 객체와 정확한 SQL 소비·복합 제약을 직접 찾으려면? 데이터 모델 · production access · table-level 제약
모든 HTTP operation을 직접 찾으려면? HTTP·UI 계약
설정·환경변수·파일의 우선순위는? 설정·파일 계약
언어·프레임워크·외부 의존은 어디에 쓰이는가? 기술과 의존성
인증·scope·egress·finding 신뢰의 실제 경계는? 보안·승인 경계
설치·업데이트·archive·복구의 완료 조건은? 운영

한 화면 시스템 지도

HTTP·SSE

intent

asset · fact · finding

운영자 / Browser

Go API + embedded UI

Manager / Task registry

PostgreSQL
업무 상태 51 tables

Task Engine

Planner

Persistent frontier

Worker pool

Task Main Agent / Chat

Norma sessions

Built-in · custom · Skill · MCP

Recording proxy

허용 대상

Traffic SQLite + blobs

LLM · MCP · Search · ScopeSentry

Evidence CAS + PG bindings

Reporter · Retest · Notify

그림 크게 보기
Mermaid 원문
flowchart LR
  Human[운영자 / Browser] -->|HTTP·SSE| API[Go API + embedded UI]
  API --> Manager[Manager / Task registry]
  Manager --> PG[(PostgreSQL\n업무 상태 51 tables)]
  Manager --> Engine[Task Engine]
  Engine --> Planner[Planner]
  Planner -->|intent| Frontier[(Persistent frontier)]
  Frontier --> Worker[Worker pool]
  Human --> Main[Task Main Agent / Chat]
  Worker --> Norma[Norma sessions]
  Planner --> Norma
  Main --> Norma
  Norma --> Tools[Built-in · custom · Skill · MCP]
  Tools --> Proxy[Recording proxy]
  Proxy --> Target[허용 대상]
  Proxy --> Traffic[(Traffic SQLite + blobs)]
  Tools --> External[LLM · MCP · Search · ScopeSentry]
  Worker -->|asset · fact · finding| PG
  Traffic --> Evidence[Evidence CAS + PG bindings]
  Evidence --> PG
  PG --> Reporter[Reporter · Retest · Notify]
  Reporter --> Human

  click Engine "features/task-exploration.md#feedback-loop" "태스크 실행 루프"
  click Planner "modules/agent-runtime.md#planner-session" "Planner 세션"
  click Worker "modules/agent-runtime.md#worker-session" "Worker 세션"
  click Tools "modules/tool-policy.md#assembly" "도구 조립"
  click Proxy "features/findings-evidence.md#traffic-evidence" "트래픽 기록"
  click PG "contracts/data-model.md#postgres-map" "PostgreSQL 지도"
  click API "contracts/http-ui.md#route-families" "API 지도"
  click Reporter "features/findings-evidence.md#downstream" "후속 처리"

텍스트 경로: 운영자는 API로 태스크를 만들고, Manager가 PostgreSQL 상태와 Engine을 결합한다. Planner는 graph를 읽어 intent를 추가하고 worker는 DB frontier를 claim한다. 각 agent는 Norma session에서 허용된 tool을 호출한다. 결과는 PostgreSQL과 traffic/evidence 저장소에 남아 planner·reporter·retest·notification의 입력이 된다. Manager 근거 Engine 근거 조립 근거

완료와 확인의 경계

상태 코드가 보장하는 범위 남는 판단
goal met planner가 같은 exploration의 fact/finding을 prove_goal로 연결 독립 검증자가 목표를 승인했는가
intent done worker session이 정상 terminal reason으로 끝나고 writeback을 마침 그 공격 방향을 충분히 소진했는가
intent blocked 실행 오류나 provider/tool 문제로 계속하지 못함 대상에 취약점이 없는가
intent exhausted turn/runtime 예산을 소진 추가 탐색 가치가 없는가
finding node confirmed finding row·graph node·선택 evidence binding transaction이 commit exploit 재현·scope·severity·중복이 검증됐는가
task done goal proof가 모두 충족되거나 goal 없는 frontier가 종료 조건에 도달 scope 전체 coverage가 완전한가
archive archived package와 DB archive 상태가 background worker 기준 완료 전체 인스턴스 backup과 복구가 가능한가

deadline에 도달하면 새 claim과 일반 planning을 막고 inflight writeback을 기다린 뒤 final planning round를 수행한다. HTTP 202나 queue row 생성은 background 작업 완료가 아니다. Engine timeout Archive worker

영역별 문서

축 설명 진입 코드/계약 진입
태스크 탐색 부트스트랩→재계획→종료 server/engine.go, agent/planner.go, agent/worker.go
자산·scope 수집→정규화→gate→coverage db/assets.go, db/task_scope.go, server/sync_scopesentry.go
결과·증거 fact/finding→snapshot→report/retest db/finding_traffic.go, evidence/store.go, traffic/traffic.go
사람 개입 main chat·steer·side question·trigger agent/mainagent.go, server/side_questions.go
Agent runtime 역할·provider·context ARTEX↔Norma boundary
Tool policy catalog·visibility·deferred·intercept built-in/custom/MCP/Skill/Guard
저장·service loop store ownership·scheduler·notifier PostgreSQL/SQLite/files/background loops
HTTP·Web router·auth·SSE·UI consumer 261 registered operations + Next.js routes
HTTP provider source file×path family 구현 지도 58 provider group → 261 handlers
DB 독립 객체 지도 PostgreSQL 551개 field 의미 + 정확한 production SQL 소비 + 24개 table-level 제약 + Traffic SQLite 21개 field
API 독립 operation 지도 등록 261 operations + 요청·응답 semantic
Web 화면 27개 화면→API·SSE 소비 27 page entries + 4 SSE endpoints
설정 JSON/env/DB settings/files 우선순위와 소비자
기술 runtime·dependency 지도 go.mod, package-lock.json, manifests
경계 인증·scope·egress·audit 강제점과 fail-open 조건
운영 시작·업데이트·archive·복구 실제 실행은 미검증

먼저 알아야 할 미확인 사항

전체로 돌아가기 · Markdown 원본

검색을 열면 색인을 읽습니다.

등록한 문서 본문에서 검색합니다.