Skip to content

[Architecture] CWL-wide procedural graph adoption: owned guidance, offline evolution, evidence-gated rollout #2067

Open

Description

@seonghobae

요청과 근거

2026-09-10 사용자 요청: https://arxiv.org/abs/2609.09153 및 https://conanssam.com/posts/2026-09-10-procedural-graphs-self-evolving-llm-agents 를 CWL 전반에 계획하고 실제 반영한다. 후속 요청은 기존 Noema 이식을 유지하면서 ConceptWeave의 책임을 추가하는 것이다.

원 논문: Lu et al., Procedural Graphs: Self-Evolving Execution Structures for LLM Agents, arXiv:2609.09153v1, 2026-09-08. https://arxiv.org/html/2609.09153v1

채택 대상은 절차-관계-절차 표현, 현재 단계 주변의 상황 안내, 성공/실패 실행 관찰을 이용한 오프라인 수정 후보, 분리된 validation과 거절 기억이다. 추론 중 그래프를 고정한다. 논문의 평균 성능 비감소를 CWL의 보안·승인·배포 근거로 확대해석하지 않는다. 논문 결과는 CWL 재현 결과가 아니며, 아래 저장소 배치는 CWL의 아키텍처 결정이다.

ConceptWeave를 포함한 소유권 보완

최초 계획에서 누락했던 절차 지식의 저작·정합화·발행 책임을 ConceptWeave에 명시한다. Noema의 유효한 구현을 폐기하거나 복제하지 않는다.

  • ConceptWeave: 기존 observe -> discover -> propose -> align -> validate -> review -> publish를 절차 모델로 확장한다. 절차 개념, 방향성 안내 관계, 조건/안내/주의점, 원문 근거, 기존 개념/도구 계약 정합화, 수정 후보와 맥락별 기각 이력, Rust 구조·의미 검증, steward 심사와 불변 모델 발행을 소유한다. 제품 업무 사실과 실행 승인 권한은 가져오지 않는다. 추적: ConceptWeave#42, 구현 후보 Refresh governance audit after clearfolio rollout #43.
  • Noema: Agent Runtime의 실행별 고정 graph/session projection, 현재 절차 국소화·부분 그래프 안내, 실행 상태·취소·중단과 실행 관찰을 유지한다. fix(review): 모델 풀 부트스트랩 교착 해소 #585/#586의 예비 산술 검사도 유지할 수 있으나 독립 평가 권위나 별도 모델 발행자가 아니다. /exchange·GitHub OIDC/App 권한과 절차 지식의 발행을 섞지 않는다.
  • context-graph-contracts: graph, guidance context, evaluation receipt, candidate decision 및 release/projection의 언어 중립적 상호운용 계약. ConceptWeave의 로컬 draft와 Noema의 로컬 타입은 아직 공통 릴리스가 아니다. mutable sibling PR head를 운영 의존성으로 소비하지 않는다. [codex] Centralize PR branch update flow #28.
  • enterprise-architecture-core: capability/owner·Context Map 및 제품별 adoption matrix. 사실/업무 truth, 행동 안내, 실행 상태, 정책 권한을 구별한다. Document non-actionable OpenCode finding ban #50.
  • contextual-orchestrator: ConceptWeave의 후보 생성/오프라인 refiner와 Noema의 guide/solver에 기존 gateway 모델 호출·라우팅을 제공한다. 소비자에 provider key, 모델 목록, direct-provider fallback을 복제하지 않는다. fix(ci): download pinned uv 0.12.1 from GitHub Releases #1116.
  • keyverse: 중앙 비밀정보 관리 owner. graph/trajectory/evaluation에 비밀값을 넣지 않고 권한 있는 capability reference를 사용한다. .env 런타임 의존을 추가하지 않는다.
  • PolicyWeave / governance-risk-compliance / Noema Policy-Approval: 정책 truth, 위험·승인 기록, 실행 승인 역할을 분리한다. 그래프가 정책·권한·승인·보호 workflow를 편집하거나 해제할 수 없다. 모델 발행은 실행 허가가 아니다.
  • appguardrail / quarantine-sandbox-runtime / EgressWeave / wardnet: 각 owner의 검출·격리·외부 통신·단말 통제를 유지한다. 안내나 점수로 우회하지 않는다.
  • OriginWeave / LineageWeave 및 원시 증거 owner: 승인·최소화된 관찰과 immutable artifact/계보를 제공한다. ConceptWeave/Noema가 raw product payload, 숨겨진 reasoning, foreign domain truth를 복제 저장하지 않는다. 스키마의 필드명이나 training 선언은 개인정보 제거·출처 검증을 대신하지 않는다.
  • psychometrics-commons / 평가 owner: 과제 자극·문항·rubric·측정 조건, 분리된 holdout/final confirmation, paired evidence 및 독립 수용 기준. 후보 생성 LLM의 자기평가나 평균만으로 승인하지 않는다. test(security): avoid token-shaped fixtures #447.
  • semantic-data-portal: 발행된 절차 모델의 catalog·검색·제공을 맡고 ConceptWeave의 저작 원장이나 제품 업무 사실을 복제하지 않는다.
  • 제품: naruon, bandscope, TEPP, Orgmetra, accounting-information-platform, metering-billing-platform, supply-chain-control-plane, learning-management-platform, inkspan 등은 자체 절차·UL·도구 adapter·평가 기준·승인 권한을 소유한다. 모든 결정론적 계산 함수에 그래프를 강제하지 않고 제외 사유를 남긴다.
  • .github: review -> finding verification -> RED -> causal fix -> exact-head GREEN -> review/merge -> 다음 gap의 공통 절차 profile과 적용 계획을 소유한다. 추가 cron, 조직 일괄 fanout, source/workflow 복제, 병합 우회는 만들지 않는다.

실제 구현 후보와 검증 범위

Noema의 기존 #585/#586은 그대로 유지한다. 해당 PR의 최신 source/check 상태는 각각 live 조회하며 이전 기록을 현재 승인 근거로 쓰지 않는다.

ConceptWeave#43은 Foundation #1 60f14a6e85a83d56c2eea43b34d52b3366bb1735 위의 Draft child다. 게시 head 300fed966643fa4bf2c4be29514b8796da764166에 로컬 0.1.0-draft.1 절차 모델 draft/revision 스키마, 46개 형식 사례, Node/AJV fixture driver, Proposed ADR-PG-20260910, PRD/TRD/Context Map/doctoring/Gap 문서를 추가했다. 기존 Rust/Cargo/일반 후보 스키마와 Noema 코드를 변경하지 않았다.

관측 검증은 독립 Python-jsonschema 46/46, Node fixture-runner 16/16, ECMAScript 식별자 패턴 14건이다. 줄바꿈을 허용하던 식별자/해시 패턴을 44/46 RED에서 46/46로 수정했다. Python은 작성 환경의 검증 도구일 뿐 제품 의존성으로 추가하지 않았다. Native AJV는 ENOTCACHED, Rust 1.98은 작성 환경에 없어 native Product/전체 CI를 통과했다고 주장하지 않는다. 네 형식상 통과 사례는 dangling endpoint/entry/중복 identity/증거·base·scope 인증의 의미 검증 공백을 명시적으로 남긴다.

단계별 실행과 종료 조건

  1. 실행 공통부 + 저작 입력 계약 안정화: Noema graph/session/lifecycle 및 ConceptWeave#43을 각 owner에서 exact-head로 검증·수리한다. 기존 Foundation/bootstrap/client/research의 유효 delta를 보존하고 부모부터 일반 병합한다. Draft와 소스 게시를 제품 릴리스로 표시하지 않는다.
  2. Rust 의미 검증 + 공통 계약: ConceptWeave가 entry/endpoint/evidence membership, 논리 ID/관계 중복, 정확한 tenant/task/base, strict parse/byte bound, profile별 cycle/reachability를 검증한다. CGC owner가 canonical digest·schema·conformance·consumer projection 계약을 발행하고 EAC가 owner/adoption matrix를 갱신한다. requires를 자동 실행 조건·권한·OWL 제약으로 해석하지 않는다.
  3. Read-only/shadow integration: released/versioned 계약을 통해 Noema와 기존 CO gateway에 연결한다. .github 개발 루프와 naruon 읽기 중심 과제에서 무그래프/고정/진화 그래프를 동일 과제·모델·도구 조건으로 비교한다. token·비용·성공률·오류 분모·순서 위반·중복 side effect·지연을 분리 보고한다.
  4. ConceptWeave offline evolution + publication: 승인된 학습 관찰로 후보 생성; 구조·의미·권한 불변식 검증; train/validation/final 분리; 독립 validator receipt 인증; base/과제/평가 조건에 결합한 기각 이력 보관; steward 심사; CAS 발행·supersession·철회·rollback. 캐시된 이전 모델 점수와 바뀐 조건을 직접 비교하거나 holdout 답을 refiner에 유출하지 않는다. confidence는 근거·방법 없이 임의 숫자로 채우지 않는다.
  5. 제품별 canary -> 활성화: 각 owner가 versioned consumer contract, 실제 호출과 도메인 회귀·tenant 격리·취소·철회·복구를 증명한 뒤 opt-in한다. 회계 전기·과금·채용/평가·삭제·배포는 별도 인간/정책 승인과 idempotency 경계를 유지한다. ontology label은 UI 번역 원장과 분리하고, UI가 구현될 때 여덟 언어의 Storybook/E2E·접근성을 검증한다.

필수 적대적 검증

Dangling/duplicate edges; malformed/proxy/duplicate-key inputs; graph/resource bounds; unknown node; tenant/task/base mismatch; graph swapping mid-run; prompt injection/tainted trajectory; credential/PII retention; digest/receipt mismatch; non-finite scores; train/holdout overlap; changed benchmark/model/tool/rubric; missing paired cases; safety regression despite score gain; privilege widening; stale evidence; unapproved publication/activation; rejected-candidate replay; failed rollback/CAS races.

운영·증거 경계

이 issue는 조직 적용 계획과 추적 anchor이며 전사 적용 완료 증거가 아니다. 소스 후보, 보호 브랜치, 릴리스, shadow, canary, 운영·rollback 검증을 별도 상태로 기록한다. 각 실제 구현·로그·PR·immutable release를 연결한다. 기존 writer가 있는 owner는 취지를 잇고 일반 병합/완전 승계로 통합하며 단순 Close하지 않는다. 예약·제품 배포는 실제 실행·확인 없이는 완료로 표시하지 않는다.

Activity

  1. seonghobae commented on Sep 9, 2026

    @seonghobae
    ContributorAuthor

    Implementation progress, 2026-09-10 KST:

    • Noema core PR fix(review): 모델 풀 부트스트랩 교착 해소 #585 is now exact a351bff1167094b64fb51003126636ec3249debc, Draft/mergeable. Its predecessor native CI proved the repository toolchain/typecheck path and ran 4,444 tests: 4,443 passed; the sole failure was the repository-wide public TypeScript API documentation contract on the newly exported procedural APIs. The causal repair adds required adjacent JSDoc plus parameter/return contracts only; runtime/schema behavior is unchanged. Fresh exact-head CI/reviewer/patch-validator/Security runs are queued; predecessor results are not promoted.
    • Noema stacked child fix(review): 중앙 스케줄러의 대상 PR 디스패치 지원 #586 is exact 2ea14b980ffb7b2cdd81fcf5a22f1a2286da0365, Draft/mergeable on current fix(review): 모델 풀 부트스트랩 교착 해소 #585 head. It gates procedural advice through the existing lifecycle: no advice before start, during cancellation, or after terminal outcome; exact execution identity is required; advice remains advisory_only. Parent repair was inherited through an ordinary two-parent merge commit, not force-push, and the child public exports were documented against the known repository gate. Fresh exact-head checks are queued.
    • context-graph-contracts#28 remains an owner handoff rather than a competing source PR. Live CGC already has a large dependency stack and central governance reconstruction; procedural wire-contract work must be integrated by that canonical writer after the stack/governance converges, not by consuming fix(review): 모델 풀 부트스트랩 교착 해소 #585's mutable branch.
    • EAC#50, contextual-orchestrator#1116, psychometrics-commons#447 remain the explicit next owner boundaries. Source/release/shadow/canary/active states stay distinct.

    Research revalidation: arXiv:2609.09153v1 (Lu, Chen, Wu, & Arık, submitted 2026-09-08) describes procedure–relation–procedure graphs, active-node localization and local guidance, offline LLM refinement from successful/failed trajectories, held-out non-regression gating, and retained rejected edits. CWL deliberately strengthens that proposal with exact scope/digest binding, lifecycle suppression, safety blocking, independent approval, and no activation authority in the graph/evaluator. Paper-reported gains are not treated as CWL performance evidence.

    Do not close this parent until the valid Noema stack is integrated or fully succeeded, the released contract/adoption records exist, shadow evidence is collected, and remaining owner deltas are explicitly carried forward.

  2. seonghobae commented on Sep 10, 2026

    @seonghobae
    ContributorAuthor

    2026-09-10 추가 반영

    새 계획이나 중복 PR을 만들지 않고 기존 Noema #585 → #586을 보강했습니다.

    • a99b8615c0959252e6fa78029203e9983f840356: 절차 그래프의 execution ID를 기존 Agent Runtime의 isCanonicalExecutionId로 검사하도록 수정했습니다. 정상적인 run@workflow+attempt=1, _run:attempt#1을 그래프 전용 식별자 문법이 잘못 거부하던 결함과 경계 사례를 테스트로 고정했습니다.
    • 513b9ef40413caf1da4e0ff8e2c3cb0163e3edfb: 알 수 없는 절차나 컨텍스트 한도 초과를 그래프가 보류했는데 상위 lifecycle adapter가 available: true로 바꾸던 결함을 수정했습니다. 이제 available: false, 원래 보류 사유, context: null을 반환합니다. 다른 세션이 먼저 게시한 assertProceduralSession과 기존 child 테스트·CHANGELOG·ADR-0017은 그대로 승계했습니다.
    • 새 docs/doctoring/procedural_graph_adoption.md에 논문이 실제로 주장하는 방법, CWL이 추가한 통제, 저장소별 역할, 배포 단계별 종료 조건, APA 참고문헌을 분리해 기록했습니다. 이 문서는 Noema의 통합 계획이며 EAC의 권위 있는 조직 adoption matrix를 대신하지 않습니다.

    변경 소스·신규 테스트·문서 다섯 파일의 Git blob을 게시된 exact commit에서 다시 조회해 로컬 검증 바이트와 일치시켰습니다. 기존 child 구현은 새 140개 집중 검증 중 138개 통과·2개 실패였고, 수정 후 140개 모두 통과했습니다. 이 검증은 Node 22/TypeScript 5.8의 compiled-source + node:test adapter 및 lifecycle type-only shape를 사용한 진단입니다. native 전체 Vitest·실제 lifecycle 통합·Cloudflare·보안·독립 리뷰 통과가 아닙니다. 실제 GitHub 검사는 새 head에서 다시 실행 중이며 성공으로 간주하지 않았습니다.

    조직 적용 순서

    1. Noema core/lifecycle PR의 native exact-head 검증과 보호 브랜치 통합.
    2. context-graph-contracts #28의 불변 공통 계약과 독립 소비자 적합성 증거, EAC #50의 제품별 도입 상태표.
    3. contextual-orchestrator #1116을 통해 중앙 개발 리뷰와 Naruon 읽기 작업에서 무그래프/고정 그래프/진화 그래프를 같은 조건으로 병행 비교. Actions 모델은 orchestrator/free, 공급자 선택·fallback은 CO 내부, 비밀정보는 Keyverse 경계를 유지합니다.
    4. psychometrics-commons #447의 독립 평가·표준설정과 최종 확인 자료를 거쳐 Noema의 영속 후보/기각 기록·승인·CAS 승격·철회·복구를 연결.
    5. 각 제품이 자신의 절차와 회귀 기준을 소유한 채 opt-in 제한 배포. 회계 전기·청구·고용 판단·삭제·배포의 승인과 중복 실행 방지를 그래프로 대체하지 않습니다.

    추가로 명시한 미해결 경계: lifecycle adapter는 호출자가 전달한 최신 상태에 대해서만 억제할 수 있으며, 오래된 running snapshot의 재전송을 스스로 알아내는 영속 revocation store는 아닙니다. 그래프 저장소, 실제 guide/refiner 모델 호출, 서명된 평가자료 검증, 승격/rollback API, 제품 호출 증거가 아직 없으므로 전사 활성화나 성능 향상을 주장하지 않습니다.

    Noema #583은 이제 748970213509d1383115c4196ed99fc9ee49742e로 병합됐고, 동시 작업자가 parent #585를 80f96aeb1fe83370d09e45e4177eb95ebefc64b2로 일반 병합해 기존 수정을 보존했습니다. 해당 parent writer에게 새 절차 기능과 남은 gap을 docs/product-technical-gap-baseline.md에 Proposed/source-only로 연결할 정확한 근거를 전달했습니다. root baseline에 이 항목이 이미 반영됐다고 주장하지 않습니다.

  3. seonghobae commented on Sep 10, 2026

    @seonghobae
    ContributorAuthor

    ConceptWeave owner-path 갱신: 구현 후보 #43은 61e08d597643a68515c126dbcca25c2495104adc로 전진했습니다. Foundation parent는 계속 60f14a6e85a83d56c2eea43b34d52b3366bb1735입니다.

    300fed966...의 절차 계약 slice에서 실제 CI supply-chain finding이 확인됐습니다. Product/fixture validator가 manifest/lock 없이 npx --yes ajv-cli@5.0.0을 실행하고 있었습니다. Current child는 foreign CLI chain을 유지하지 않고 ajv@8.20.0 direct library를 exact lockfile integrity로 고정했으며 npm ci --ignore-scripts --no-audit --no-fund 뒤 repository-owned in-process Draft 2020-12 validation만 수행합니다. Workflow/checker에서 dynamic npx, ajv-cli, spawnSync 실행은 제거됐고 regression으로 고정했습니다. ConceptWeave 외 owner source, Noema runtime, CGC/EAC/CO 계약은 변경하지 않았습니다.

    이 변경은 input-contract CI repair일 뿐 CWL-wide adoption/release evidence가 아닙니다. Exact-current native AJV/Rust/coverage/hosted security evidence는 아직 없고 #43은 Draft/Proposed입니다. Rust semantic validator와 released CGC projection 전에는 runtime connection/publication/activation을 주장하지 않습니다.

  4. seonghobae commented on Sep 10, 2026

    @seonghobae
    ContributorAuthor

    ConceptWeave first-party self-application continuation — 2026-09-10

    Published Draft child ConceptWeave#44, exact head f63a2d68e64ae7398b3f5c8c863a2f17553edf99, above #43 2c6d3037acdeae2b152c335ee2f60a59b4472831. The body above's 300fed966... is historical: current #43 retains later locked-AJV and Draft-CI/checker repairs. No parent/source delta was discarded or force-pushed.

    The adoption map needs TWO ConceptWeave uses:

    1. Procedural-model producer: author/alignment/validation/review/publication for consumer products, as already defined.
    2. First-party consumer: ConceptWeave's own semantic-model engineering should use an approved procedural profile rather than remain a fixed prose playbook. The object-level authoring task and meta-level process that proposes procedural improvements have separate model/task identities, evidence and approval paths. No self-approval or modification of the evaluator's acceptance criteria is permitted.

    #44 adds inferred source-bound authoring (8 nodes / 9 relations) and offline refinement (9 / 11) profiles, a manifest and native Rust topology/evidence-membership source candidate with 20 authored contract tests. New profile checks are wired into the existing package script and reuse the parent's locked validator. No dependency, lock, workflow, Noema, credential or operational route changed.

    Evidence: 9/9 Node artifact tests and 2/2 independent schema/profile checks passed; all nine remote file blob identities match local bytes. The existing schema's three semantic gaps were reproduced as 3/3 failing rejection expectations. Rust compiler was unavailable: all 20 Rust tests, compiler/fmt/Clippy/docs/coverage, full native AJV and hosted acceptance remain unverified. The Rust module is intentionally not exported as a shipped API yet. No performance improvement or deployment is claimed.

    Continuation: native exact-head validation and causal repair -> public domain API plus strict JSON/projection conformance -> authenticated evidence and released ConceptWeave/CGC projection -> actual Noema/CO read-only shadow. Add ConceptWeave itself alongside central review and Naruon to the shadow adoption matrix. Each keeps its domain evaluation criteria and approval/rollback boundaries. Model/schema existence does not establish active adoption. The runbook docs/doctoring/procedural_self_application.md records scope, failures, pending gates and exact commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions