{"record":{"id":"24519db652993dd5","repo":"agentscope-ai/agentscope","slug":"f-unsupported-embedding-provider-provider","errorCode":null,"errorMessage":"f\"Unsupported embedding provider: {provider}\"","messagePattern":"f\"Unsupported embedding provider: (.+?)\"","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/agentscope/middleware/_longterm_memory/_mem0/_agentscope_adapter.py","lineNumber":435,"sourceCode":"            else with mem0's original error.\"\"\"\n            provider = values.data.get(\"provider\")\n            if provider == _AGENTSCOPE_PROVIDER:\n                return v\n            raise ValueError(f\"Unsupported LLM provider: {provider}\")\n\n    class _AgentScopeEmbedderConfig(EmbedderConfig):\n        \"\"\"``EmbedderConfig`` subclass that accepts the AgentScope\n        provider.\"\"\"\n\n        @field_validator(\"config\")\n        @classmethod\n        def validate_config(cls, v: Any, values: Any) -> Any:\n            \"\"\"Allow ``provider == \"agentscope\"``; reject everything\n            else with mem0's original error.\"\"\"\n            provider = values.data.get(\"provider\")\n            if provider == _AGENTSCOPE_PROVIDER:\n                return v\n            raise ValueError(\n                f\"Unsupported embedding provider: {provider}\",\n            )\n\n    return _AgentScopeLlmConfig, _AgentScopeEmbedderConfig\n","sourceCodeStart":417,"sourceCodeEnd":440,"githubUrl":"https://github.com/agentscope-ai/agentscope/blob/e90f1c7592896cc95f6e5ee506194f533378247d/src/agentscope/middleware/_longterm_memory/_mem0/_agentscope_adapter.py#L417-L440","documentation":"The embedder config subclass mirrors the LLM validator: only provider == 'agentscope' passes; any other value in the embedder block raises 'Unsupported embedding provider' during mem0 config validation.","triggerScenarios":"MemoryConfig(embedder={'provider': 'huggingface', ...}) or 'openai' while using the agentscope embedder config class; case/whitespace typos.","commonSituations":"Copying stock mem0 embedder dicts into an agentscope-based MemoryConfig.","solutions":["Set the embedder block's provider to 'agentscope'","Use build_mem0_config(chat_model=..., embedding_model=...) to generate valid blocks"],"exampleFix":"// before\nembedder={'provider': 'openai'}\n// after\nembedder={'provider': 'agentscope'}","handlingStrategy":"validation","validationCode":"assert embedder_block.get('provider') == 'agentscope', 'embedder provider must be \"agentscope\"'","typeGuard":null,"tryCatchPattern":"try:\n    MemoryConfig(**cfg)\nexcept ValueError as e:\n    if 'Unsupported embedding provider' in str(e):\n        cfg['embedder']['provider'] = 'agentscope'\n    else:\n        raise","preventionTips":["Validate both llm and embedder provider fields before constructing MemoryConfig"],"tags":["mem0","embedding","provider","config-validation"],"backgroundTag":"unsupported-provider-value","analyzedSha":"e90f1c7592896cc95f6e5ee506194f533378247d","analyzedAt":"2026-08-28T18:24:12.087Z","schemaVersion":2},"datasetVersion":"2026-08-28T21:17:43.275Z"}