---
title: "Memory in DeepSeek and Windsurf"
description: "DeepSeek memory and Windsurf memory from official docs: what persists across sessions, which controls exist, and what changed in 2026."
canonical: https://past.dev/blog/deepseek-windsurf-memory
date: 2026-09-03
category: Research
authors: The past.dev team
---
# Memory in DeepSeek and Windsurf

Two products, two opposite answers. DeepSeek memory does not exist as a documented feature: DeepSeek's official pages describe chat history storage and a stateless API, and no page describes recall across conversations as of September 2026. Windsurf documents a real memories system for its Cascade agent, with local storage, rules files, and character limits stated in writing; in 2026 the same docs also mark that system legacy. The two halves below give the documented answer for each product.

## Does DeepSeek have memory?

No. Nothing in DeepSeek's official documentation describes a memory feature for the chat app at chat.deepseek.com as of September 2026. What the official material does establish:

- **Chat history is stored, without becoming memory.** The privacy policy (updated February 10, 2026) lists collected content including "text input, voice input, prompt, uploaded files, photos, feedback, chat history," kept "for as long as you have an account" ([DeepSeek Privacy Policy](https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html)). History is an archive you can reopen; no page describes distilling it into facts that shape later chats.
- **Within one conversation, continuity is the [context window](/glossary/context-window).** The model documentation lists a 1M token context length for the current DeepSeek-V4 models, with output capped at 384K tokens ([models and pricing](https://api-docs.deepseek.com/quick_start/pricing)). That is [session memory](/glossary/session-memory): it does not follow you into a new chat.
- **The API is documented stateless, twice.** The multi-round conversation guide states that "the server does not record the context of the user's requests," so the client must concatenate all previous conversation history into each request ([Multi-round Conversation](https://api-docs.deepseek.com/guides/multi_round_chat/)). The newer Responses API repeats the design: "responses and conversations are not stored on the server," and multi-turn use means resending the full history in the input field every time ([Responses API](https://api-docs.deepseek.com/api/create-response/)).

The gap is visible to users. An open issue on DeepSeek's own GitHub asks for persistent identity memory across sessions and a settings page to manage stored memories; it was opened in February 2026 and has no maintainer response as of September 2026 ([deepseek-ai/DeepSeek-V3 issue 1106](https://github.com/deepseek-ai/DeepSeek-V3/issues/1106)).

## DeepSeek's documented controls

Every control below comes from the [privacy policy](https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html):

- Chat history can be copied or deleted "via your settings."
- Account deletion is terminal: content and personal data cannot be retrieved afterward.
- Inputs may be used "to train and improve" DeepSeek's models. The documented opt-out is a request to privacy@deepseek.com rather than an in-app toggle.

For anyone building on the API, the consequence is plain: cross-session state is yours to store and resend. The server keeps nothing between calls.

## Windsurf memory: what Cascade documents

Windsurf documents an explicit memories system for its Cascade agent ([Memories and Rules](https://docs.windsurf.com/windsurf/cascade/memories)). Note the address before quoting it: as of September 2026 that page redirects to Cognition's documentation at docs.devin.ai, a consequence of Windsurf's 2025 acquisition. The content below quotes the live page.

Cascade persists context through two mechanisms:

- **Auto-generated memories.** Cascade creates memories from conversation when it judges context worth keeping, and you can request one directly by prompting it to "create a memory of ..." ([docs](https://docs.windsurf.com/windsurf/cascade/memories)). They are stored locally in ~/.codeium/windsurf/memories/, are associated with the workspace where they were created, are unavailable in other workspaces, and are never committed to your repository. Creating and using them consumes no credits. You browse and edit them through the Customizations panel in Cascade's menu, with an Edit button on each memory.
- **Rules.** Deliberate, file-based instructions with documented ceilings: a global file at ~/.codeium/windsurf/memories/global_rules.md capped at 6,000 characters, and per-workspace files under .devin/rules/ or .windsurf/rules/ capped at 12,000 characters per file ([docs](https://docs.windsurf.com/windsurf/cascade/memories)). AGENTS.md files are processed by the same rules engine: a root-level file behaves as always-on, and a subdirectory file applies to that directory. Rules carry four activation modes: Always On, Model Decision, Glob, and Manual.

The split matters for portability. Memories are local to one machine and one workspace; rules files sit in the repository and travel with it.

## The 2026 caveat: Windsurf marks memories legacy

The same documentation now opens with a warning: "Memories apply to the legacy Cascade agent only." The default agent for new tabs, Devin Local, does not persist memories, and the docs point people at a migration command, "Devin: Open Cascade Migration Wizard," to convert relied-on memories into skills ([docs](https://docs.windsurf.com/windsurf/cascade/memories)). So the durable path Windsurf documents today is rules files and AGENTS.md rather than the memory bank, and anyone evaluating the feature should first check which agent their tabs are running. We documented the neighboring system in [Cursor's memories](/blog/cursor-memory) for contrast: the same category of feature on a different lifecycle.

## For builders: memory that outlives one vendor's agent

DeepSeek gives builders nothing to persist, and Windsurf persists to one machine and one workspace while marking the mechanism legacy. If you are building your own agent and need memory as a service rather than as a feature of someone else's product, past.dev is that layer: POST /api/v1/ingest accepts raw text with its original timestamp, entity resolution links references to the same person across sources, and POST /api/v1/recall returns ranked, dated evidence with sources and one of four status values (Supported, Conflicted, NoKnownSupport, UnknownBecauseDegraded). Facts carry event time, validity windows, and supersession links; deployment is managed or self-hosted in your own Postgres. Start with the [Memory API quickstart](/docs/memory-api/quickstart) and the [benchmarks](/benchmarks).
