Skip to Content
사용자 가이드기능Mem0

Mem0

Mem0는 Qwen Code를 외부 메모리 서비스에 연결합니다. 이 기능은 메인 CLI 패키지에 포함되어 있으므로 @qwen-code/external-context-mem0를 별도로 설치하거나 이 경로에 대해 별도의 MCP 서버를 등록하지 마십시오.

연결

다음 내용을 사용자 설정(~/.qwen/settings.json)에 병합한 후 신뢰할 수 있는 프로젝트에서 Qwen Code를 재시작하십시오. modelProviders와 마찬가지로 envKey는 자격 증명 변수의 이름을 지정하며, 최상위 env 필드가 해당 값을 제공할 수 있습니다:

{ "env": { "MEM0_API_KEY": "<your-provider-key>" }, "memory": { "mem0": { "baseUrl": "https://your-mem0-endpoint.example", "protocol": "mem0-v2", "envKey": "MEM0_API_KEY" } } }

이 단일 파일 설정은 셸 export를 필요로 하지 않습니다. JSON의 자격 증명은 평문입니다: 사용자 설정에 보관하고 저장소에 커밋하지 말고 보고서에서 파일을 공유하지 마십시오. 또는 최상위 env 항목을 생략하고 시작 셸이나 ~/.qwen/.env에 키를 설정할 수 있습니다. 비어 있지 않은 프로세스 환경 값은 .env 값보다 우선하며, .env 값은 settings.env보다 우선합니다.

엔드포인트 오리진을 사용하며, 선택적으로 리버스 프록시 접두사를 포함할 수 있습니다. /v2/memories/search나 다른 작업 경로를 추가하지 마십시오. 서비스가 실제로 구현하는 계약을 선택하십시오:

  • mem0-v2 (기본값): PolarDB 스타일 Authorization: Token, limit을 사용하는 V2 검색, V1 쓰기.
  • mem0-v3: Mem0 Platform V3, Authorization: Token, V3 검색/추가.
  • mem0-oss-2026-08: 고정된 OSS REST 계약, X-API-Key, /search 및 /memories.

이것들은 완전한 계약이며 보편적인 버전 호환성이 아닙니다. 알 수 없는 버전과 다른 요청/응답 형태는 URL 이름 변경이 아닌 검증된 어댑터가 필요합니다. 역사적 프리셋 ID는 계속 허용됩니다. aliyun-polardb-mysql-2026-08는 역사적 top_k 검색 필드와 원시 검색 콘텐츠를 유지합니다.

http://your-endpoint:8080과 같은 신뢰할 수 있는 PolarDB 주소에는 추가로 "allowInsecureHttp": true가 필요합니다. 일반 HTTP는 자격 증명을 암호화하지 않고 전송합니다. 이 설정은 비공개 엔드포인트를 도달 가능하게 만들거나 IP 화이트리스트를 우회하지 않습니다.

Qwen은 자동으로 external-context를 등록하고 context_search를 검색합니다. Qwen에게 외부 메모리를 검색하도록 요청하십시오. 각 턴마다 자동으로 검색되거나 전송되는 것은 없습니다. 운영자 설정, 세션 구성 또는 --mcp-config에 동일한 이름의 서버가 있으면 충돌합니다. 내장 경로로 전환할 때 수동 구성을 제거하십시오. 해당 이름의 워크스페이스 설정 및 프로젝트 .mcp.json 항목은 재정의됩니다. 기존 MCP 우선 순위는 동일한 이름의 확장 서버도 가리므로 번들 경로를 사용할 때 고급 external-context 확장을 비활성화하십시오. 중복 확인을 피하기 위해 오래된 수동 쓰기 확인 Hook도 제거하십시오. 동일한 matcher를 가진 사용자 Hook은 번들 확인을 대체하지 않습니다.

범위 및 쓰기

기본 사용자/저장소 범리는 재시작 및 Git 하위 디렉토리에서 시작할 때도 유지됩니다. 저장소를 이동하거나 다른 체크아웃을 사용하면 변경되며, 임시 --worktree 및 에이전트 격리 worktree도 포함됩니다. worktree 간에 알려진 범위를 재사용하려면 V2/OSS의 경우 scope.userId를, V3의 경우 scope.appId를 설정하십시오. 선택적 scope.agentId는 V2/OSS에만 적용됩니다. 범위 식별자는 제공자 측 접근 제어가 아닙니다.

검색은 기본적으로 읽기 전용입니다. 저장을 활성화하려면 memory.mem0 내부에 "enableWrites": true를 추가하고 대화형 CLI를 재시작한 후 Qwen에게 특정 콘텐츠를 저장하도록 요청하십시오. 자동으로 설치된 Hook은 YOLO 모드에서도 정확한 콘텐츠를 승인하도록 요청합니다. 거부하면 쓰기 요청이 전송되지 않습니다. 쓰기는 infer: false를 사용합니다.

PolarDB는 이러한 직접 가져오기에 대해 JSON으로 인코딩된 단일 사용자 메시지 배열을 반환할 수 있습니다. mem0-v2는 결과가 infer: false로 표시된 경우 해당 메시지의 정확한 텍스트를 복원합니다. 역사적 aliyun-polardb-mysql-2026-08 프리셋, 일반 텍스트 및 다른 프로토콜은 변경되지 않습니다.

비대화형/ACP 세션 및 Hook이 비활성화된 세션은 검색만 유지합니다. Bare/safe 모드, 신뢰할 수 없는/임시 폴더 및 SSH 워크스페이스는 이 로컬 바인딩을 활성화하지 않습니다. 워크스페이스 설정은 바인딩을 구성할 수 없습니다.

stored는 유효한 동기 ID가 반환되었음을 의미합니다. accepted는 비동기 요청이 수락되었음을 의미하며, 지속성이 완료되었음을 의미하지는 않습니다. failed는 확정적 거부를 의미합니다: 재시도하기 전에 보고된 원인을 수정하십시오. unknown은 쓰기가 발생했을 수 있음을 의미합니다: 자동으로 재시도하지 마십시오.

옵션 및 문제 해결

envKey의 기본값은 MEM0_API_KEY입니다. 이를 사용하여 다른 자격 증명 변수를 참조하고 위의 소스 중 하나를 통해 해당 값을 정의하십시오. 역사적 credentialEnv 필드는 호환되는 별칭으로 남아 있습니다. 두 필드가 모두 설정된 경우 이름이 일치해야 합니다. 충돌하는 이름은 자격 증명을 자동으로 선택하지 않고 오류를 발생시킵니다. timeoutMs의 기본값은 5000이며, 1에서 30000 사이입니다.

누락된 자격 증명 및 제공자 오류는 MCP 연결 상태를 확인하십시오. 타임아웃은 엔드포인트 라우팅, 소스 IP 화이트리스트 및 서비스 가용성을 확인해야 합니다. 401/403은 자격 증명과 선택된 프로토콜을 확인해야 합니다. 자격 증명을 로그나 이슈 보고서에 붙여넣지 마십시오.

소스 체크아웃의 경우 dist/mem0/main.js와 dist/mem0/write-confirmation.js가 존재하도록 한 번 빌드하고 번들링하십시오. 설치된 메인 패키지는 둘 다 제공합니다. 이 기능에는 변경 사항이 포함된 메인 CLI 릴리스가 필요합니다. 독립 실행형 Mem0 패키지를 게시할 필요는 없습니다.

Last updated on