# Each upload keeps its chunking settings to itself

> Agno `POST /knowledge/content` now applies `chunker`, `chunk_size` and `chunk_overlap` to a private copy of the reader. Later uploads go back to the configuration on your `Knowledge` base.

- Published: 2026-10-29
- Author: Houyun Sun
- Categories: Changelog
- Canonical: https://www.agno.com/blog/each-upload-keeps-its-chunking-settings-to-itself
- Markdown: https://www.agno.com/blog/each-upload-keeps-its-chunking-settings-to-itself.md

One upload with custom chunking used to change how your Agno knowledge base chunked every upload after it. `POST /knowledge/content` wrote `chunker`, `chunk_size` and `chunk_overlap` onto the reader that the knowledge base shares across uploads.

The upload now gets its own shallow copy of the reader before those options apply, so the reader on your `Knowledge` keeps its configuration. The request stays the same.

```bash
curl -X POST "$AGENTOS_URL/knowledge/content" \
  -F file=@first.txt \
  -F reader_id=notes \
  -F chunker=FixedSizeChunker \
  -F chunk_size=1000 \
  -F chunk_overlap=0
```

We sent the same 27,489-byte file twice through that route against a `TextReader` with its default chunk size of 5000. The first upload asked for 1000, and the second named only the reader. A stand-in for the storage step ran the reader and reported its chunks, so no vector database was involved. Real output for the second upload:

```text
Before: second.txt: FixedSizeChunking chunk_size=1000 chunks=28
Now:    second.txt: FixedSizeChunking chunk_size=5000 chunks=6
```

See the [cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/07_knowledge/03_production/04_agent_os.py), and learn more about [chunking](https://docs.agno.com/knowledge/concepts/chunking/overview) in the documentation.
