가이드 목록으로
설정·2026년 9월 21일·최종 업데이트 2026년 9월 24일·8분 분량

Agent Zero의 임베딩 모델 변경: 메모리 재색인 및 롤백

Agent Zero 문서에는 “Changing the embedding_llm will re-index all of A0's memory”라는 한 줄만 있고 절차는 없습니다. 여기서는 재구축의 동작과 조용히 실행되지 않는 두 경로를 설명합니다.

마지막 검토일: .

Agent Zero의 임베딩 모델을 변경한다는 것은 Model Preset 안의 embedding 슬롯을 편집하고 Save를 클릭하는 것을 의미합니다. 이 편집으로 공급업체나 모델 이름이 바뀌면 다음 접근 시 메모리가 재인덱싱됩니다. FAISS 인덱스는 한 모델의 출력 너비에 맞춰져 있고 디스크에 이미 저장된 벡터는 이전 모델이 작성했기 때문입니다. Agent Zero 자체의 설치 가이드는 그 결과를 한 줄로 설명합니다. "embedding_llm을 변경하면 A0의 모든 메모리가 재인덱싱됩니다." 그러나 절차, 소요 시간, 되돌리는 방법은 제공하지 않습니다. 이 페이지는 소스에서 그 공백을 채웁니다. 자동 재구축이 실제로 수행하는 작업, 조용히 실행되지 않는 두 경로, 기존 메모리가 여전히 검색되는지 확인하는 방법, 되돌리는 방법을 다룹니다. Kunavo는 임베딩 모델을 제공하지 않으므로 해당 슬롯은 다른 곳에서 구매해야 하며, Kunavo가 가격을 제공할 수 있는 슬롯은 main과 utility입니다.

먼저 구분해야 할 버전 번호가 두 가지 있습니다. 프레임워크 버전은 v2.12이며, 프로젝트 자체 릴리스 게시글에 따르면 2026년 9월 9일에 공개되었습니다. README에서 가장 눈에 띄는 번호는 A0 Launcher v1.7인데, 이는 agent0ai/a0-launcher에 있는 별도의 데스크톱 설치 프로그램입니다. 이 번호를 프레임워크 버전으로 표기하면 메이저 버전 계열 자체가 달라지는 오류가 됩니다. 또한 v2.x에서는 모델 필드가 단일 전역 설정이 아니라 프리셋에 속합니다. 모델 프리셋 가이드에서는 "모든 구성에는 메인 모델, 유틸리티 모델, 임베딩 모델이 포함된다"고 설명하며, 새 채팅에서 사용할 프리셋은 Settings → Agent → Models에서 선택합니다. 설치 가이드에는 여전히 Provider 및 Model Name 필드가 있는 "Embedding Model Settings" 섹션이 설명되어 있으므로, 이런 방식으로 작성된 단계별 안내가 반드시 오래된 것은 아닙니다. 다만 입력한 값은 프리셋의 슬롯에 저장되며, 이 때문에 아래의 설정 전파 관련 경고가 중요합니다.

채팅 모델 전환과 다른 이유

채팅 모델 변경은 다음 요청부터 적용되며 디스크의 데이터를 옮길 필요가 없습니다. 임베딩 변경은 저장소를 무효화합니다. Agent Zero는 현재 모델이 반환하는 값에서 FAISS 인덱스 크기를 정합니다. faiss.IndexFlatIP(len(embedder.embed_query("example"))) 이는 plugins/_memory/helpers/memory.py에 있습니다. 따라서 너비는 구성 값이 아니라 모델의 속성입니다. 배포된 기본값 sentence-transformers/all-MiniLM-L6-v2은 해당 모델 카드에 따라 텍스트를 384차원 공간으로 매핑합니다. OpenAI의 임베딩 가이드에서는 text-embedding-3-small를 1536, text-embedding-3-large을 3072로 제시합니다. 이것이 모델 전환으로 발생하는 형태 변화입니다.

실제로 몇 번 재구축을 구매하게 되는지를 결정하는 범위 관련 사실은 두 가지입니다. 첫째, 이는 전역 편집이 아니라 프리셋 편집입니다. 모델 프리셋 가이드는 범위가 "프리셋 선택만 저장하며, 프리셋을 편집하면 해당 프리셋을 사용하는 모든 범위가 업데이트된다"고 설명하므로, 한 번의 편집이 의도보다 넓게 전파될 수 있고 프리셋 간 전환으로 임베딩 모델도 바뀔 수 있습니다. 기본 제공 Efficiency 및 Power 프리셋에는 자체 embedding 블록이 없으며, 가이드는 기존의 기본값이 아닌 프리셋이 Default의 생략된 고급 값을 상속할 수도 있다고만 설명합니다. 그러므로 추측하지 말고 프리셋 요약을 확인하세요. 둘째, project_memory_isolation: true은 메모리 플러그인 구성에 설정된 기본값입니다. 따라서 여러 프로젝트가 있는 인스턴스는 여러 개의 독립 저장소를 보유하며, 각 저장소는 다음 사용 시 자체적으로 재구축됩니다. 몇 주 동안 사용하지 않은 프로젝트도 누군가 그 프로젝트를 여는 날 재구축 비용을 부담합니다.

1단계: 백업하고, 무엇을 포기하는지 기록하기

Agent Zero의 사용 가이드는 이미 이 사례를 명시하고 있습니다. 백업은 "채팅, 프로젝트, 지식, 메모리, 설정, 스킬 및 작업 공간 파일"을 보호하며, 백업 전에 해야 할 작업으로 "대량 메모리 정리"를 들고 있습니다. Settings → Backup & Restore에서 백업하거나 Launcher의 Backup of /a0/usr를 사용하세요. 또한 가이드 자체에서 비밀 정보가 "백업 아카이브에 항상 포함되지는 않을 수 있다"고 주의하므로, 자격 증명은 별도로 보관하세요.

그런 다음 마이그레이션할 모델을 기록하세요. 추측하지 마세요. 큐레이션된 프리셋 모음은 최초 시작 시 공개 저장소에서 다운로드되며, 설치 날짜 이후 변경될 수 있습니다.

무엇에서 마이그레이션하는지 기록하세요(memory.py에서 파생된 경로)
# Read the CURRENT model off your own instance before you touch anything.
# The curated preset set is fetched from GitHub at first start, so the
# default you installed with is not necessarily today's default.
# Container name: take it from your own `docker ps`.

docker exec agent-zero ls -la /a0/usr/memory/default
docker exec agent-zero cat  /a0/usr/memory/default/embedding.json
#   -> {"model_provider": "huggingface",
#       "model_name": "sentence-transformers/all-MiniLM-L6-v2"}

# Projects do not share that directory. With project isolation on (the
# shipped default) each project keeps its own store under its own meta
# directory, and each one rebuilds on its own next use.

2단계: 변경하기

설치 가이드에 문서화된 흐름은 세 단계입니다. Web UI에서 Settings를 열고, 각 역할에 사용할 공급자를 선택한 다음 모델 이름을 입력하고, Save를 클릭합니다. main의 소스에서 확인되는 이 흐름이 알려주지 않는 네 가지 사항은 다음과 같습니다.

함정실제로 일어나는 일
기본 슬롯에 API 기본 URL 입력하기무시됩니다. 이름이 sentence-transformers/으로 시작하는 Provider huggingface는 LiteLLM에 전혀 접근하지 않고 매개변수를 로컬 전용 허용 목록으로 필터링하는 로컬 래퍼로 곧바로 전환됩니다. 호스팅 엔드포인트에 연결하려면 해당 로컬 경로를 벗어나야 합니다. 즉, 다른 공급자를 사용하거나 sentence-transformers/ 접두사가 없는 모델 이름을 사용해야 합니다. 둘 다 메타 파일에 저장되는 필드이므로 어느 쪽이든 재빌드가 트리거됩니다.
공급자를 전환하기 전에 엔드포인트 입력하기사라집니다. 공급자 드롭다운에는 @change="model.api_base = ''; model.kwargs = {}; …"가 포함되어 있으므로, 공급자를 변경하면 API 기본 URL과 모든 추가 매개변수가 지워집니다. 먼저 공급자를 전환한 뒤 Advanced에 입력하세요.
OpenAI 호환 채팅 게이트웨이가 작동한다고 가정하기이 슬롯은 채팅 래퍼가 아니라 LiteLLM의 embedding() 함수를 호출합니다. 엔드포인트는 POST /v1/embeddings을 구현해야 합니다. Provider other는 LiteLLM의 openai 공급자로 다시 매핑되며, 해당 키는 .env에 API_KEY_OTHER로 기록됩니다.
로컬 모델 서버에 localhost 사용하기Docker 내부에서 이는 Agent Zero 컨테이너를 의미합니다. 설치 가이드는 대신 http://host.docker.internal:<port> 또는 브리지 게이트웨이 주소를 사용하도록 안내합니다.

재빌드가 수행하는 일과 수행하지 않는 두 경로

Save를 클릭하면 model_config_set.py가 이전 임베딩 공급자, 이름 및 kwargs를 새 값과 비교하고, 차이가 있으면 embedding_model_changed를 지연된 백그라운드 작업으로 시작합니다. 이 작업이 실행하는 확장은 메모리를 다시 로드하는 한 가지 일만 합니다. 다음 접근 시 Memory.initialize()가 다시 실행되고, 인덱스 옆의 embedding.json를 확인합니다. 이 파일에는 정확히 두 필드, model_provider와 model_name만 있습니다. 불일치가 발생하면 코드가 get_all_docs를 사용해 이전 인덱스에서 모든 문서를 꺼내고, 새 너비로 새 인덱스를 만든 다음 동일한 문서를 동일한 ID로 다시 삽입합니다. 이 경로는 작동하며 메모리를 보존합니다.

변경하는 항목메타 파일이 이를 감지하나요?결과
공급자 또는 모델 이름예 — 둘 다 저장됩니다문서를 꺼내 새 너비로 다시 삽입합니다. 의도된 경로입니다.
추가 매개변수만 변경하는 경우, 예를 들어 dimensions를 사용해 OpenAI 벡터를 짧게 만드는 경우아니요 — kwargs는 저장되지 않습니다메모리가 다시 로드된 다음 이전 인덱스를 변경 없이 로드합니다. 너비 불일치는 저장 시점이 아니라 검색 시점에 드러납니다.
API 기본 URL만 변경하여 동일한 모델 이름으로 다른 엔드포인트를 가리키는 경우아니요 — 저장 경로에서도 이를 비교하지 않습니다재로드도 예약되지 않으며 이전 인덱스가 그대로 사용됩니다. 해당 엔드포인트가 다른 너비로 응답하면 검색 시 FAISS 어설션이 발생합니다.
인덱스 파일을 외부에서 직접 편집하거나 잘라내거나 복원한 경우별도의 해시 검사가 먼저 실패합니다이전 인덱스는 전혀 로드되지 않으므로 문서도 꺼내지지 않습니다. 대신 콘솔에 해시 불일치 경고가 표시되고 끝에 "index will be rebuilt"가 붙으며, 빈 새 인덱스가 기록됩니다. 삭제된 문서에 대한 내용은 없습니다. 해시 파일이 없거나 읽을 수 없는 경우에는 유효한 것으로 처리됩니다.

두 번째와 세 번째 행은 이슈 #759, 즉 "변경된 기본 임베딩 모델 이후 오류"의 원인이 된 연결 지점입니다. 이 이슈는 2025년 10월 13일에 열렸다가 종료되었으며, 메모리 검색 중 유사도 검색에서 assert d == self.d가 발생한 트레이스백을 보여줍니다. 이 연결 지점은 2026년 9월 21일 현재 main에서도 여전히 확인됩니다. 두 번째 종료 이슈인 #1396은 Ollama의 /api/embed에서 400 오류를 보고하며, 작성자는 원인을 오래된 인덱스로 추적하고 index.faiss와 index.pkl를 삭제하는 우회 방법을 제시했습니다. 이 우회 방법은 저장소를 파괴하므로 복구나 롤백이 아니라 초기화로 취급해야 합니다. 두 이슈 모두 메인테이너의 댓글은 없었습니다. #1396은 90일 후 오래된 이슈 봇에 의해 종료되었습니다. 따라서 두 진단 모두 신고자의 자체 판단이며, 두 해결 방법 모두 검증되지 않았습니다.

3단계: 성공적인 호출이 아니라 이전 검색 결과를 확인하기

이 변경으로 발생하는 실패는 조용하므로 "새 모델이 응답했다"는 것은 잘못된 승인 테스트입니다. 메모리 대시보드를 열고 메모리 가이드에 따라 네 영역 모두 — main, fragments, solutions 및 skills — 에서 변경 이전부터 알고 있던 내용을 검색하도록 필터링하세요. 프로젝트마다 저장소가 별도로 있으므로 프로젝트별로 한 번씩 수행합니다. 그런 다음 유사도 임계값을 확인하세요. 제공된 memory_recall_similarity_threshold는 0.7이며, 이는 모델의 속성이 아니라 플러그인별 기본값입니다. 새 임베딩 모델은 유사도 점수를 재분배합니다. 오류가 단 한 번도 발생하지 않아도 검색 결과가 저하될 수 있으므로, 임계값 제어는 세부 사항이 아니라 검증의 일부입니다.

이 페이지로는 한 가지를 알 수 없습니다. 재빌드가 실행되는 동안 Web UI에 진행률이나 완료 신호가 표시되는지 여부입니다. 이는 지연된 백그라운드 작업으로 실행되며, 이를 위한 화면은 확인되지 않았습니다. 확인 신호가 없다고 가정하고 직접 검증하세요.

롤백과 재빌드 비용

공급자가 문서화한 롤백 방법은 없습니다. 존재하는 것은 백업 메커니즘과 위에서 설명한 메타 파일 동작뿐이며, 아래 경로는 프로젝트가 공개한 방법이 아니라 이 두 가지를 조합한 것입니다. 변경 전 백업을 복원하거나, 슬롯을 정확히 이전 공급자와 모델 이름으로 되돌리세요. 그러면 메타 파일 비교가 반대 방향에서 실패하고 재빌드가 실행됩니다. 동일한 컨테이너에서 tmp/ 아래의 임베딩 캐시는 공급자와 모델별로 네임스페이스가 분리되어 있으므로, 이전에 사용한 모델로 돌아가면 변경되지 않은 텍스트의 캐시된 벡터를 재사용할 수 있습니다. 하지만 tmp/는 문서화된 백업 범위 밖에 있으므로 컨테이너를 다시 만들면 해당 캐시를 잃습니다. 새 공급자가 재빌드 중간에 오류를 일으킬 경우 코드가 어떻게 동작하는지는 테스트되지 않았고 여기에 명시되어 있지 않습니다. 이에 의존하지 말고 백업에서 확인하세요.

비용에 관해서는 Kunavo가 임베딩 모델을 제공하지 않으므로 아래 모든 금액은 본인 계정으로 OpenAI에 직접 지불하며, 2026년 9월 21일에 확인한 OpenAI의 공시 요금이 적용됩니다. 직접 작업 규모를 계산하세요. 메모리 대시보드에서 저장된 문서 수를 세고, 평균 길이를 곱한 다음, 토큰당 약 4자라는 기준으로 나누면 됩니다. 이 나눗셈 값은 측정값이 아니라 관례입니다.

재빌드 대상공시 요금, OpenAI에 직접 청구3M 토큰 재임베딩30M 토큰 재임베딩
text-embedding-3-small (1536차원)1M 토큰당 $0.02, OpenAI에 직접 청구$0.06$0.60
text-embedding-3-large (3072차원)1M 토큰당 $0.13, OpenAI에 직접 청구$0.39$3.90
text-embedding-ada-0021M 토큰당 $0.10, OpenAI에 직접 청구 — 3-small보다 비싸므로 현재 sensible한 대상이 아님$0.30$3.00
CPU에서 실행되는 제공 로컬 모델토큰당 요금 없음. 대신 자체 장비의 CPU 시간 사용장비 시간장비 시간

이는 명시된 가정에 따른 토큰 산술이며, 측정된 재빌드 비용도 상한도 아닙니다. 또한 저장소별 계산입니다. 프로젝트 격리가 활성화된 경우 실제로 다시 열 프로젝트 수를 곱하고, 롤백은 동일한 요율로 수행되는 두 번째 재빌드라는 점을 기억하세요.

Kunavo가 제공할 수 있는 두 슬롯

경계를 분명히 하자면, 임베딩 슬롯은 여기서 제공되지 않으며 채팅 와이어 형식을 구현하는 게이트웨이는 임베딩 엔드포인트가 아닙니다. 남는 것은 일반적인 채팅 모델인 주 슬롯과 유틸리티 슬롯입니다. 현재 카탈로그 요금에서 Claude Sonnet 4.6는 입력 토큰 100만 개당 $2.10를, 출력 토큰 100만 개당 $10.50를 나열하며, Claude Haiku 4.5는 $0.70와 $3.50를 나열합니다.

Claude Sonnet 4.6 주 슬롯에서 한 달에 입력 토큰 8M 및 출력 토큰 0.4M, Claude Haiku 4.5 유틸리티 슬롯에서 입력 토큰 2M 및 출력 토큰 0.2M을 사용한다고 가정하세요. 임베딩 슬롯은 여기서 제공되지 않으며 제외됩니다. 카탈로그 추정치는 $23.10입니다. 이는 가정한 사용량이지 측정된 작업량이나 청구 상한이 아닙니다. Agent Zero는 Kunavo 엔드포인트를 대상으로 런타임 테스트를 거치지 않았고, 위 설정은 실행이 아니라 프로젝트 소스와 문서에서 확인한 것입니다. 카탈로그 금액은 청구 하한입니다. 업스트림이 요금을 보고하면 실제 청구액은 카탈로그 비용과 적용 가능한 마크업을 곱한 업스트림 비용 중 더 큰 금액입니다. 최소 충전액은 선불 크레딧 $10이며, 이는 구독료가 아니라 자금 충전 최소액입니다. 자세한 내용은 청구 세부 정보를 참조하세요.

아직 프레임워크를 선택 중이라면 Agent Zero와 OpenClaw 비교에서 실행 모델과 세 슬롯 구조를 비교합니다. 엔드포인트 형식 자체는 OpenAI 호환 참조 문서와 빠른 시작 가이드에서 채팅 슬롯을 다루며, Kunavo 계정 만들기에서 해당 슬롯에 자금을 충전할 수 있습니다. 일반적인 검색 작업은 RAG 구현에서 생성 공급자와 별도로 구매하는 검색 단계 사이의 동일한 구분을 설명합니다.

자주 묻는 질문

Agent Zero에서 임베딩 모델을 어떻게 변경하나요?

Agent Zero 설치 가이드에 문서화된 흐름은 세 단계입니다. Web UI에서 Settings 페이지를 열고, 각 역할(Main Model, Utility Model, Embedding Model)의 LLM 공급업체를 선택한 다음 모델 이름을 입력하고 Save를 클릭합니다. v2.x에서는 모든 프리셋이 main, utility, embedding 모델을 하나씩 포함하므로 이 변경은 평평한 전역 설정이 아니라 Model Preset의 슬롯에 적용됩니다. 모델 프리셋 가이드는 프리셋을 편집하면 해당 프리셋을 사용하는 모든 범위가 업데이트된다고 경고합니다. 설치 페이지에는 나오지 않는 주의점이 하나 있습니다. 공급업체 드롭다운을 변경하면 해당 슬롯의 API base URL과 모든 추가 매개변수가 지워지므로, 공급업체를 전환한 후 사용자 지정 엔드포인트를 입력하고 절대 그 전에 입력하지 마세요.

Agent Zero의 임베딩 모델을 변경하면 메모리가 삭제되나요?

문서화된 경로에서는 삭제되지 않습니다. Agent Zero는 인덱스 옆에 embedding.json이라는 작은 메타 파일을 작성하며, 여기에는 임베딩 공급업체와 모델 이름이 들어 있습니다. 이 값이 구성된 모델과 더 이상 일치하지 않으면 memory.py가 기존 FAISS 인덱스에서 get_all_docs로 모든 문서를 읽고, 현재 벡터 길이에 맞는 새 인덱스를 만든 다음 동일한 문서를 동일한 ID로 다시 삽입합니다. 메모리는 재임베딩되며 삭제되지 않습니다. 파괴적인 단계는 손상된 인덱스에 대한 issue #1396의 해결 방법인 index.faiss와 index.pkl 삭제입니다. 이는 마이그레이션이 아니라 메모리 삭제이며 롤백도 아닙니다.

Agent Zero 메모리 재인덱싱에는 얼마나 걸리나요?

프로젝트는 이에 대한 수치를 발표하지 않았으며 다른 곳에서도 찾을 수 없었습니다. 가장 비슷해 보이는 수치인 v2.12 릴리스 노트의 저장 시간 중앙값 1,171ms에서 52ms로 감소했다는 보고는 임베딩 비교가 중복 읽기를 중단한 프리셋 편집에 해당합니다. 이는 프리셋 저장 시간이지 인덱스 재구축 시간이 아니므로 이를 기준으로 예산을 잡지 마세요. 재구축 비용은 저장소의 문서 수와 대상 모델의 응답 속도에 따라 달라집니다. 자신의 인스턴스에서 규모를 산정하세요. 메모리 대시보드에서 저장된 문서 수를 세고, 프로젝트 격리가 활성화된 배포 기본 설정에서는 모든 프로젝트가 한 번에 재구축되는 것이 아니라 각 프로젝트가 다음에 열리는 날 자체 재구축 비용을 부담한다는 점을 기억하세요.

임베딩 모델을 변경한 후 FAISS assertion 오류가 발생하는 이유는 무엇인가요?

차원 불일치입니다. 저장된 인덱스의 너비와 현재 모델이 반환하는 너비가 다릅니다. Agent Zero 저장소의 종료된 이슈 "Errors after changed default Embedding Model"(#759, 2025년 10월 13일 개시)은 정확히 이러한 형태를 기록합니다. 메모리 회수 확장의 유사도 검색 중 벡터 저장소에서 assert d == self.d AssertionError가 발생합니다. main의 소스를 읽어 보면 이를 만드는 메커니즘은 두 확인 사이의 경계에 있습니다. 저장 경로는 reload 이벤트를 발생시키기 전에 공급업체, 이름 및 kwargs를 비교하지만, 디스크의 메타 파일에는 공급업체와 이름만 기록됩니다. 따라서 kwargs만 변경하면 reload가 발생한 뒤 기존 인덱스를 변경 없이 불러오고, API-base만 변경하면 비교 대상이 아니므로 아무 작업도 예약되지 않아 기존 인덱스가 계속 사용됩니다. 해당 이슈에는 확인 가능한 유지관리자 의견이 없었고 해결 여부도 검증되지 않았습니다. 2026년 9월 21일 기준 main에서 이 경계는 여전히 확인됩니다.

Agent Zero의 임베딩 슬롯을 Kunavo로 지정할 수 있나요?

아니요. Kunavo는 임베딩 모델을 제공하지 않습니다. /v1/embeddings 경로는 와이어 형식을 구현하지만 해당 엔드포인트를 활성화한 모델이 없으므로 호출이 실패합니다. Kunavo의 기계 판독 가능 문서도 임베딩에 추천하지 말라고 명시합니다. 여기서는 이것이 특히 중요합니다. Agent Zero의 임베딩 슬롯은 채팅 래퍼를 거치지 않고 models.py가 LiteLLM의 embedding() 함수를 별도로 가져오기 때문입니다. 따라서 OpenAI 호환 채팅 게이트웨이가 자동으로 임베딩 게이트웨이가 되지는 않습니다. 해당 슬롯은 임베딩을 제공하는 공급업체에서 직접 구매하거나 로컬 CPU 모델을 유지하세요. Agent Zero 프리셋에서 Kunavo의 역할은 main 및 utility 슬롯입니다.

Agent Zero에서 임베딩 모델 변경을 어떻게 롤백하나요?

Agent Zero는 이에 대한 롤백 절차를 제공하지 않습니다. 문서에는 변경으로 메모리가 재인덱싱된다는 한 줄 경고, 일반적인 Backup and Restore 메커니즘만 있으며 그 사이의 절차는 없습니다. 이 둘을 조합한 경로는 다음과 같습니다. 변경 전에 만든 백업을 복원하거나 슬롯을 정확히 이전 공급업체와 모델 이름으로 되돌려 메타 파일 비교가 반대 방향으로 다시 불일치하게 만들고 재구축을 실행하세요. 동일한 컨테이너에서는 tmp/ 아래의 로컬 임베딩 캐시가 공급업체와 모델별로 구분되므로, 이전에 사용한 모델로 돌아가면 변경되지 않은 텍스트의 캐시된 벡터를 재사용할 수 있습니다. 하지만 tmp/는 문서화된 백업 외부에 있으므로 컨테이너를 다시 만들면 이 절약 효과가 사라집니다. 인덱스 파일을 삭제하는 방식으로 롤백하지 마세요.

2026년 9월 21일에 agent0ai/agent-zero main — memory.py, model_config_set.py, models.py, 메모리 플러그인 기본값 및 docs 트리 — 와 v2.12 릴리스 문서, a0-presets 모음, 연결된 두 이슈 및 OpenAI 공시 요금을 기준으로 확인했습니다. 이 페이지의 내용은 실행으로 확인한 것이 없습니다. 메커니즘에 대한 주장은 소스 검증을 거쳤지만 런타임 테스트는 하지 않았으며, Kunavo에는 Agent Zero 실행 기록이 없습니다. Kunavo 토큰 요금은 현재 카탈로그에서 가져왔습니다.