> ## Documentation Index
> Fetch the complete documentation index at: https://docs.praison.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Markdown Agent

> Learn how to create AI agents for generating and formatting content in Markdown.

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
flowchart LR
    In[Request] --> Agent[Markdown Agent]
    Agent --> Out[Markdown Output]
    
    style In fill:#8B0000,color:#fff
    style Agent fill:#2E8B57,color:#fff
    style Out fill:#8B0000,color:#fff
```

Content generation agent that outputs properly formatted Markdown.

***

## Simple

**Agents: 1** — Single agent for content generation with Markdown formatting.

### Workflow

1. Receive content request
2. Generate content with LLM
3. Format output as Markdown

### Setup

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
pip install praisonaiagents praisonai
export OPENAI_API_KEY="your-key"
```

### Run — Python

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent

agent = Agent(
    name="MarkdownWriter",
    instructions="You are a Markdown agent. Output in proper Markdown format."
)

result = agent.start("Write a README for a Python web scraping project")
print(result)
```

### Run — CLI

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai "Write a README for a Python project"
```

### Run — agents.yaml

```yaml theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
framework: praisonai
topic: Documentation Generation
roles:
  markdown_writer:
    role: Markdown Content Specialist
    goal: Generate well-formatted Markdown content
    backstory: You are an expert technical writer
    tasks:
      write_docs:
        description: Write a README for a Python web scraping project
        expected_output: A complete README.md
```

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai agents.yaml
```

### Serve API

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent

agent = Agent(
    name="MarkdownWriter",
    instructions="You are a Markdown agent."
)

agent.launch(port=8080)
```

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
curl -X POST http://localhost:8080/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Write a changelog for version 2.0"}'
```

***

## Advanced Workflow (All Features)

**Agents: 1** — Single agent with memory, persistence, structured output, and session resumability.

### Workflow

1. Initialize session for document tracking
2. Configure SQLite persistence for content history
3. Generate content with structured output
4. Store in memory for iterative editing
5. Resume session for document updates

### Setup

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
pip install praisonaiagents praisonai pydantic
export OPENAI_API_KEY="your-key"
```

### Run — Python

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, Task, AgentTeam, Session
from pydantic import BaseModel

# Structured output schema
class Document(BaseModel):
    title: str
    sections: list[str]
    content: str

# Create session for document tracking
session = Session(session_id="docs-001", user_id="user-1")

# Agent with memory
agent = Agent(
    name="MarkdownWriter",
    instructions="Generate structured Markdown documents.",
    memory=True
)

# Task with structured output
task = Task(
    description="Write a README for a Python web scraping project",
    expected_output="Structured document",
    agent=agent,
    output_pydantic=Document
)

# Run with SQLite persistence
agents = AgentTeam(
    agents=[agent],
    tasks=[task],
    memory=True
)

result = agents.start()
print(result)

# Resume later
session2 = Session(session_id="docs-001", user_id="user-1")
history = session2.search_memory("README")
```

### Run — CLI

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai "Write a README" --memory --verbose
```

### Run — agents.yaml

```yaml theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
framework: praisonai
topic: Documentation Generation
memory: true
memory_config:
  provider: sqlite
  db_path: docs.db
roles:
  markdown_writer:
    role: Markdown Content Specialist
    goal: Generate structured Markdown content
    backstory: You are an expert technical writer
    memory: true
    tasks:
      write_docs:
        description: Write a README for a Python web scraping project
        expected_output: Structured document
        output_json:
          title: string
          sections: array
          content: string
```

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai agents.yaml --verbose
```

### Serve API

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent

agent = Agent(
    name="MarkdownWriter",
    instructions="Generate structured Markdown documents.",
    memory=True
)

agent.launch(port=8080)
```

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
curl -X POST http://localhost:8080/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Write a changelog", "session_id": "docs-001"}'
```

***

## Monitor / Verify

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai "test markdown" --verbose
```

## Cleanup

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
rm -f docs.db
```

## Features Demonstrated

| Feature           | Implementation                 |
| ----------------- | ------------------------------ |
| Workflow          | Single-step content generation |
| DB Persistence    | SQLite via `memory_config`     |
| Observability     | `--verbose` flag               |
| Resumability      | `Session` with `session_id`    |
| Structured Output | Pydantic `Document` model      |

## Next Steps

* [Single Agent](/agents/single) for basic content generation
* [Prompt Chaining](/features/promptchaining) for multi-step documents
* [Memory](/features/advanced-memory) for persistent context
