전체 문서
이 페이지 목차
- agentcore.Options — 52 fields
- agentcore.PlanOptions — 3 fields
- agentcore.MemoryOptions — 4 fields
- llm.Config — 15 exported fields
- coordinator.Config — 10 fields
- subagent.Config — 7 fields
- noa.Config — 10 top-level fields
- noaadapter.Options — 7 fields
- tool.WebFetchConfig — 3 fields
- tool.WebSearchConfig — 9 fields
- 자주 틀리는 우선순위
설정 필드 참조
이 색인은 public configuration struct의 exported field 전부를 production source에서 계수해 설명한다. llm.Config의 비공개 limiter는 16번째 내부 field지만 public 설정 분모 15개에서 제외한다. “default”는 zero value가 그대로 쓰이는지, constructor가 보정하는지를 구분한다. noa.Config를 직접 넘기면 DefaultConfig와 field별 merge하지 않는다.
agentcore.Options — 52 fields
agentcore.Options — 52 fields · 관계
이 대상을 사용하는 기능·모듈·계약 · 5개
- 계약 사용 · agentcore와 harness · agentcore.Options, PlanOptions와 MemoryOptions를 session 구성에서 소비 · agentcore-newsession
- 계약 사용 · llm · llm.Config로 built-in provider와 transport를 구성 · llm-provider
- 계약 사용 · tool, permission, hook · WebFetchConfig와 WebSearchConfig로 outbound tool client를 구성 · webfetch-config · websearch-config
- 계약 사용 · subagent, coordinator · coordinator.Config와 subagent.Config를 실행 경계에서 소비 · coordinator · subagent
- 계약 사용 · noa와 noaadapter · noa.Config와 noaadapter.Options를 projection/session adapter가 소비 · noa-config · noa-adapter
| field | type | default | override/consumer | failure semantics |
|---|---|---|---|---|
Provider |
llm.Provider |
없음 | 그대로 harness에 전달 | nil/오동작 provider는 첫 model call에서 실패 |
SystemPrompt |
[]string |
빈 목록 | 정적 system prefix | host policy가 없으면 SDK가 보충하지 않음 |
AppendSystemPrompt |
[]string |
빈 목록 | SystemPrompt 뒤에 결합 | untrusted text를 넣으면 system 권한으로 전송 |
DynamicBoundary |
int |
0: cache boundary 없음 | provider cacheable prefix 경계 | 범위가 끝 이상이면 Anthropic은 전체를 cacheable로 처리 |
Tools |
[]tool.CoreTool |
nil: DefaultTools 9개; 빈 slice: 0개 | 명시 slice가 기본값 대체 | 중복 name은 registry에서 마지막 항목이 대체 |
DeferredTools |
[]string |
빈 목록: 비활성 | schema 노출에서 이름을 숨기고 access tool 2개 추가 | registry 실행 차단이 아니며 잘못된 이름은 발견 불가 |
UnlockSet |
*tool.UnlockSet |
nil+deferred: 전부 unlocked로 seed | host set이 호출 gate 대체 | resume으로 자동 복원되지 않음 |
CanUseTool |
permission.CanUseTool |
nil | ask 단계 host callback | 승인이 필요하면 nil은 deny |
AllowedTools |
[]string |
없음 | permission name rule allow | argument/resource scope는 평가하지 않음 |
DisallowedTools |
[]string |
없음 | permission name rule deny; allow보다 우선 | name-only match |
PermissionMode |
permission.Mode |
빈 값→default | session mode; plan controller가 동적으로 대체 가능 | unknown/empty semantics를 host가 명시하지 않으면 의도 혼동 |
Hooks |
harness.HookRunner |
nil: 비활성 | lifecycle/tool/stop callback | timeout·panic recovery 없음 |
Compaction |
*compaction.Config |
nil: 비활성 | built-in compactor 생성 | Compactor도 있으면 무시되고 OnWarn |
Compactor |
harness.Compactor |
nil | host context manager; Compaction보다 우선 | ContextView 구현은 API message array 전체 책임 |
OnWarn |
func(string) |
nil: 경고 폐기 | NewSession/adapter 비치명 진단 | nil이면 misconfiguration 관측 불가 |
Plan |
*PlanOptions |
nil: 비활성 | plan tools와 mode controller 설치 | target/approver 오류는 실행 중 드러남 |
Memory |
*MemoryOptions |
nil 또는 Store nil: 비활성 | memory tools·index·prompt injection | file 오류/낮은 relevance는 tool 결과 또는 누락 |
Skills |
*skill.Registry |
nil: 비활성 | Skill tool 설치 | skill text는 user guidance로 주입 |
EnableWebFetch |
bool |
false | true면 WebFetch 설치 | URL scope는 SDK가 제한하지 않음 |
WebFetchProxy |
string |
빈 값 + TLS zero: default transport proxy env; TLS override면 direct | WebFetchConfig.Proxy로 전달 | proxy 오류 fallback도 env를 다시 탈 수 있어 direct 보장 없음 |
WebFetchCACert |
string |
빈 값: system roots | InsecureTLS=false일 때 custom CA 추가 | read/parse 실패를 조용히 무시해 system roots로 남을 수 있음 |
WebFetchInsecureTLS |
bool |
false | true면 CA보다 우선해 verify skip | TLS 진위 보장 상실 |
EnableWebSearch |
bool |
false | true면 backend tool 구성 | 구성 오류 시 NewSession이 오류/경고 없이 tool을 생략 |
WebSearchBackend |
string |
빈 값→ddgs | backend 선택 | 알 수 없는 값은 tool 생략 |
BraveSearchAPIKey |
string |
없음 | brave-free일 때만 사용 | 필수 key 없음→tool 생략 |
TavilySearchAPIKey |
string |
없음 | tavily일 때만 사용 | 필수 key 없음→tool 생략 |
DeepSeekSearchBaseURL |
string |
없음 | deepseek Anthropic-format root | 없음/형식 불일치→생략 또는 HTTP 실패 |
DeepSeekSearchAPIKey |
string |
없음 | deepseek x-api-key | 없음→tool 생략 |
DeepSeekSearchModel |
string |
없음 | deepseek request model | 없음→tool 생략 |
WebSearchProxy |
string |
빈 값 + TLS zero: default transport proxy env; TLS override면 direct | search HTTP client proxy | scope/recording 강제점이 아님 |
WebSearchCACert |
string |
빈 값: system roots | search custom CA | invalid file/PEM은 조용히 무시 |
WebSearchInsecureTLS |
bool |
false | true면 verify skip | TLS 진위 보장 상실 |
Todos |
*tool.TodoStore |
nil: 비활성 | TodoWrite 설치·reminder source | in-memory라 process 재시작 시 소실 |
AskUser |
tool.AskUserFunc |
nil: 비활성 | AskUserQuestion 설치 | callback은 동기 block; timeout 없음 |
SystemReminderFunc |
func() string |
nil: 날짜만 | 매 Prompt마다 날짜 뒤 extra 생성 | callback 실패 계약 없음 |
MaxTurns |
int |
0: 제한 없음 | harness main turn cap | 업무 완료가 아니라 max_turns terminal |
MaxDuration |
time.Duration |
0: 제한 없음 | turn 경계 budget·tool context deadline | model stream hard timeout이 아님 |
Settlement |
*harness.Settlement |
nil/빈 Prompt: 비활성 | budget 종료 뒤 bounded wrap-up | 원래 terminal reason은 유지 |
MaxTokens |
int |
0: provider별 기본/생략 | model output cap | Anthropic은 8192; 다른 format 의미가 다름 |
Temperature |
*float64 |
nil: 생략 | provider request | gateway가 지원하지 않으면 request 실패 |
MaxConcurrency |
int |
<=0→10 | concurrency-safe tool semaphore | tool metadata가 틀리면 shared-state race |
WorkingDir |
string |
빈 값 그대로 | file/process tool base | sandbox가 아니며 absolute/.. 차단 없음 |
ToolOutputDir |
string |
빈 값: spill 안 함 | oversize result full-text spill | evidence store/atomic ledger가 아님 |
MaxToolOutputChars |
int |
<=0→30000 | model에 보낼 tool output head | 초과분은 spill 없으면 손실 |
BashEnv |
[]string |
빈 값: inherited env | Bash/background child env override | secret와 proxy가 child로 전파 |
Transcript |
*transcript.Store |
nil: memory-only | JSONL writer·Resume prerequisite | append 오류는 Writer.Err에 남고 terminal로 자동 승격 안 됨 |
SessionID |
string |
빈 값→random id | transcript/task path identity | host 제공 값의 path 안전성 검증 없음 |
TokenBudget |
int |
<=0: 비활성 | 약 90%까지 continuation nudge | 비용 상한/업무 성공 보장이 아님 |
EscalateMaxTokens |
bool |
false | max_tokens 때 64k 재시도 우선 | provider cap/비용 증가 가능 |
DisableBackgroundTasks |
bool |
false | true면 자동 task tools/manager 미설치 | global env disable도 별도 우선 |
NonStreaming |
bool |
false: streaming | true면 Provider.Complete | event는 조립 뒤 한꺼번에 전달 |
Deps |
harness.QueryDeps |
zero: production defaults | model/tool/time side-effect boundary 대체 | 부분 override는 withDefaults가 빈 항목 보충 |
agentcore.PlanOptions — 3 fields
| field | type | default | override/consumer | failure semantics |
|---|---|---|---|---|
Approver |
plan.Approver |
nil: 자동 승인 | ExitPlanMode 승인 callback | 동기 callback; 거부 feedback만 tool result |
StartInPlanMode |
bool |
false | true면 초기 mode=plan | mutating tools가 deny |
TargetMode |
permission.Mode |
빈 값 → acceptEdits |
승인 뒤 controller mode | 빈 값도 파일 편집을 자동 허용하므로 더 좁은 target이 필요하면 명시해야 함 |
agentcore.MemoryOptions — 4 fields
| field | type | default | override/consumer | failure semantics |
|---|---|---|---|---|
Store |
*memory.Store |
nil: memory 기능 미설치 | tool/index/injection 소유자 | directory I/O 오류 |
AutoInject |
bool |
false | Prompt마다 Relevant 결과 선행 user text로 주입 | relevance는 단순 token match |
MaxInject |
int |
<=0→3 | auto-inject 개수 | 큰 값은 context 증가 |
IncludeIndexInPrompt |
bool |
false | system segments에 MEMORY.md index 추가 | index가 stale/누락일 수 있음 |
llm.Config — 15 exported fields
| field | type | default | override/consumer | failure semantics |
|---|---|---|---|---|
Format |
llm.Format |
없음 | anthropic/openai/openai-responses adapter 선택 | 알 수 없는 값은 NewProvider error |
BaseURL |
string |
format env→공식 endpoint | 명시 값이 env/default보다 우선 | path suffix가 예상과 다르면 잘못된 endpoint |
APIKey |
string |
format env | 명시 값이 env보다 우선 | 빈 값도 construction 성공, HTTP auth 실패 |
Model |
string |
없음 | request model | 빈/unsupported model은 HTTP 실패 |
APIVersion |
string |
Anthropic 2023-06-01 | Anthropic header | 다른 format은 무시 |
HTTPClient |
*http.Client |
nil→built-in client | 설정 시 Proxy 포함 built-in transport 전체 대체 | nil transport timeout은 host 책임 |
Proxy |
string |
빈 값→HTTP_PROXY/HTTPS_PROXY/NO_PROXY 또는 lowercase alias |
HTTPClient가 nil일 때 built-in transport만 사용 | CGI REQUEST_METHOD 환경의 HTTP proxy 거부; scheme 누락/unsupported는 NewProvider error |
MaxRetries |
int |
0→3; 음수→0 | request establishment retry | mid-stream drop은 retry 안 함 |
RetryInterval |
time.Duration |
0→0.5/1/2s… max 8s | 양수는 fixed interval | context 취소로 중단 |
EmptyResponseRetries |
int |
0→2; 음수→0 | OpenAI Chat 정상 empty response 전체 재요청 | prompt 비용 재발생; 다른 format 무관 |
EmptyResponseInterval |
time.Duration |
0→exponential | empty-response retry wait | 다른 format 무관 |
RateLimit |
*llm.RateLimit |
nil: 비활성 | provider instance 공유 request gate | retry는 추가 count 안 됨; 분산/global limit 아님 |
ThinkingType |
string |
빈 값: omitted | request/per-request override가 우선 | provider-specific invalid value는 HTTP 실패 |
ReasoningEffort |
string |
빈 값: omitted | Anthropic output_config/OpenAI reasoning field | gateway 지원 여부에 따라 실패 |
MaxTokensField |
string |
빈 값→max_tokens | OpenAI Chat에서 completion variant opt-in | Anthropic/Responses는 무시 |
coordinator.Config — 10 fields
| field | type | default | override/consumer | failure semantics |
|---|---|---|---|---|
Provider |
llm.Provider |
없음 | 모든 worker | nil은 model call 실패 |
WorkerTools |
*tool.Registry |
nil | child parent registry | nil이면 worker tools 0개 |
WorkerPrompt |
[]string |
빈 값→DefaultWorkerPrompt | worker system | host policy는 별도 |
PermissionMode |
permission.Mode |
빈 값→acceptEdits | worker mode | shared working dir 부작용 가능 |
WorkingDir |
string |
빈 값 | RunParallel child directory | sandbox 아님 |
MaxTurns |
int |
0: 제한 없음 | 각 worker Definition | 무제한 loop 가능 |
MaxDepth |
int |
<=0→subagent 3 | child recursion | depth 초과 tool error |
MaxParallel |
int |
<=0→4 | RunParallel semaphore | shared tools/filesystem race |
CanUseTool |
permission.CanUseTool |
nil | worker approval | ask action deny |
Hooks |
harness.HookRunner |
nil | worker hooks | concurrent callback 안전성 host 책임 |
subagent.Config — 7 fields
| field | type | default | override/consumer | failure semantics |
|---|---|---|---|---|
Provider |
llm.Provider |
없음 | child model | nil 실패 |
ParentTools |
*tool.Registry |
nil | Definition.Tools로 filter | nil→빈 registry |
Agents |
map[string]Definition |
nil | agent_type catalog | unknown type tool error |
MaxDepth |
int |
<=0→3 | context depth guard | 초과 tool error |
CanUseTool |
permission.CanUseTool |
nil | child permission | ask action deny |
Hooks |
harness.HookRunner |
nil | SubagentStart와 child hooks | callback isolation 없음 |
Transcript |
*transcript.Store |
nil | sidechain writer | parent session id 없으면 새 id; append 오류 별도 |
noa.Config — 10 top-level fields
| field | type | default | override/consumer | failure semantics |
|---|---|---|---|---|
ModelContextLimit |
int |
DefaultConfig 인자; adapter 최종 <=0→200000 | pressure 비율 기준 | 실제 model window 불일치 시 잘못된 압축 |
Tiers |
noa.TierConfig |
DefaultConfig: enabled,max=3,triggers=5/10 | multi-tier consolidation | partial Config는 default merge 안 됨; validation은 warning |
Nudge |
noa.NudgeConfig |
DefaultConfig: .75/.45/.95, growth 50k 등 | nudge cadence/pressure | 잘못된 비율은 warning 후 계속 |
Truncate |
noa.TruncateConfig |
threshold .95 | mechanical last resort | 범위 밖은 warning 후 계속 |
Compress |
noa.CompressConfig |
range 5000 chars, summary 50..20000 | Compress input validation | min>=max는 warning 후 계속 |
ProtectedTools |
[]string |
없음; Compress는 별도 always-protected | pattern-based exclusion | pattern 과포함/누락 |
IsToolProtected |
func(string) bool |
nil | host protection predicate | callback panic recovery 없음 |
PreserveRecentMessages |
int |
5 | tail soft zone | partial Config zero면 보존 감소 |
PreserveRecentTokens |
int |
5000 | tail soft token zone | estimator 오차 |
MaxCompressAttempts |
int |
3 | nudge suppression threshold | <1 warning 후 계속 |
noaadapter.Options — 7 fields
| field | type | default | override/consumer | failure semantics |
|---|---|---|---|---|
ArchiveBaseDir |
string |
필수 | session archive/state root | 빈 값→ErrNoArchiveDir |
SessionID |
string |
빈 값 허용 | base dir 아래 subdir | 빈/unsafe id collision/path risk |
Config |
*noa.Config |
nil→DefaultConfig(ModelContextLimit) | non-nil은 전체 대체, merge 아님 | partial config zero values 유지 |
ModelContextLimit |
int |
Config nil일 때 사용; 최종 <=0→200000 | default config sizing | 실제 model과 불일치 |
ParentSessionIDs |
[]string |
없음 | 자기 block 없을 때 최근 ancestor state 상속 | 최대 깊이/누락 시 fresh |
OnWarn |
func(string) |
nil: warning 폐기 | config/state/inheritance 진단 | corrupt state fallback을 놓침 |
Now |
func() time.Time |
nil→time.Now | archive/state timestamps | test/host clock 품질 |
tool.WebFetchConfig — 3 fields
| field | type | default | override/consumer | failure semantics |
|---|---|---|---|---|
Proxy |
string |
빈 값 + TLS zero: default transport proxy env; TLS override면 direct | explicit http(s) proxy | invalid URL은 조용히 proxy 없이 동작 가능 |
CACert |
string |
빈 값: system roots | InsecureTLS=false일 때 pool 추가 | read/PEM 실패 조용히 무시 |
InsecureTLS |
bool |
false | true면 verify skip, CACert 무시 | TLS 진위 상실 |
tool.WebSearchConfig — 9 fields
| field | type | default | override/consumer | failure semantics |
|---|---|---|---|---|
Backend |
string |
빈 값→ddgs | provider selector | unknown→constructor error |
BraveAPIKey |
string |
없음 | brave-free auth | 없음→error |
TavilyAPIKey |
string |
없음 | tavily body auth | 없음→error |
DeepSeekBaseURL |
string |
없음 | Anthropic-format /v1/messages root | 없음→error; wrong profile HTTP 실패 |
DeepSeekAPIKey |
string |
없음 | x-api-key | 없음→error |
DeepSeekModel |
string |
없음 | model id | 없음→error |
Proxy |
string |
빈 값 + TLS zero: default transport proxy env; TLS override면 direct | backend explicit HTTP transport | recording/scope gate 아님 |
CACert |
string |
빈 값: system roots | custom trust | invalid 값 조용히 무시 |
InsecureTLS |
bool |
false | verify skip | TLS 진위 상실 |
자주 틀리는 우선순위
Compactor가 있으면Compaction은 무시되고OnWarn으로만 알린다.- custom
HTTPClient는llm.Config.Proxy보다 우선한다. built-in LLM client에서 빈 Proxy만HTTP_PROXY·HTTPS_PROXY·NO_PROXY와 lowercase alias를 사용하며,REQUEST_METHOD가 있는 CGI 환경의 HTTP proxy에는 표준 라이브러리 거부 규칙이 적용된다. - WebFetch/WebSearch는 Proxy·CA·insecure가 모두 zero일 때 nil Transport를 통해 default transport와 proxy environment를 상속한다. CA 또는 insecure만 설정하면 새 transport의 Proxy가 nil이어서 환경 proxy를 우회한다.
Tools == nil만 기본 9개를 넣는다. 의도적으로 빈 slice를 주면 기본 tool도 없다.noaadapter.Options.Config != nil이면 전체 struct가 채택된다. 부분 override라는 의미가 아니다.EnableWebSearch의 config 오류는NewSession반환값이 없어 호출자에게 전파되지 않고 tool이 조용히 빠진다. 직접 검증하려면tool.NewWebSearch또는WebSearchProbe결과를 확인한다.