Original Reddit post

Folks, I really need your help. The problem is that claude-mem captures session data (visible in the web UI at localhost:37700) but never generates observations, the observations table in claude-mem.db stays empty. Environment:

  • Claude Code running in WSL2 (Ubuntu) on Windows 11
  • Custom API endpoint via ANTHROPIC_BASE_URL pointing to a DeepSeek API (DeepSeek-v4-flash model)
  • claude-mem plugin v13.3.0 installed on both Windows and WSL sides Observed behavior:
  • The claude-mem worker starts and runs without crashing
  • Session data (user prompts, tool calls) appears in the web UI
  • But no observations are ever stored in the SQLite database
  • The worker log repeatedly shows: SDK returned non-XML/empty response — ignoring queued batch Root cause analysis: claude-mem’s observation generation uses the Claude Agent SDK internally, which sends prompts to the configured Anthropic API endpoint and expects structured XML responses (wrapped in <observation> tags). Since ANTHROPIC_BASE_URL is pointed at a DeepSeek-compatible API, the SDK receives responses in DeepSeek’s format rather than the expected Claude XML format. The parser fails to extract structured observations and discards the batch. What I’ve tried:
  • Verified uvx is installed — ChromaDB connectivity is now healthy
  • Checked the SQLite database directly — observations table has zero rows
  • Confirmed the worker process is running and the web UI is accessible Is there a way to make claude-mem generate observations when using a non-Anthropic API provider (like DeepSeek), or is the Claude Agent SDK’s XML response parsing a hard requirement? Any workaround to decouple observation generation from the Claude API dependency? submitted by /u/Creative-Carpenter33

Originally posted by u/Creative-Carpenter33 on r/ClaudeCode