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

# Example prompts

> Copy-paste starter prompts that cover all four AgentMark generation types (object, text + tools, image, and speech), plus a runnable dataset for each.

Four working `.prompt.mdx` examples you can drop into your `agentmark/` directory and run with `agentmark run-prompt`. Each one covers a different generation type and a different AgentMark feature. Pick the closest to what you're building and adapt.

<Note>
  `npm create agentmark` bootstraps `agentmark.json`, an empty `agentmark/` directory, and MCP wiring. Copy any example below into `agentmark/` to get started.
</Note>

## Before you run these

All four examples assume a working local setup:

1. **A client file** (`agentmark.client.ts` for TypeScript, `agentmark_client.py` for Python) in your project root. `npm create agentmark` doesn't create one; ask your coding agent to "Set up AgentMark in this project," or follow [Client setup](/getting-started/client-setup). Without it, the development server exits with `Error: agentmark.client.ts not found in current directory.`
2. **The development server running** in a second terminal: `agentmark dev`.
3. **A provider API key** in `.env`. Every example below uses OpenAI models, so set `OPENAI_API_KEY`.

<Tabs>
  <Tab title="Object (party-planner)">
    Structured JSON output, schema validation, and a linked dataset with an eval. This is the canonical "extract this shape from text" prompt.

    **Demonstrates:** `object_config`, JSON schema validation, `test_settings.dataset`, `test_settings.evals` (`exact_match_json`).

    <Warning>
      `exact_match_json` references an eval **by name**. You have to register an eval with that name in your client's `evals` registry before `run-experiment` will score anything; unregistered eval names are silently skipped, so the run completes with no scores and no error. See [Writing evals](/evaluate/writing-evals) for the wiring.
    </Warning>

    ```mdx agentmark/party-planner.prompt.mdx theme={null}
    ---
    name: party-planner
    object_config:
      model_name: openai/gpt-5-mini
      schema:
        type: object
        properties:
          names:
            type: array
            description: "List of names of people attending the party."
            items:
              type: string
        required:
          - names
    test_settings:
      dataset: party.jsonl
      evals:
        - exact_match_json
      props:
        party_text: "We're having a party with Alice, Bob, and Carol."
    input_schema:
      type: object
      properties:
        party_text:
          type: string
          description: "A block of text describing the upcoming party and attendees."
      required:
        - party_text
    ---

    <System>
    Extract the names of all people attending the party from the following text. Respond with a list of names only.
    </System>

    <User>
    Text: {props.party_text}
    </User>
    ```

    ```jsonl agentmark/party.jsonl theme={null}
    {"input": {"party_text": "We're having a party with Alice, Bob, and Carol."}, "expected_output": "{\"names\": [\"Alice\", \"Bob\", \"Carol\"]}"}
    {"input": {"party_text": "The guest list includes Dave, Emma, and Frank."}, "expected_output": "{\"names\": [\"Dave\", \"Emma\", \"Frank\"]}"}
    {"input": {"party_text": "Join us for a celebration with Grace, Henry, and Isla."}, "expected_output": "{\"names\": [\"Grace\", \"Henry\", \"Isla\"]}"}
    ```

    ```bash Run it theme={null}
    # Single execution against the inline test_settings.props:
    agentmark run-prompt agentmark/party-planner.prompt.mdx

    # Full dataset with the exact_match_json eval:
    agentmark run-experiment agentmark/party-planner.prompt.mdx
    ```
  </Tab>

  <Tab title="Text + tools (customer-support)">
    A text-generation agent with tool use and a multi-call budget. Realistic shape for a support bot, knowledge-base lookups, or any agent that needs to chain tool calls before answering.

    **Demonstrates:** `text_config`, `tools:` (by name), `max_calls`, dataset for regression testing.

    <Warning>
      `tools: - search_knowledgebase` references a tool **by name**. You have to register the tool's implementation in your `agentmark.client.ts` (TypeScript) or `agentmark_client.py` (Python) before this prompt will execute end-to-end. See [Tools and agents](/build/tools-and-agents) for the wiring.
    </Warning>

    ```mdx agentmark/customer-support-agent.prompt.mdx theme={null}
    ---
    name: customer-support-agent
    text_config:
      model_name: openai/gpt-5-mini
      max_calls: 2
      tools:
        - search_knowledgebase
    test_settings:
      dataset: customer-query.jsonl
      props:
        customer_question: "I'm having trouble with my order. How long does shipping take?"
    input_schema:
      type: object
      properties:
        customer_question:
          type: string
          description: "The customer's question"
      required:
        - customer_question
    ---

    <System>
    You are a customer service agent for a company that sells products online. You are given a customer's question and you need to respond to the customer. You need to be friendly, professional, and helpful.

    You have access to the following tool:
    - search_knowledgebase: Search the company knowledgebase for information about shipping, warranty, and returns. Use this when customers ask about these topics.
    </System>

    <User>{props.customer_question}</User>
    ```

    ```jsonl agentmark/customer-query.jsonl theme={null}
    {"input": {"customer_question": "My package hasn't arrived yet. Can you help me track it?"}}
    {"input": {"customer_question": "I received the wrong item in my order. What should I do?"}}
    {"input": {"customer_question": "How do I return a product that I purchased last week?"}}
    ```

    ```bash Run it theme={null}
    # Make sure search_knowledgebase is registered in your client first.
    agentmark run-prompt agentmark/customer-support-agent.prompt.mdx
    ```
  </Tab>

  <Tab title="Image (animal-drawing)">
    DALL-E image generation with a single input prop. This is the smallest possible end-to-end image prompt.

    **Demonstrates:** `image_config`, `<ImagePrompt>` tag, single-prop interpolation.

    ```mdx agentmark/animal-drawing.prompt.mdx theme={null}
    ---
    name: animal-drawing
    image_config:
      model_name: openai/dall-e-3
      num_images: 1
      size: 1024x1024
    test_settings:
      dataset: animal.jsonl
      props:
        animal: "cat"
    ---

    <ImagePrompt>
    Draw a hyper-realistic picture of a {props.animal}
    </ImagePrompt>
    ```

    ```jsonl agentmark/animal.jsonl theme={null}
    {"input": {"animal": "cat"}, "expected_output": "A realistic picture of a cat"}
    {"input": {"animal": "dog"}, "expected_output": "A realistic picture of a dog"}
    {"input": {"animal": "bird"}, "expected_output": "A realistic picture of a bird"}
    ```

    ```bash Run it theme={null}
    agentmark run-prompt agentmark/animal-drawing.prompt.mdx --props '{"animal":"otter"}'
    ```
  </Tab>

  <Tab title="Speech (story-teller)">
    Text-to-speech with OpenAI's `tts-1-hd`. Notice the `<SpeechPrompt>` tag: speech config uses it instead of `<User>`.

    **Demonstrates:** `speech_config`, `<SpeechPrompt>` tag, voice/speed/output-format options.

    ```mdx agentmark/story-teller.prompt.mdx theme={null}
    ---
    name: story-teller
    speech_config:
      model_name: openai/tts-1-hd
      voice: "nova"
      speed: 1.0
      output_format: "mp3"
    test_settings:
      dataset: story.jsonl
      props:
        story: "Once upon a time, there was a cat who loved to play with a ball."
    ---

    <System>
    You are a storyteller for children. Make sure your story is engaging and interesting.
    </System>

    <SpeechPrompt>
    {props.story}
    </SpeechPrompt>
    ```

    ```jsonl agentmark/story.jsonl theme={null}
    {"input": {"story": "Once upon a time, the Moon woke up and found her glow missing! She floated around the sky asking stars, clouds, and even comets if they'd seen her light. It wasn't until she peeked into a mountain lake that she saw her glow shining back—hidden in her own reflection!"}}
    {"input": {"story": "Benny was no ordinary banana—he dreamed of becoming a superhero. One day, when a monkey slipped in the jungle and cried for help, Benny rolled into action, dodging vines and swinging from branches using his peel like a lasso."}}
    {"input": {"story": "In the town of Maplebrook, there was a library that whispered stories when no one was looking. Curious little Nia tiptoed in one rainy day and heard the books giggling softly."}}
    ```

    ```bash Run it theme={null}
    agentmark run-prompt agentmark/story-teller.prompt.mdx --props '{"story":"A whale who learned to fly."}'
    ```
  </Tab>
</Tabs>

## Wiring these into your project

Drop the `.prompt.mdx` file into `<your-project>/agentmark/` (the `agentmark/` directory `npm create agentmark` left empty). Drop the `.jsonl` dataset next to it. Then either run from the CLI as shown in each "Run it" block, or load by name from your SDK client.

If you ran `npm create agentmark` and then asked your AI tool to "Set up AgentMark in this project," the setup workflow has proposed the right SDK package and client file for your stack. The recipes above slot into that wiring directly.

## Next steps

<CardGroup cols={2}>
  <Card title="Create a prompt" icon="file-plus" href="/build/creating-prompts">
    Author your own .prompt.mdx files from scratch
  </Card>

  <Card title="Generation types" icon="sparkles" href="/build/generation-types/overview">
    Reference for text, object, image, and speech configs
  </Card>

  <Card title="Tools and agents" icon="wrench" href="/build/tools-and-agents">
    Wire tool implementations into prompts (used in customer-support)
  </Card>

  <Card title="Running experiments" icon="flask-vial" href="/evaluate/running-experiments">
    Datasets + evals (used in party-planner)
  </Card>
</CardGroup>

<div className="mt-8 rounded-lg bg-blue-50 p-6 dark:bg-blue-900/30">
  <h3 className="font-semibold mb-3">Have questions?</h3>
  <p className="mb-4">Reach out any time:</p>

  <ul>
    <li>
      Email the team at <a href="mailto:hello@agentmark.co" className="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200">[hello@agentmark.co](mailto:hello@agentmark.co)</a> for support
    </li>

    <li>
      Schedule an <a href="https://cal.com/ryan-randall/enterprise" className="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-200">Enterprise Demo</a> to learn about AgentMark's business solutions
    </li>
  </ul>
</div>
