전체 문서
이 페이지 목차
모듈 지도
상위 경로: Norma 시스템 지도 → 모듈 지도
Mermaid 원문
flowchart TD A[agentcore] --> H[harness] H --> L[llm] H --> T[tool] H --> P[permission] H --> K[hook contract] A --> C[compaction / transcript / memory] A --> X[plan / skill] X --> T M[mcp] --> T G[subagent / coordinator] --> H N[noaadapter] --> A N --> O[noa core] click A "#agentcore-harness" "agentcore와 harness" click L "#llm" "llm" click T "#tool-permission-hook" "tool, permission, hook" click C "#context-packages" "context packages" click X "#extension-packages" "extensions" click G "#coordination-packages" "coordination" click N "#noa-stack" "Noa stack"
agentcore와 harness
agentcore와 harness · 관계
이 대상이 사용하는 구현·계약·의존 · 6개
- 의존 / 실행 · llm · model request와 normalized message/event를 사용 · harness-query
- 의존 / 실행 · tool, permission, hook · tool lookup, permission과 result contract를 실행 · harness-tools
- 계약 사용 · Public surface 분모 · · api-agentcore-agentcore · api-harness-event · api-harness-query
- 계약 사용 · agentcore · agentcore와 harness의 exported 선언·signature 참조 · api-agentcore-agentcore · api-harness-event · api-harness-query
- 계약 사용 · agentcore.Options — 52 fields · agentcore.Options, PlanOptions와 MemoryOptions를 session 구성에서 소비 · agentcore-newsession
- 계약 사용 · 입력과 설정 · demo CLI가 agentcore session runtime과 event loop를 조립 · cli-main
이 대상을 사용하는 기능·모듈·계약 · 6개
- 구현 담당 · Prompt 생명주기 · · agentcore-prompt · harness-query
- 의존 / 설정 · noa와 noaadapter · agentcore Options에 ContextView와 Compress tool을 설치 · noa-enable
- 구현 담당 · Stream과 tool 반복 · · harness-streaming
- 구현 담당 · Tool scheduler · safe/exclusive queue와 ordered result scheduler 구현 · harness-streaming
- 구현 담당 · Loop branch, continue, stop · loop continuation, terminal event와 settlement 분기 구현 · harness-query · harness-event
- 구현 담당 · 완료의 실제 의미 · terminal event가 Prompt completion을 뜻하는 경계 구현 · harness-event
| 항목 | agentcore |
harness |
|---|---|---|
| 책임 | host options를 stateful Session으로 조립 |
Prompt 한 번의 state machine과 event stream |
| 진입점 | NewSession, Session.Prompt, Resume, Close, Run |
Query, QueryInput, QueryDeps, Event, Terminal |
| 소유 상태 | messages, usage, session ID, recorder, task manager, unlock/controller | 해당 Prompt의 phase, turn, request view, running tool calls |
| 입력 변경 | memory/hook context와 reminder 조립 | compaction/view, recovery, settlement message |
| 호출자 책임 | 같은 Session의 Prompt 직렬화, terminal 소비, Close | event iterator 완전 소비, dependency와 callback thread safety |
agentcore.NewSession은 nil Tools에만 defaults를 적용하고 optional package의 tool을 append한다. Session.Prompt가 QueryInput을 만들고 KindResult를 받아야 최종 messages와 usage를 Session에 commit한다. harness.Query는 provider 호출, streamed block 누적, scheduler, context recovery와 종료 reason을 소유한다. Session 구성 Prompt harness 근거
llm
llm · 관계
이 대상이 사용하는 구현·계약·의존 · 4개
- 계약 사용 · Public surface 분모 · · api-llm-accumulate · api-llm-boundary · api-llm-provider · api-llm-ratelimit · api-llm-skillmsg · api-llm-todomsg · api-llm-types
- 계약 사용 · agentcore · llm package의 exported 선언·signature 참조 · api-llm-accumulate · api-llm-boundary · api-llm-provider · api-llm-ratelimit · api-llm-skillmsg · api-llm-todomsg · api-llm-types
- 계약 사용 · agentcore.Options — 52 fields · llm.Config로 built-in provider와 transport를 구성 · llm-provider
- 계약 사용 · Model HTTP · llm adapters가 세 wire protocol operation을 소비 · llm-anthropic · llm-openai-chat · llm-openai-responses
이 대상을 사용하는 기능·모듈·계약 · 3개
- 구현 담당 · Provider, extension과 coordination · · llm-provider
- 의존 / 실행 · agentcore와 harness · model request와 normalized message/event를 사용 · harness-query
- 구현 담당 · Provider retry · request establishment retry와 backoff 구현 · llm-retry
llm.Provider는 streaming Stream과 non-streaming Complete를 제공한다. 내부 Message/ContentBlock은 text, thinking, tool use/result를 표현하며 built-in adapter는 Anthropic Messages, OpenAI Chat Completions, OpenAI Responses wire format을 이 모델로 변환한다. boundary.go는 compact boundary 뒤 history 선택과 tool-use/result pairing을 정리하고 retry/rate-limit helper는 요청 establishment 앞에 놓인다. provider 근거 boundary 근거 retry 근거
제공 계약과 소비 기능은 provider 계약, 실제 request 반복은 provider 기능에 있다.
tool, permission, hook
tool, permission, hook · 관계
이 대상이 사용하는 구현·계약·의존 · 6개
- 계약 사용 · Public surface 분모 · · api-tool-ask · api-tool-bash · api-tool-deferred · api-tool-files · api-tool-helpers · api-tool-ls · api-tool-monitor · api-tool-multiedit · api-tool-registry · api-tool-ripgrep · api-tool-schema · api-tool-search · api-tool-shell-session · api-tool-shell-tools · api-tool-sleep · api-tool-task · api-tool-tasklist · api-tool-taskoutput · api-tool-taskstop · api-tool-todo · api-tool-tool · api-tool-webfetch · api-tool-websearch · api-permission-permission · api-hook-hook
- 계약 사용 · tool · tool, permission, hook package의 exported 선언·signature 참조 · api-tool-ask · api-tool-bash · api-tool-deferred · api-tool-files · api-tool-helpers · api-tool-ls · api-tool-monitor · api-tool-multiedit · api-tool-registry · api-tool-ripgrep · api-tool-schema · api-tool-search · api-tool-shell-session · api-tool-shell-tools · api-tool-sleep · api-tool-task · api-tool-tasklist · api-tool-taskoutput · api-tool-taskstop · api-tool-todo · api-tool-tool · api-tool-webfetch · api-tool-websearch · api-permission-permission · api-hook-hook
- 계약 사용 · agentcore.Options — 52 fields · WebFetchConfig와 WebSearchConfig로 outbound tool client를 구성 · webfetch-config · websearch-config
- 계약 사용 · 정적 catalog 30개 · tool module이 제공하는 정적 constructor catalog와 metadata 계약 · tool-defaults · tool-optional
- 계약 사용 · Model HTTP · network tools와 Grep bootstrap이 외부 HTTP/npm operation을 소비 · webfetch-runner · websearch-operations · ripgrep-bootstrap
- 의존 / 실행 · Go module graph — 외부 entry 9개 · PTY, terminal emulation과 HTML parsing direct modules · dep-pty · dep-vt10x · dep-html
이 대상을 사용하는 기능·모듈·계약 · 7개
- 구현 담당 · Direct tool call의 실행 순서 · · harness-tools · permission
- 의존 / 실행 · agentcore와 harness · tool lookup, permission과 result contract를 실행 · harness-tools
- 의존 / 실행 · mcp, skill, plan · extension을 CoreTool과 registry에 연결 · skills
- 구현 담당 · 기본·선택 도구의 capability 경계 · · tool-defaults
- 구현 담당 · Deferred tool의 노출과 실행 · · deferred-tools
- 구현 담당 · Hook 경계 · · hooks
- 구현 담당 · Permission 판정 · deny/mode/allow/self/callback 우선순위 구현 · permission
tool.CoreTool이 capability metadata와 call을 제공하고 Registry가 name lookup/schema 노출을 맡는다. permission.Evaluate는 deny-priority 정책과 live mode를 적용한다. hook.Registry는 lifecycle callback을 순차 호출하지만 callback timeout, panic recovery와 자체 locking은 제공하지 않는다. harness가 세 package를 direct tool pipeline으로 결합한다. tool 근거 permission 근거 hook 근거
tool package 안에는 file/search/Bash, background task, opt-in PTY, web, deferred dispatcher, Todo와 AskUser 구현도 함께 있다. 같은 package라는 사실이 같은 보안 성질을 뜻하지 않으므로 기본 도구 경계에서 capability별로 본다.
compaction, transcript, memory
compaction, transcript, memory · 관계
이 대상이 사용하는 구현·계약·의존 · 3개
- 계약 사용 · Public surface 분모 · · api-compaction-compaction · api-compaction-summarizer · api-transcript-context · api-transcript-transcript · api-memory-memory · api-memory-relevant · api-memory-tools
- 계약 사용 · compaction · compaction, transcript, memory package의 exported 선언·signature 참조 · api-compaction-compaction · api-compaction-summarizer · api-transcript-context · api-transcript-transcript · api-memory-memory · api-memory-relevant · api-memory-tools
- 계약 사용 · Transcript JSONL · transcript JSONL과 memory Markdown/index 파일 계약을 소비 · transcript-record · memory-schema
이 대상을 사용하는 기능·모듈·계약 · 6개
- 구현 담당 · Context, transcript와 resume · Session.Prompt가 context manager와 durable conversation 경계를 연결 · agentcore-prompt
- 구현 담당 · Built-in compaction · · compaction
- 구현 담당 · Transcript 기록 계약 · · transcript-record
- 구현 담당 · Cold resume가 하는 일과 하지 않는 일 · · agentcore-resume
- 구현 담당 · 장기 memory · · memory-schema · memory-relevance
- 구현 담당 · Provider-visible context 선택 · provider-visible history selection과 compaction view 구현 · compaction · llm-boundary
| package | 내부 흐름 | 지속성·실패 경계 |
|---|---|---|
compaction |
threshold → micro compact → provider summary → boundary message | in-memory history를 바꾸며 provider summary 실패/circuit breaker가 있음 |
transcript |
append JSONL record → reconstruct messages/usage | append-only 파일, fsync/lock/corrupt-tail repair 없음 |
memory |
Markdown/frontmatter scan·save → MEMORY.md index → keyword relevance |
file/index가 단일 transaction이 아니며 ASCII keyword 방식 |
세 package는 모두 context와 관련 있지만 권위 상태가 다르다. 자세한 관계는 상태 소유권에 있다. compaction 근거 transcript 근거 memory 근거
mcp, skill, plan
mcp, skill, plan · 관계
이 대상이 사용하는 구현·계약·의존 · 5개
- 의존 / 실행 · tool, permission, hook · extension을 CoreTool과 registry에 연결 · skills
- 계약 사용 · Public surface 분모 · · api-mcp-mcp · api-mcp-stdio · api-skill-skill · api-plan-plan
- 계약 사용 · mcp · mcp, skill, plan package의 exported 선언·signature 참조 · api-mcp-mcp · api-mcp-stdio · api-skill-skill · api-plan-plan
- 계약 사용 · Model HTTP · MCP client가 stdio JSON-RPC handshake, list와 call을 소비 · mcp-handshake · mcp-tools · mcp-call · mcp-stdio
- 의존 / 실행 · Go module graph — 외부 entry 9개 · skill frontmatter parsing direct module · dep-yaml
이 대상을 사용하는 기능·모듈·계약 · 3개
전체 관계 8개 · 종류 선택·관계도mcp는 in-process tools와 stdio JSON-RPC client를CoreTool로 감싼다. dynamic refresh와 모든 content 종류를 보존하지 않는다.skill은SKILL.md를 읽고 선택한 instruction을 independent user message로 주입하며 optional MCP names를 unlock한다.plan은 permission mode를 보유하고EnterPlanMode/ExitPlanMode가 read-only exploration과 승인 후 target mode 전이를 만든다.
세 모듈은 확장 기능에서 tool registry와 permission을 소비한다. MCP 근거 skill 근거 plan 근거
subagent, coordinator
subagent, coordinator · 관계
이 대상이 사용하는 구현·계약·의존 · 3개
- 계약 사용 · Public surface 분모 · · api-subagent-subagent · api-coordinator-coordinator
- 계약 사용 · mcp · subagent와 coordinator package의 exported 선언·signature 참조 · api-subagent-subagent · api-coordinator-coordinator
- 계약 사용 · agentcore.Options — 52 fields · coordinator.Config와 subagent.Config를 실행 경계에서 소비 · coordinator · subagent
이 대상을 사용하는 기능·모듈·계약 · 1개
- 구현 담당 · Subagent 격리의 범위 · · subagent · coordinator
subagent는 Agent tool call을 새 child harness.Query로 바꾸고 conversation과 optional sidechain transcript를 분리한다. coordinator는 이 tool을 조립하는 LLM-driven 경로와 goroutine/semaphore 기반 RunParallel 경로를 제공한다. 공유 provider/tool/filesystem과 누락된 parent option 상속 때문에 security isolation primitive는 아니다. subagent 근거 coordinator 근거
noa와 noaadapter
noa와 noaadapter · 관계
이 대상이 사용하는 구현·계약·의존 · 5개
- 의존 / 설정 · agentcore와 harness · agentcore Options에 ContextView와 Compress tool을 설치 · noa-enable
- 계약 사용 · Public surface 분모 · · api-noa-archive · api-noa-boundaries · api-noa-compress · api-noa-config · api-noa-const · api-noa-nudge · api-noa-nudge-types · api-noa-nudgetext · api-noa-panel · api-noa-parseinput · api-noa-pipeline · api-noa-processturn · api-noa-prompts-rules · api-noa-prompts-system · api-noa-protected · api-noa-prune · api-noa-rebuild · api-noa-recommend · api-noa-refs · api-noa-schema · api-noa-state · api-noa-tier · api-noa-tokenize · api-noa-toolpairs · api-noa-truncate · api-noa-turnintegrity · api-noa-types · api-noaadapter-archive · api-noaadapter-compactor · api-noaadapter-deadrange · api-noaadapter-identity · api-noaadapter-inherit · api-noaadapter-materialize · api-noaadapter-noa · api-noaadapter-overflow · api-noaadapter-project · api-noaadapter-session · api-noaadapter-state-store · api-noaadapter-tags
- 계약 사용 · compaction · noa와 noaadapter package의 exported 선언·signature 참조 · api-noa-archive · api-noa-boundaries · api-noa-compress · api-noa-config · api-noa-const · api-noa-nudge · api-noa-nudge-types · api-noa-nudgetext · api-noa-panel · api-noa-parseinput · api-noa-pipeline · api-noa-processturn · api-noa-prompts-rules · api-noa-prompts-system · api-noa-protected · api-noa-prune · api-noa-rebuild · api-noa-recommend · api-noa-refs · api-noa-schema · api-noa-state · api-noa-tier · api-noa-tokenize · api-noa-toolpairs · api-noa-truncate · api-noa-turnintegrity · api-noa-types · api-noaadapter-archive · api-noaadapter-compactor · api-noaadapter-deadrange · api-noaadapter-identity · api-noaadapter-inherit · api-noaadapter-materialize · api-noaadapter-noa · api-noaadapter-overflow · api-noaadapter-project · api-noaadapter-session · api-noaadapter-state-store · api-noaadapter-tags
- 계약 사용 · agentcore.Options — 52 fields · noa.Config와 noaadapter.Options를 projection/session adapter가 소비 · noa-config · noa-adapter
- 계약 사용 · Transcript JSONL · Noa state v1과 tier archive 파일 계약을 소비 · noa-state-schema · noa-archive
이 대상을 사용하는 기능·모듈·계약 · 2개
- 구현 담당 · Noa context manager · · noa-enable
- 구현 담당 · Noa projection과 compression 판정 · projection, protection, truncation과 compression transaction 구현 · noa-pipeline · noa-compress
noa는 host type과 I/O를 모르는 pure compression core다. message refs, range/tier 판정, pruning, nudge와 compression state를 계산한다. noaadapter는 llm.Message projection, archive/state file, Compress tool과 agentcore.Options wiring을 제공한다. Noa 상세에서 두 층의 transaction과 model-visible view를 분리한다. core 근거 adapter 근거
package 전수 색인
| package/실행 단위 | 주 책임 | 기능 소비자 |
|---|---|---|
agentcore, harness |
session 조립과 loop | 모든 embedding host |
llm |
provider-neutral model과 wire adapters | harness, compaction, host |
tool, permission, hook |
capability, 정책, lifecycle | harness, optional modules |
compaction, transcript, memory |
context·기록·장기 memory | agentcore |
mcp, skill, plan |
extension과 mode | agentcore/host |
subagent, coordinator |
child execution과 fan-out | host/coordinator agent |
noa, noaadapter |
advanced context projection | opt-in host/agentcore |
cmd/agentcore |
demo CLI | 사람 operator |
examples/* |
wiring examples | SDK adopter; production policy 아님 |
저장소에는 물리 DB, migration, server route, queue/cron/worker registration이 없다. Provider의 외부 HTTP 호출과 MCP JSON-RPC는 소비 계약이며 Norma가 제공하는 서비스 API로 분류하지 않는다.