> ## Documentation Index
> Fetch the complete documentation index at: https://phidatainc-agui.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Markdown Chunking

Markdown chunking is a method of splitting documents into smaller chunks of a specified size, with optional overlap between chunks. This is useful when you want to process large documents in smaller, manageable pieces.

<Steps>
  <Step title="Create a Python file">
    ```python markdown_chunking.py theme={null}
    import asyncio
    from agno.agent import Agent
    from agno.knowledge.chunking.markdown import MarkdownChunking
    from agno.knowledge.knowledge import Knowledge
    from agno.knowledge.reader.markdown_reader import MarkdownReader
    from agno.vectordb.pgvector import PgVector

    db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"

    knowledge = Knowledge(
        vector_db=PgVector(table_name="recipes_markdown_chunking", db_url=db_url),
    )

    asyncio.run(knowledge.ainsert(
        url="https://github.com/agno-agi/agno/blob/main/README.md",
        reader=MarkdownReader(
            name="Markdown Chunking Reader",
            chunking_strategy=MarkdownChunking(),
        ),
    ))
    agent = Agent(
        knowledge=knowledge,
        search_knowledge=True,
    )

    agent.print_response("What is Agno?", markdown=True)
    ```
  </Step>

  <Snippet file="create-venv-step.mdx" />

  <Step title="Install dependencies">
    ```bash theme={null}
    uv pip install -U agno sqlalchemy psycopg pgvector
    ```
  </Step>

  <Snippet file="run-pgvector-step.mdx" />

  <Step title="Run the script">
    ```bash theme={null}
    python markdown_chunking.py
    ```
  </Step>
</Steps>

## Markdown Chunking Params

<Snippet file="chunking-markdown.mdx" />
