diff --git a/agent-ops/roadmap/ROADMAP.md b/agent-ops/roadmap/ROADMAP.md index d96b848..0f0c3ea 100644 --- a/agent-ops/roadmap/ROADMAP.md +++ b/agent-ops/roadmap/ROADMAP.md @@ -29,7 +29,7 @@ RAG, context 구성/압축, web search, MCP 정책, tool policy, output validati ### Automation Runtime과 Bridge 확장 - [원격 터미널 브리지 POC](milestones/remote-terminal-bridge-poc.md) - 상태: 계획; 목표: Agent를 설치하기 어려운 host/device를 위해 Edge broker와 Node terminal transport 기반 원격 터미널 브리지 POC를 만든다. -- [Specialized Agent proto-socket 연결 기반](milestones/specialized-agent-proto-socket-foundation.md) - 상태: 계획; 목표: generic Node와 OTO 같은 specialized domain agent가 Edge와 proto-socket으로 직접 통신하기 위한 transport/handshake 책임 경계를 정리한다. +- [Specialized Agent proto-socket 연결 기반](milestones/specialized-agent-proto-socket-foundation.md) - 상태: 진행 중; 목표: OTO의 node-compatible proto-socket registration smoke를 바탕으로 iop Edge의 specialized agent kind, registry/config, message boundary, reconnect 정책을 정리한다. - [Agent Bootstrap과 OTO 등록](milestones/agent-bootstrap-oto-enrollment.md) - 상태: 계획; 목표: specialized domain agent의 bootstrap command 발급, 설치, 등록, 장기 credential 흐름을 설계한다. ### 서빙 라우팅과 최적화 기반 @@ -64,5 +64,6 @@ RAG, context 구성/압축, web search, MCP 정책, tool policy, output validati - 완료 또는 폐기되어 아카이브된 Milestone은 이 문서의 `아카이브 Milestone 요약`에 당시 요약만 남기고, 아카이브 문서 링크나 상세 경로는 남기지 않는다. - 상세 문서가 있는 `agent-ops/roadmap/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. - 아카이브된 Milestone 문서는 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다. -- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하지 않는다. -- `구현 잠금`이 없거나 잠긴 Milestone은 사용자가 "진행"을 요청해도 우회하지 않고, 먼저 Milestone 문서의 구현 구체화와 잠금 해제를 사용자에게 요청한다. +- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하기 전에 현재 요청에 직접 영향을 주는 `결정 필요` 항목만 확인한다. +- 현재 요청과 직접 관련 없는 미정 항목은 잠금 상태로 남겨도 되며, 기존 구조/도메인 rule/플랫폼 관례로 정할 수 있는 작업은 표준선으로 기록하고 진행할 수 있다. +- Milestone 전체에서 사용자만 결정할 항목이 더 이상 없고 에이전트가 표준선에 따라 실행하면 되는 상태라면 `구현 잠금` 상태를 `해제`로 둔다. diff --git a/agent-ops/roadmap/current.md b/agent-ops/roadmap/current.md index 147d9eb..c09be10 100644 --- a/agent-ops/roadmap/current.md +++ b/agent-ops/roadmap/current.md @@ -12,4 +12,4 @@ - 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 Milestone을 선택하고 같은 세션에서 1회 읽는다. - 활성 Milestone 둘 이상에 걸치면 필요한 Milestone 문서를 모두 읽고 작업 범위를 좁힌다. - 활성 Milestone 밖의 작업이면 `agent-ops/roadmap/ROADMAP.md`의 Milestone 목록을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다. -- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 구현이나 구현 계획을 시작하지 않고, 먼저 Milestone 구체화 업데이트와 잠금 해제를 사용자에게 요청한다. +- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 구현이나 구현 계획을 시작하기 전에 현재 요청에 직접 영향을 주는 `결정 필요` 항목만 확인한다. 관련 결정이 없고 표준선으로 처리 가능하면 잠금을 유지한 채 진행할 수 있으며, Milestone 전체에서 사용자만 결정할 항목이 더 이상 없을 때만 `구현 잠금` 상태를 `해제`로 둔다. diff --git a/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md b/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md index 9926248..b5c4b3a 100644 --- a/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md +++ b/agent-ops/roadmap/milestones/agent-bootstrap-oto-enrollment.md @@ -16,16 +16,10 @@ Automation Runtime과 Bridge 확장 ## 구현 잠금 - 상태: 잠금 -- 이유: specialized domain agent 등록과 bootstrap 책임 경계를 정리하는 게이트 문서이며, 구현 가능한 세부 설계가 아직 확정되지 않았다. -- 해제 조건: - - [ ] Specialized Agent proto-socket 연결 기반에서 generic Node와 specialized domain agent의 transport/handshake 경계가 문서화됨 - - [ ] agent registry, bootstrap command, credential 흐름, 보안 검증 기준이 문서화됨 - - [ ] generic Node와 OTO 같은 specialized domain agent의 protocol 경계가 구체화됨 - - [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함 -- 잠금 중 금지: - - 코드 구현 또는 `agent-task` 구현 계획 생성 - - agent registry/API/credential schema를 추측해 확정 - - OTO 구현을 `apps/node` adapter로 흡수하는 방향 선확정 +- 결정 필요: 아래 체크리스트 + - [ ] bootstrap command UX를 어떤 사용 흐름으로 둘지 결정한다. + - [ ] one-time token, 장기 credential, Edge identity 검증의 최소 보안 기준을 결정한다. + - [ ] OTO agent bootstrap 범위를 설치/service 등록까지만 둘지, 초기 capability/run 준비까지 포함할지 결정한다. ## 범위 @@ -60,8 +54,8 @@ Automation Runtime과 Bridge 확장 ## 작업 컨텍스트 -- 관련 앱: `apps/edge`, 향후 OTO agent repository -- 관련 문서: `docs/deploy-dev.md`, `docs/architecture.md` -- 선행 Milestone: Edge-Node 실행 스켈레톤, Edge 입력 표면, Specialized Agent proto-socket 연결 기반 -- 후속 OTO Milestone: `../oto/agent-ops/roadmap/milestones/edge-bootstrap-contract.md` -- OTO 쪽 Edge bootstrap 계약은 이 Milestone에서 사용자 흐름, bootstrap command 요구사항, 보안 모드 기준이 정리된 뒤 재개한다. +- 관련 경로: `apps/edge`, `docs/deploy-dev.md`, `docs/architecture.md`, `../oto/agent-ops/roadmap/milestones/edge-bootstrap-contract.md` +- 표준선(선택): OTO agent는 `iop-node` 하위 프로세스가 아니라 Edge에 직접 outbound 연결하는 specialized domain agent로 둔다. +- 선행 작업: Edge-Node 실행 스켈레톤, Edge 입력 표면, Specialized Agent proto-socket 연결 기반 +- 후속 작업: OTO Edge bootstrap 계약, agent 메시지 프로토콜 +- 확인 필요: bootstrap command 사용자 흐름, credential 보안 모드, OTO 초기화 범위 diff --git a/agent-ops/roadmap/milestones/control-plane-portal.md b/agent-ops/roadmap/milestones/control-plane-portal.md index 9636bf1..18ca460 100644 --- a/agent-ops/roadmap/milestones/control-plane-portal.md +++ b/agent-ops/roadmap/milestones/control-plane-portal.md @@ -16,15 +16,10 @@ Control Plane과 Portal 운영 ## 구현 잠금 - 상태: 잠금 -- 이유: Control Plane, Portal, Edge wire 책임 경계를 정리하는 게이트 문서이며, 구현 가능한 세부 설계가 아직 확정되지 않았다. -- 해제 조건: - - [ ] Control Plane-Edge, Portal-Control Plane, proto-socket/HTTP 사용 경계가 문서화됨 - - [ ] Portal이 다룰 IOP 책임 범위와 NomadCode 전용 UX 제외 범위가 구체화됨 - - [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함 -- 잠금 중 금지: - - 코드 구현 또는 `agent-task` 구현 계획 생성 - - UI route/API/file 구조를 추측해 확정 - - NomadCode 전용 Project Workspace 또는 Agent Shell 요구를 IOP Portal 범위로 선확정 +- 결정 필요: 아래 체크리스트 + - [ ] Portal의 첫 운영 화면 범위를 Edge/Node 상태 조회 중심으로 둘지, 명령/설정 변경까지 포함할지 결정한다. + - [ ] Control Plane-Edge 연결에서 우선 구현할 IOP Wire Protocol 범위를 결정한다. + - [ ] Portal이 IOP 범용 운영 UI로 남기 위해 제외할 NomadCode 전용 UX 경계를 결정한다. ## 범위 @@ -61,6 +56,8 @@ Control Plane과 Portal 운영 ## 작업 컨텍스트 -- 관련 앱: `apps/control-plane`, `apps/web` -- 관련 문서: `apps/control-plane/README.md`, `apps/web/README.md`, `docs/deploy-dev.md` -- 본격 구현 전 control-plane domain rule 생성 또는 갱신이 필요할 수 있다. +- 관련 경로: `apps/control-plane`, `apps/web`, `apps/control-plane/README.md`, `apps/web/README.md`, `docs/deploy-dev.md` +- 표준선(선택): Control Plane은 Node를 직접 스케줄링하지 않고 Edge를 통해 관찰/제어한다. +- 선행 작업: Agent Bootstrap과 OTO 등록, 정책/이력/감사 일부 기준 +- 후속 작업: Multi-Edge 운영 +- 확인 필요: Portal 첫 화면 범위, Control Plane-Edge wire 우선순위, NomadCode 전용 UX 제외 기준 diff --git a/agent-ops/roadmap/milestones/knowledge-tool-validation-optimization.md b/agent-ops/roadmap/milestones/knowledge-tool-validation-optimization.md index 7b2553e..f2edd54 100644 --- a/agent-ops/roadmap/milestones/knowledge-tool-validation-optimization.md +++ b/agent-ops/roadmap/milestones/knowledge-tool-validation-optimization.md @@ -16,15 +16,10 @@ NomadCode는 이 계층의 소비자 중 하나이며, 이 Milestone은 특정 A ## 구현 잠금 - 상태: 잠금 -- 이유: 기본 serving/load routing 이후에 진행할 최적화 영역이며, 선행 Milestone의 산출물 없이 구현 단위로 내려가면 책임 경계가 흔들릴 수 있다. -- 해제 조건: - - [ ] 모델 서빙과 부하 라우팅 Milestone의 선행 조건이 충족됨 - - [ ] RAG, web search, MCP, tool policy, validation, fallback의 책임 경계가 문서화됨 - - [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함 -- 잠금 중 금지: - - 코드 구현 또는 `agent-task` 구현 계획 생성 - - 특정 클라이언트 전용 metadata/API를 IOP 표준으로 확정 - - RAG/MCP/validation 세부 알고리즘을 근거 없이 확정 +- 결정 필요: 아래 체크리스트 + - [ ] 첫 최적화 범위를 RAG, web search, MCP/tool policy, validation/fallback 중 어디까지로 둘지 결정한다. + - [ ] MCP/tool policy와 web search의 보안 기본값을 허용 중심으로 둘지 차단/승인 중심으로 둘지 결정한다. + - [ ] validation/fallback의 품질 기준을 어떤 신호와 임계값으로 시작할지 결정한다. ## 범위 @@ -56,8 +51,8 @@ NomadCode는 이 계층의 소비자 중 하나이며, 이 Milestone은 특정 A ## 작업 컨텍스트 -- 관련 앱: `apps/edge`, `apps/node`, `apps/control-plane` -- 관련 패키지 후보: `packages/policy`, `packages/observability`, `proto/iop` -- 관련 문서: `docs/architecture.md`, `agent-ops/roadmap/milestones/model-serving-load-routing.md` -- 선행 Milestone: 모델 서빙과 부하 라우팅 -- 후속 Milestone: Control Plane과 Portal, 정책, 이력, 감사 +- 관련 경로: `apps/edge`, `apps/node`, `apps/control-plane`, `packages/policy`, `packages/observability`, `proto/iop`, `docs/architecture.md`, `agent-ops/roadmap/milestones/model-serving-load-routing.md` +- 표준선(선택): 기본 모델 serving/load routing이 먼저 안정화된 뒤 최적화 계층을 붙인다. +- 선행 작업: 모델 서빙과 부하 라우팅 +- 후속 작업: Control Plane과 Portal, 정책/이력/감사 +- 확인 필요: 첫 최적화 범위, tool/web 보안 기본값, validation/fallback 품질 기준 diff --git a/agent-ops/roadmap/milestones/model-serving-load-routing.md b/agent-ops/roadmap/milestones/model-serving-load-routing.md index cde3d0b..db1e263 100644 --- a/agent-ops/roadmap/milestones/model-serving-load-routing.md +++ b/agent-ops/roadmap/milestones/model-serving-load-routing.md @@ -17,15 +17,10 @@ RAG, MCP, web search, output validation 같은 최적화 계층으로 넘어가 ## 구현 잠금 - 상태: 잠금 -- 이유: serving/routing 책임 경계와 protocol/API 기준을 정리하는 게이트 문서이며, 구현 가능한 세부 설계가 아직 확정되지 않았다. -- 해제 조건: - - [ ] 모델 profile, local/cloud routing, 부하 라우팅, 품질 평가 기준이 문서화됨 - - [ ] OpenAI-compatible chat completions와 Responses API, A2A, IOP native protocol 경계가 구체화됨 - - [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함 -- 잠금 중 금지: - - 코드 구현 또는 `agent-task` 구현 계획 생성 - - API/DB/package/file 구조를 추측해 확정 - - RAG/MCP/web search/검증 최적화를 이 Milestone에서 선구현 +- 결정 필요: 아래 체크리스트 + - [ ] local-first와 cloud fallback의 비용/품질 우선순위 기본값을 결정한다. + - [ ] OpenAI-compatible Responses API 호환 범위를 어느 수준까지 1차 목표로 둘지 결정한다. + - [ ] 모델 품질 평가와 routing feedback에 사용할 초기 신호를 결정한다. ## 범위 @@ -63,8 +58,8 @@ RAG, MCP, web search, output validation 같은 최적화 계층으로 넘어가 ## 작업 컨텍스트 -- 관련 앱: `apps/edge`, `apps/node` -- 관련 패키지: `packages/config`, `packages/observability`, `proto/iop` -- 관련 문서: `docs/architecture.md`, `apps/edge/README.md` -- 선행 Milestone: Edge 입력 표면, CLI Automation Runtime 안정화 -- 후속 Milestone: 지식, 도구 정책, 검증 최적화 +- 관련 경로: `apps/edge`, `apps/node`, `packages/config`, `packages/observability`, `proto/iop`, `docs/architecture.md`, `apps/edge/README.md` +- 표준선(선택): 내부 실행 계약은 `adapter + target`을 유지하고, OpenAI-compatible API는 외부 호환 입력 표면으로 둔다. +- 선행 작업: Edge 입력 표면, CLI Automation Runtime 안정화 +- 후속 작업: 지식, 도구 정책, 검증 최적화 +- 확인 필요: local/cloud 우선순위, Responses API 1차 범위, 품질 평가 신호 diff --git a/agent-ops/roadmap/milestones/multi-edge-operations.md b/agent-ops/roadmap/milestones/multi-edge-operations.md index 47628af..b8989fc 100644 --- a/agent-ops/roadmap/milestones/multi-edge-operations.md +++ b/agent-ops/roadmap/milestones/multi-edge-operations.md @@ -16,15 +16,10 @@ Control Plane과 Portal 운영 ## 구현 잠금 - 상태: 잠금 -- 이유: fleet-level 운영 책임 경계를 정리하는 게이트 문서이며, multi-edge scheduling과 state ownership 세부 기준이 아직 확정되지 않았다. -- 해제 조건: - - [ ] multi-edge 상태 조회, 실행 이력 집계, routing/scheduling 책임 경계가 문서화됨 - - [ ] Control Plane과 Edge의 상태 소유권 기준이 구체화됨 - - [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함 -- 잠금 중 금지: - - 코드 구현 또는 `agent-task` 구현 계획 생성 - - Edge federation, scheduling algorithm, DB schema를 추측해 확정 - - Control Plane이 Node를 직접 할당하는 구조 선확정 +- 결정 필요: 아래 체크리스트 + - [ ] Multi-Edge 1차 범위를 observe-only로 둘지, fleet-wide 명령까지 포함할지 결정한다. + - [ ] Control Plane과 Edge 사이의 상태 소유권과 aggregation 깊이를 결정한다. + - [ ] OTO/build-deploy domain agent 상태를 fleet 화면의 1차 범위에 포함할지 결정한다. ## 범위 @@ -56,6 +51,8 @@ Control Plane과 Portal 운영 ## 작업 컨텍스트 -- 관련 앱: `apps/control-plane`, `apps/web`, `apps/edge` -- 관련 문서: `docs/architecture.md` -- 선행 Milestone: Control Plane과 Portal, 정책, 이력, 감사 +- 관련 경로: `apps/control-plane`, `apps/web`, `apps/edge`, `docs/architecture.md` +- 표준선(선택): Edge는 로컬 런타임 상태와 registry 소유권을 유지하고, Control Plane은 관찰/집계 계층으로 시작한다. +- 선행 작업: Control Plane과 Portal, 정책/이력/감사 +- 후속 작업: 없음 +- 확인 필요: observe-only 여부, fleet-wide 명령 범위, domain agent fleet 상태 포함 여부 diff --git a/agent-ops/roadmap/milestones/policy-history-audit.md b/agent-ops/roadmap/milestones/policy-history-audit.md index 77a9b59..2bad4d7 100644 --- a/agent-ops/roadmap/milestones/policy-history-audit.md +++ b/agent-ops/roadmap/milestones/policy-history-audit.md @@ -16,15 +16,10 @@ Control Plane과 Portal 운영 ## 구현 잠금 - 상태: 잠금 -- 이유: policy/history/audit 책임 경계를 정리하는 게이트 문서이며, 구현 가능한 세부 schema와 enforcement 위치가 아직 확정되지 않았다. -- 해제 조건: - - [ ] permission, policy, history, audit event 책임 경계가 문서화됨 - - [ ] terminal bridge, bootstrap, serving/routing 최적화와의 연결 지점이 구체화됨 - - [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함 -- 잠금 중 금지: - - 코드 구현 또는 `agent-task` 구현 계획 생성 - - DB schema, audit schema, policy package 구조를 추측해 확정 - - 모든 상태를 Control Plane 단일 저장소로 선확정 +- 결정 필요: 아래 체크리스트 + - [ ] terminal session과 bootstrap/enrollment의 audit 기록 수준과 보존 기간을 결정한다. + - [ ] policy enforcement를 Edge, Control Plane, Node 중 어디에 우선 둘지 결정한다. + - [ ] credential/target allowlist의 소유 주체와 운영 절차를 결정한다. ## 범위 @@ -56,6 +51,8 @@ Control Plane과 Portal 운영 ## 작업 컨텍스트 -- 관련 앱: `apps/edge`, `apps/node`, `apps/control-plane` -- 관련 패키지: `packages/auth`, `packages/jobs`, 향후 policy/audit package -- 선행 Milestone: 원격 터미널 브리지 POC, Agent Bootstrap과 OTO 등록, Control Plane과 Portal +- 관련 경로: `apps/edge`, `apps/node`, `apps/control-plane`, `packages/auth`, `packages/jobs` +- 표준선(선택): Edge는 로컬 실행 이력 원본을 유지하고, Control Plane은 필요한 범위에서 조회/집계한다. +- 선행 작업: 원격 터미널 브리지 POC, Agent Bootstrap과 OTO 등록, Control Plane과 Portal +- 후속 작업: Multi-Edge 운영 +- 확인 필요: audit retention, policy enforcement 위치, credential/allowlist 소유 주체 diff --git a/agent-ops/roadmap/milestones/remote-terminal-bridge-poc.md b/agent-ops/roadmap/milestones/remote-terminal-bridge-poc.md index ec3a662..6b5852e 100644 --- a/agent-ops/roadmap/milestones/remote-terminal-bridge-poc.md +++ b/agent-ops/roadmap/milestones/remote-terminal-bridge-poc.md @@ -16,15 +16,10 @@ Automation Runtime과 Bridge 확장 ## 구현 잠금 - 상태: 잠금 -- 이유: terminal session 책임 경계와 protocol/event 모델을 정리하는 게이트 문서이며, 구현 가능한 세부 설계가 아직 확정되지 않았다. -- 해제 조건: - - [ ] terminal session lifecycle, protocol/event, 보안 전제가 문서화됨 - - [ ] Control Plane/Portal/운영 CLI와 Edge/Node 책임 경계가 구체화됨 - - [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함 -- 잠금 중 금지: - - 코드 구현 또는 `agent-task` 구현 계획 생성 - - API/DB/package/file 구조를 추측해 확정 - - OpenAI-compatible API나 A2A payload에 terminal 제어 기능을 선확정 +- 결정 필요: 아래 체크리스트 + - [ ] POC에서 우선 지원할 terminal transport를 local shell만으로 둘지, SSH/WinRM/serial 후보 중 일부를 포함할지 결정한다. + - [ ] target allowlist, credential 주입, session audit의 최소 보안 기준을 결정한다. + - [ ] 운영 CLI, Portal, Control Plane 중 어느 입력 표면을 POC에 포함할지 결정한다. ## 범위 @@ -57,7 +52,8 @@ Automation Runtime과 Bridge 확장 ## 작업 컨텍스트 -- 관련 앱: `apps/edge`, `apps/node` -- 관련 문서: `docs/architecture.md`, `docs/deploy-dev.md` -- 선행 Milestone: Edge-Node 실행 스켈레톤, CLI Automation Runtime 안정화 -- 병렬 후보: Agent Bootstrap과 OTO 등록. 설치 가능한 대상은 bootstrap/enrollment 경로로, 설치가 어렵거나 일회성 유지보수 대상은 remote terminal bridge 경로로 구분한다. +- 관련 경로: `apps/edge`, `apps/node`, `docs/architecture.md`, `docs/deploy-dev.md` +- 표준선(선택): Control Plane/Portal/운영 CLI는 Edge에 terminal session을 요청하고, Edge가 Node terminal transport로 중계한다. OpenAI-compatible/A2A payload에 terminal 제어를 싣지 않는다. +- 선행 작업: Edge-Node 실행 스켈레톤, CLI Automation Runtime 안정화 +- 후속 작업: 정책, 이력, 감사; Control Plane과 Portal의 terminal session 운영 표면 +- 확인 필요: Agent Bootstrap과 OTO 등록과의 대상 구분. 설치 가능한 대상은 bootstrap/enrollment 경로로, 설치가 어렵거나 일회성 유지보수 대상은 remote terminal bridge 경로로 구분한다. diff --git a/agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md b/agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md index e92a20d..98780aa 100644 --- a/agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md +++ b/agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md @@ -2,8 +2,8 @@ ## 목표 -generic `iop-node`와 OTO 같은 specialized domain agent가 Edge와 proto-socket으로 직접 통신할 때 공유할 transport 기반과 분리할 protocol 경계를 정리한다. -현재 Edge-Node 등록, config 전달, run/event, command, heartbeat 흐름을 기준으로 specialized agent가 bootstrap보다 먼저 갖춰야 할 최소 연결 계약을 정의한다. +generic `iop-node`와 OTO 같은 specialized domain agent가 기존 Edge-Node proto-socket 흐름을 node-compatible peer로 재사용할 때의 iop Edge 쪽 계약을 정리한다. +OTO 쪽 Dart `proto_socket` 연결과 iop Edge 등록 smoke가 이미 시작된 상태를 기준으로, iop에서는 새 transport보다 agent kind, registry/config 경계, run/event/command 재사용 기준, reconnect 정책을 확정한다. ## 단계 @@ -11,34 +11,31 @@ Automation Runtime과 Bridge 확장 ## 상태 -계획 +진행 중 ## 구현 잠금 -- 상태: 잠금 -- 이유: specialized domain agent 연결 기반을 설계하는 게이트 문서이며, 기존 Edge-Node 메시지를 재사용할지 별도 specialized agent 메시지를 둘지 아직 확정되지 않았다. -- 해제 조건: - - [ ] Edge-Node `RegisterRequest/RegisterResponse`, `NodeConfigPayload`, `RunRequest/RunEvent`, `NodeCommandRequest/Response`, heartbeat 흐름 중 specialized agent가 공유할 범위가 문서화됨 - - [ ] OTO 같은 specialized domain agent를 Edge registry에서 generic Node와 어떻게 구분할지 결정 후보가 정리됨 - - [ ] 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함 -- 잠금 중 금지: - - 코드 구현 또는 `agent-task` 구현 계획 생성 - - proto schema, registry schema, API/package/file 구조를 추측해 확정 - - OTO 구현을 `apps/node` adapter로 흡수하는 방향 선확정 +- 상태: 해제 +- 결정 필요: 없음 ## 범위 -- 기존 Edge-Node proto-socket 흐름을 specialized agent 관점에서 분해한다. -- generic Node와 specialized domain agent가 공유할 transport, heartbeat, request-response 기반을 정의한다. -- OTO agent의 직접 outbound 연결을 받아들이기 위해 Edge가 구분해야 할 agent identity, capability, lifecycle 후보를 정리한다. -- OTO 쪽 Dart `proto_socket` 소비와 iop Go Edge transport 사이의 교차 검증 기준을 잡는다. +- 기존 Edge-Node proto-socket outbound TCP session, heartbeat, parser map, request-response 흐름을 specialized agent의 기본 연결 방식으로 재사용하는 기준을 정리한다. +- OTO agent를 `apps/node` adapter나 하위 프로세스로 흡수하지 않고, Edge에 직접 붙는 node-compatible specialized peer로 다룬다. +- `RegisterRequest(token)`은 우선 유지하고, token이 가리키는 Edge-side 등록 record에서 `generic-node`와 `oto-agent` 같은 agent kind를 구분하는 방향을 후보로 둔다. +- `RegisterResponse`의 config 전달 패턴은 재사용하되, 기존 `NodeConfigPayload`를 그대로 줄지, OTO 전용 config를 후속 메시지로 분리할지 판단 기준을 정리한다. +- `RunRequest/RunEvent`, `CancelRequest`, `NodeCommandRequest/Response`의 envelope 재사용 범위와 OTO 전용 build/deploy payload, artifact/log/progress 의미의 분리 기준을 잡는다. +- OTO Dart `proto_socket` consumer와 iop Go Edge transport 사이의 smoke 범위를 registration에서 run/command까지 확장할지 판단한다. ## 필수 기능 -- [ ] [node-flow-map] 기존 Edge-Node 등록, config, run/event, command, heartbeat 흐름이 specialized agent 관점에서 매핑되어 있다. +- [x] [node-flow-map] 기존 Edge-Node 등록, config, run/event, command, heartbeat 흐름이 specialized agent 관점에서 매핑되어 있다. - [ ] [agent-kind] Edge registry에서 generic Node와 specialized domain agent를 구분하는 기준 후보가 정리되어 있다. +- [ ] [registry-entry] connected entry가 agent kind, capability, lifecycle을 가질 수 있는지, 기존 `NodeEntry`/registry를 확장할지 별도 registry로 분리할지 기준이 정리되어 있다. +- [ ] [config-boundary] `RegisterResponse`의 `NodeConfigPayload`를 OTO에 어떻게 적용할지, 최소 config와 OTO 전용 config 분리 기준이 정리되어 있다. - [ ] [message-boundary] 기존 Node 메시지 재사용과 specialized agent 전용 메시지 분리 기준이 문서화되어 있다. -- [ ] [oto-interop] OTO Dart `proto_socket` consumer와 iop Go Edge transport 사이의 최소 호환 검증 기준이 정의되어 있다. +- [x] [oto-interop] OTO Dart `proto_socket` consumer가 iop Edge의 기존 `RegisterRequest/RegisterResponse` 등록 smoke 경로를 통과하는 근거가 확인되어 있다. +- [ ] [reconnect-policy] duplicate connection, reconnect, 기존 연결 대체/거부 정책이 specialized agent 관점에서 정리되어 있다. - [ ] [bootstrap-precondition] Agent Bootstrap과 OTO 등록이 의존할 transport/handshake 선행 조건이 명확하다. ## 완료 기준 @@ -46,6 +43,8 @@ Automation Runtime과 Bridge 확장 - [ ] Agent Bootstrap과 OTO 등록이 통신 기반을 추측하지 않고 후속 계약을 작성할 수 있다. - [ ] OTO의 proto-socket 통신 기반 Milestone과 같은 책임 경계를 참조한다. - [ ] generic Node, specialized domain agent, remote terminal bridge 경로가 제품/transport 수준에서 구분된다. +- [ ] OTO Dart client의 iop Edge registration smoke를 기준으로, 후속 run/command smoke를 어디까지 요구할지 결정되어 있다. +- [ ] specialized agent를 처음에는 node-compatible handshake로 받아들이되, proto field 추가가 필요한 시점과 조건이 정리되어 있다. - [ ] proto schema나 registry schema를 구현하기 전에 결정해야 할 후보와 확인 필요 항목이 정리되어 있다. ## 범위 제외 @@ -54,12 +53,12 @@ Automation Runtime과 Bridge 확장 - Edge registry/API/DB schema를 구현하지 않는다. - OTO agent를 `apps/node` adapter나 하위 프로세스로 흡수하지 않는다. - bootstrap command 발급, credential 발급, 장기 credential 재발급을 구현하지 않는다. +- registration 이후 build/deploy artifact, log stream, self-update 전체 메시지 세트를 확정하지 않는다. ## 작업 컨텍스트 -- 관련 iop 경로: `proto/iop/runtime.proto`, `apps/edge/internal/transport/server.go`, `apps/node/internal/transport/client.go`, `apps/node/internal/transport/session.go`, `apps/edge/internal/node/registry.go` -- 관련 OTO Milestone: `../oto/agent-ops/roadmap/milestones/oto-iop-proto-socket-foundation.md` -- 관련 proto-socket 프로젝트: `../proto-socket/` -- 선행 Milestone: Edge-Node 실행 스켈레톤, CLI Automation Runtime 안정화 -- 후속 Milestone: Agent Bootstrap과 OTO 등록 -- 확인 필요: 기존 `RegisterRequest/RegisterResponse`를 specialized agent에 확장 적용할지, agent kind를 가진 새 handshake를 둘지 결정해야 한다. +- 관련 경로: `proto/iop/runtime.proto`, `apps/edge/internal/transport/server.go`, `apps/node/internal/transport/client.go`, `apps/node/internal/transport/session.go`, `apps/edge/internal/node/registry.go`, `../oto/agent-ops/roadmap/milestones/oto-iop-proto-socket-foundation.md`, `../oto/test/oto_iop_connection_smoke_test.dart`, `../proto-socket/` +- 표준선(선택): 기존 Edge-Node proto-socket transport와 `RegisterRequest/RegisterResponse`를 우선 재사용하고, agent kind는 Edge-side registration record에서 판별한다. +- 선행 작업: Edge-Node 실행 스켈레톤, CLI Automation Runtime 안정화 +- 후속 작업: Agent Bootstrap과 OTO 등록 +- 확인 필요: proto field 추가가 필요한 시점, OTO config 전달 방식, run/event payload 의미, reconnect/duplicate 정책은 기술 검토로 확정한다.