본문으로 이동
config.toml 레퍼런스

문서 탐색

설정레퍼런스

config.toml 레퍼런스

전체 키 레퍼런스입니다. toml 매핑이 붙은 Settings 필드, routing.toml 매니페스트, self-improving 루프 섹션을 다룹니다.

이 페이지는 설정 키의 단일 목록입니다. 키가 어디서 어떤 순서로 읽히는지는 설정 기초가 다룹니다. 키는 세 무리로 나뉩니다. Settings 필드 (core/config/_settings.py), 라우팅 매니페스트 (core/config/routing.toml), self-improving 루프 섹션(evals/config.py).

모든 Settings 필드는 GEODE_ 접두사를 붙인 env 변수로 덮을 수 있습니다. model은GEODE_MODEL, agentic_effort는GEODE_AGENTIC_EFFORT가 됩니다. toml 키 열이 비어 있으면 그 필드는 env 또는 코드 기본값으로만 설정합니다. toml 매핑의 SoT는 core/config/__init__.py의_TOML_TO_SETTINGS이고, 매핑에 없는 toml 키는 조용히 무시됩니다.

Settings: toml 매핑 필드

[llm]

필드toml 키타입 / 기본값용도
modelllm.primary_modelstr = "claude-opus-5-5"기본 모델. 기본값은 routing.toml의 anthropic 기본값을 따라갑니다.
model_policy_pathllm.model_policy_pathstr = ""필수 모델 정책 파일의 절대 경로. 비우면 선택적 프로젝트 정책을 유지합니다.
act_modelllm.act_modelstr = ""액션 루프 모델. 비우면 model로 폴백합니다.
judge_modelllm.judge_modelstr = ""턴 단위 verify judge 모델. 비우면 model로 폴백합니다.
learning_extract_modelllm.learning_extract_modelstr = "glm-4.7-flash"learning 추출 훅용 무료 티어 GLM 모델.
anthropic_credential_sourcellm.anthropic_credential_sourcestr = "auto"Anthropic 자격 경로. CredentialSource 값 + oauth 별칭 + none.
openai_credential_sourcellm.openai_credential_sourcestr = "auto"OpenAI 자격 경로. 같은 검증을 거칩니다.
anthropic_native_web_toolsllm.anthropic_native_web_toolsbool = falseAnthropic이 서버에서 실행하는 web_search/web_fetch 도구 옵트인. 끄면 GEODE 자체 웹 도구를 씁니다.
tool_search_deferllm.tool_search_deferbool = true호스팅 tool search를 쓰는 지연 도구 로딩(Anthropic, OpenAI API). 끄는 스위치입니다.
tool_search_defer_codexllm.tool_search_defer_codexbool = trueCodex 백엔드의 같은 지연 도구 로딩.
prompt_cache_extended_ttlllm.prompt_cache_extended_ttlbool = trueAnthropic 정적 프롬프트 prefix의 1시간 캐시 TTL. false면 공급자 기본값 5분을 씁니다.
prompt_cache_key_enabledllm.prompt_cache_key_enabledbool = trueOpenAI API 키·Codex 경로에 prompt_cache_key 캐시 라우팅 힌트를 보냅니다. 끄는 스위치입니다.
glm_reasoning_effortllm.glm_reasoning_effortstr = ""effort를 지정하지 않은 GLM 요청의 reasoning effort. 비우면 공급자 기본값을 씁니다.

프로젝트 .geode/config.toml의 llm.model_policy_path는 신뢰한 폴더에서만 적용됩니다(프로젝트 신뢰).

[agentic]

필드toml 키타입 / 기본값용도
agentic_effortagentic.effortstr = "high"허용 값은 선택한 모델의 공통 스펙과 /model 선택 화면을 따릅니다. Anthropic output_config.effort, OpenAI reasoning.effort, GLM reasoning_effort에 같은 값을 전달하며, 지원하지 않는 조합은 호출 전에 거절합니다.
agentic_thinking_budgetagentic.thinking_budgetint = 0레거시 thinking 토큰 예산. 0이면 비활성.

[replan]

필드toml 키타입 / 기본값용도
replan_enabledreplan.enabledbool = true리플랜 활성화.
replan_max_attemptsreplan.max_attemptsint = 3리플랜 시도 상한.

[judgment]

필드toml 키타입 / 기본값용도
judgment_enginejudgment.enginestr = "llm"판정 엔진. llm 또는 jev.
jev_providerjudgment.providerstr = "auto"Jev 공급자. auto, typesafe, openrouter.

engine = "llm"이 기본입니다. engine = "jev"로 선택하고 TypeSafe 또는 OpenRouter 키가 있을 때 Jev 판정을 사용합니다. provider = "auto"는 TypeSafe 키를 먼저 확인하며 typesafe나 openrouter로 고정할 수 있습니다. 키가 없으면 LLM 경로를 유지합니다. /model judgment 선택창과 /model judgment llm|jev|typesafe|openrouter가 같은 설정을 저장하며, 상위 환경변수·프로젝트 설정이 가리면 변경을 거부하고 해당 층을 표시합니다.

TypeSafe는 TYPESAFE_API_KEY 환경 입력을 사용합니다. OpenRouter는 /login add로 등록한 인증 또는 OPENROUTER_API_KEY 환경 입력을 사용합니다. 키만 등록해도 Jev가 자동 활성화되지는 않습니다. 요청 실패 시 다른 공급자로 재시도하지 않습니다.

[cognitive]

필드toml 키타입 / 기본값용도
cognitive_reflection_enabledcognitive.reflection_enabledbool = true퇴역 예정 호환 필드. false도 true로 정규화하며 매 도구 결과 라운드와 최종 응답 전 판정합니다.
cognitive_reflection_modelcognitive.reflection_modelstr = ""비워두면 현재 agentic loop 모델/소스를 상속하고, 값이 있으면 별도 reflection 모델로 사용한다.
cognitive_reflection_max_tokenscognitive.reflection_max_tokensint = 512리플렉션 출력 토큰 상한.
cognitive_reflection_intervalcognitive.reflection_intervalint = 1퇴역 예정: 1로 정규화합니다.
cognitive_reflection_adaptivecognitive.reflection_adaptivebool = false퇴역 예정: false로 정규화합니다.

[sandbox]

필드toml 키타입 / 기본값용도
sandbox_max_file_size_bytessandbox.max_file_size_bytesint = 262144파일 읽기 바이트 상한.
sandbox_max_read_tokenssandbox.max_read_tokensint = 25000읽기 결과 토큰 상한.
sandbox_max_glob_resultssandbox.max_glob_resultsint = 100glob 결과 개수 상한.
sandbox_max_grep_resultssandbox.max_grep_resultsint = 50grep 결과 개수 상한.
sandbox_max_grep_line_charssandbox.max_grep_line_charsint = 200grep 라인 문자 상한.

[output]

필드toml 키타입 / 기본값용도
verboseoutput.verbosebool = false상세 출력. /verbose로 세션 중 토글합니다.

Settings: 그 밖의 필드

아래 필드도 config.toml 키가 있습니다. env 전용은 API 키 필드 (_TOML_ENV_ONLY_FIELDS)뿐이며, 환경 변수나 .env로만 설정합니다.

시크릿과 프로바이더

필드toml 키타입 / 기본값용도
anthropic_api_key / openai_api_key / openrouter_api_key / typesafe_api_key / zai_api_keystr = ""ANTHROPIC_API_KEY / OPENAI_API_KEY / OPENROUTER_API_KEY / TYPESAFE_API_KEY / ZAI_API_KEY로 별칭됩니다. 외부 환경 입력이며, /login으로 등록한 키는 auth.toml에 별도로 저장됩니다.
ensemble_modeensemble.modestr = "single"single 또는 cross 멀티 LLM 모드.
forced_login_methodllm.forced_login_methoddict = {}프로바이더별 인증 방식 강제({"openai": "apikey"}). 기본은 구독 우선.

Temperature (0.0-2.0)

필드toml 키기본값용도
temperature_agent_looptemperature.agent_loop1.0에이전트 루프 호출.
temperature_reflectiontemperature.reflection1.0리플렉션 호출.
temperature_self_improving_mutationtemperature.self_improving_mutation1.0변이 제안 호출.

서브에이전트

필드toml 키기본값용도
max_subagent_depthsubagent.max_depth1중첩 위임 깊이 상한.
max_total_subagentssubagent.max_total15총 서브에이전트 상한.
subagent_max_tokenssubagent.max_tokens32768서브에이전트 출력 토큰 상한.

토큰 가드와 오프로딩

필드toml 키기본값용도
max_tool_result_tokenssubagent.max_tool_result_tokens25000도구 결과 토큰 상한. 0이면 무제한.
tool_offload_thresholdtool_offload.threshold15000이 토큰을 넘는 결과는 디스크로 오프로드됩니다. 0이면 비활성.
tool_offload_ttl_hourstool_offload.ttl_hours4.0오프로드 보관 시간.
observation_mask_keep_roundsobservation.mask_keep_rounds3관측 마스킹 전 유지 라운드.
compact_keep_recentcompact.keep_recent10컴팩션 시 보존할 최근 메시지 수.

스케줄러와 트리거

필드toml 키기본값용도
trigger_scheduler_interval_sscheduler.trigger_interval_s60.0트리거 스케줄러 폴 간격.
scheduler_interval_sscheduler.interval_s1.0스케줄러 틱 간격.
scheduler_auto_startscheduler.auto_starttrueserve와 함께 스케줄러 자동 시작.
scheduler_jitter_enabledscheduler.jitter_enabledtrue예약 실행에 지터 적용.
scheduler_max_jitter_msscheduler.max_jitter_ms900000.0지터 상한. 15분입니다.

프로젝트 .geode/config.toml의 scheduler.auto_start는 신뢰한 폴더에서만 적용됩니다(프로젝트 신뢰).

메모리와 세션

필드toml 키기본값용도
session_ttl_hourssession.ttl_hours4.0세션 보존 시간.
session_storage_dirsession.storage_dir""세션 저장 디렉터리. 비우면 인메모리.
organization_fixture_dirpaths.organization_fixture_dir""조직 메모리 픽스처 경로.
user_profile_dirpaths.user_profile_dir""비우면 ~/.geode/user_profile.

프로젝트 .geode/config.toml의 session.storage_dir, paths.organization_fixture_dir, paths.user_profile_dir는 신뢰한 폴더에서만 적용됩니다(프로젝트 신뢰).

게이트웨이, 알림, 웹훅

필드toml 키기본값용도
gateway_enabledgateway.enabledfalse메신저와 webhook 등 외부 채널 활성화. CLI IPC는 이 값과 무관합니다.
gateway_poll_interval_sgateway.poll_interval_s3.0게이트웨이 폴 간격.
gateway_max_concurrentgateway.max_concurrent4동시 처리 상한.
gateway_allow_computer_usegateway.allow_computer_usefalse바운드 채널의 원격 desktop control 명시적 옵트인.
notification_channelnotification.channel"slack"알림 채널 종류.
notification_recipientnotification.recipient"#geode-alerts"알림 수신처.
webhook_enabledwebhook.enabledfalsegateway 활성 시 웹훅 HTTP 엔드포인트.
webhook_portwebhook.port8765웹훅 포트.

프로젝트 .geode/config.toml에서는 이 표의 키(gateway.*, notification.*, webhook.*)가 모두 신뢰한 폴더에서만 적용됩니다(프로젝트 신뢰).

HITL, 샌드박스, 비용, 데스크탑

필드toml 키기본값용도
hitl_levelhitl.level22면 모두 확인, 1이면 쓰기만 확인, 0이면 자율.
dangerously_skip_permissionshitl.dangerously_skip_permissionsfalse도구 승인 프롬프트를 건너뜁니다(hitl_level을 0으로 강제). geode --dangerously-skip-permissions로도 켭니다.
cost_limit_usdcost.limit_usd0.0비용 상한. 0이면 무제한, 80%에서 경고.
computer_use_enabledcomputer_use.enabledtrue데스크탑 자동화 도구.
computer_use_drivercomputer_use.driver"auto"auto는 설치된 서명 helper를 쓰고 없으면 pyautogui, python은 프로세스 안의 pyautogui, helper는 macOS helper가 없으면 실패합니다.
computer_use_helper_pathcomputer_use.helper_path""helper 실행 파일 경로. 비우면 geode setup이 빌드한 helper, 다음으로 PATH의 geode-computer-helper를 찾습니다.
bash_sandboxbash_sandbox.mode"off"run_bash의 OS 샌드박스. off, on(샌드박스가 없으면 경고 후 그대로 실행), strict(없으면 실패).
package_install_guardtools.package_install_guardtruePyPI·npm에 없는 패키지의 bash 설치를 막습니다. 확실한 404일 때만 막습니다.

프로젝트 .geode/config.toml의 cost.limit_usd, computer_use.enabled, computer_use.driver, bash_sandbox.mode, tools.package_install_guard는 신뢰한 폴더에서만 적용되고, hitl.dangerously_skip_permissions와 computer_use.helper_path는 프로젝트에서 읽지 않습니다(프로젝트 신뢰).

LLM 커넥션 풀

필드toml 키기본값용도
llm_max_connectionsllm.max_connections20최대 연결 수.
llm_max_keepalive_connectionsllm.max_keepalive_connections5keepalive 연결 상한.
llm_keepalive_expiryllm.keepalive_expiry30.0keepalive 만료 초.
llm_connect_timeoutllm.connect_timeout5.0연결 타임아웃.
llm_read_timeoutllm.read_timeout300.0읽기 타임아웃.
llm_write_timeoutllm.write_timeout30.0쓰기 타임아웃.
llm_pool_timeoutllm.pool_timeout10.0풀 대기 타임아웃.
llm_retry_base_delayllm.retry_base_delay2.0재시도 기본 지연.
llm_retry_max_delayllm.retry_max_delay30.0재시도 최대 지연.
llm_max_retriesllm.max_retries3최초 호출을 포함한 모델별 총 시도 횟수. 메인 루프·보조 호출·scaffold-search mutator가 공유합니다.
llm_max_fallback_cost_ratiollm.max_fallback_cost_ratio0.0폴백 비용 비율 상한. 0이면 무제한.

routing.toml

출하본은 core/config/routing.toml이고, 사용자 override ~/.geode/routing.toml이 섹션 단위로 병합됩니다(core/config/routing_manifest.py). 현재 기본 모델과 프로바이더별 라우팅 규칙은 프로바이더 설정에 있습니다.

섹션키내용
[model.defaults]anthropic, anthropic_secondary, anthropic_budget, openai, codex, glm프로바이더별 기본 모델 id. core.config.ANTHROPIC_PRIMARY 등으로 export됩니다.
[model.fallbacks]프로바이더별 리스트 4개기본은 전부 빈 리스트입니다. 같은 프로바이더 묵시적 폴백 체인은 출하되지 않고, 기본 모델 실패는 예외를 던지며 사용자가 /model로 고릅니다. 폴백은 ~/.geode/routing.toml에서 옵트인합니다.
[routing.prefixes]모델 id 접두사모델 id 접두사를 프로바이더로 매핑합니다. 첫 매치가 이깁니다. 매치되는 접두사가 없는 계열(gemini-, deepseek-, llama-, qwen- 등)은 모델당 한 번 경고를 남기고 fallback_provider(OpenAI 호환 엔드포인트)로 흘러갑니다. 해당 id를 서빙하는 OpenAI 호환 프록시에는 정상 경로입니다.
[routing]codex_only_models, codex_suffixes, fallback_providerCodex 전용 모델 목록은 현재 비어 있습니다. gpt-6.1-sol처럼 두 경로에 모두 있는 모델은 선택한 API-key 또는 구독 source를 따르며, 소스별 퇴역(예: 10월 14일 구독에서 빠진 gpt-5.5)은 그 source에서만 거절됩니다. -codex/-codex-max/-codex-mini 접미사는 openai-codex로 라우팅하고, 미해석 ID는 openai로 분류합니다. 모델 퇴역은 provider 분류와 별도로 실제 source에 적용합니다.
[nodes]analyst, evaluator, scoring, synthesizer파이프라인 노드 모델. 출하 매니페스트가 네 노드 모두 Anthropic 기본 모델로 고정하므로 노드가 REPL 모델을 상속하지 않습니다. 조회 순서는 프로젝트 .geode/routing.toml, 매니페스트, 없으면 settings.model.
[credentials.patterns]API 키 정규식키 모양에서 프로바이더를 추정합니다. 첫 매치가 이깁니다. GLM 키({id}.{secret} 모양)는 core.config.env_io.is_glm_key가 감지합니다.
[credentials.env_vars]프로바이더 이름프로바이더별 API 키 환경 변수 이름.

[self_improving_loop.*]

~/.geode/config.toml(또는GEODE_CONFIG_TOML)에서load_self_improving_loop_config가 읽습니다. Settings와 분리된 별도 로더입니다. 옵트인 기능이라 lazy하게 두어 cold start를 가볍게 유지합니다. 파일이나 섹션이 없으면 전부 기본값으로 동작하고, 섹션이 있는데 키가 틀리면 큰 소리로 ValueError를 냅니다(extra="forbid").

[self_improving_loop]

키타입 / 기본값용도
fallback_to_paygbool = false구독 소진 시 소스 해석이 api_key로 흘러내릴 수 있는지.
openai_sourceNone"openai-codex" 또는 "api_key"만 허용. autoresearch의 source, target.source, mutator.source로 팬아웃되는 단일 노브. 충돌 시 UserWarning과 함께 이 키가 권위입니다.
warn_thresholdfloat = 0.5예산 경고 임계.
abort_thresholdfloat = 0.9중단 임계. warn보다 커야 합니다.

[self_improving_loop.autoresearch]

키타입 / 기본값용도
budget_minutesint = 5 (1-600)사이클 시간 예산.
mutator_feedback_windowint = 20 (0-200)변이 제안에 주는 최근 이력 창.
mutator_dedup_windowint = 20중복 변이 검사 창.
mutator_dedup_thresholdfloat = 0.85중복 판정 유사도.
anchor_confidence_modebool = falseanchor 신뢰도 모드.
sourceapi_key역할 공통 기본 자격 소스.
seed_limitint = 10 (5-1000)감사당 seed 수.
seed_select"bundled"패키지에 포함된 공진화 seed 풀.
held_out_benchNone고정 자 역할의 frozen seed 디렉터리.
promote_policy"gate"gate / random / never.
promote_policy_seedint = 0random 정책의 시드.
replicateint = 1 (1-20)감사 반복 횟수.
target_effect_sizefloat = 0.02승격에 요구하는 효과 크기.
dim_set"subset"측정 dim 세트.
max_turnsint = 10 (1-200)감사당 턴 상한.
target_model / judge_modeldeprecatedno-op 슬롯. 역할 서브섹션을 쓰세요.

역할 서브섹션[self_improving_loop.autoresearch.target|judge|auditor]는model(기본 "")과source(기본 api_key)를 받고, mutator 서브섹션은 default_model(None이면Settings.model 상속),source(auto),max_tokens(1024)를 받습니다. 레거시[self_improving_loop.petri.*]와[self_improving_loop.mutator]는 DeprecationWarning과 함께 자동 이전됩니다. geode-eval audit의 역할 해석 순서는 argv, 역할 서브섹션, 매니페스트 기본값 순입니다.

env 사이드 채널이 키 몇 개에 붙어 있습니다.GEODE_HELD_OUT_BENCH,GEODE_PROMOTE_POLICY,GEODE_AUDIT_REPLICATE,GEODE_TARGET_EFFECT_SIZE이고 각각AUTORESEARCH_* 별칭을 동반합니다. 해석 순서는 env, CLI 플래그, config 필드, 기본값 순입니다.

[self_improving_loop.seed_generation]

키타입 / 기본값용도
candidates_defaultint = 15 (1-100)세대당 후보 수 기본값.
default_gen_tag"gen1"기본 세대 태그.
rolesdict역할별 서브섹션마다 model, source, num_turns(0 또는 2-6), max_papers(0-20), queries_per_run(1-10).

[self_improving_loop.scheduler]

키타입 / 기본값용도
enabledbool = falseauto-trigger 옵트인.
cron"0 */6 * * *"발화 cron.
min_interval_minutesint = 60 (1-1440)최소 발화 간격.
max_generationint = 0세대 상한. 0이면 무제한.

다음