# Overview

What an AI agent can do with Asterdoc, and where to start

Canonical URL: https://docs.asterdoc.com/ai/

Asterdoc gives an AI agent tools to work with forms and documents. With them, an agent can find a form, ask a person for the values it needs, check each answer, and return the finished document as a PDF. It can also read a filled PDF form back into data.

The tools run in your own application, inside the agent framework you already use.

## How the agent works

A form is an Asterdoc artifact: a definition of its fields, its parties, its rules, and how it renders. The agent never edits a PDF directly. It works on a draft of the form data, and Asterdoc checks every value against the artifact.

1. **Find the form.** `get_artifact` loads it from a registry, with instructions written for agents.
2. **Collect values.** `validate_input` checks each answer. `fill` starts a draft, and `update_fill` changes it.
3. **Ask the next question.** `get_fill_state` reports what is still missing and what to ask next.
4. **Return the document.** `render` produces the PDF, or Markdown for a preview.

There are ten tools in total. The [tool reference](/ai-tools) lists each one.

## Where to start

| You want to                                                               | Read                                          |
| ------------------------------------------------------------------------- | --------------------------------------------- |
| See an agent fill a form in a few minutes                                 | [Quickstart](/ai/quickstart)                  |
| Build an agent that collects a form through a conversation                | [Build an intake agent](/ai/intake-agent)     |
| Start from a PDF that a person already filled                             | [Read a filled PDF](/ai/read-a-filled-pdf)    |
| Run the agent in production                                               | [Prepare for production](/ai/production)      |
| Use a framework without an adapter, or no framework                       | [Use another framework](/ai/other-frameworks) |
| Let a coding assistant, such as Claude Code, write Asterdoc code with you | [Agent skills](/ai/skills)                    |

## Packages

| Package                 | For                                                         |
| ----------------------- | ----------------------------------------------------------- |
| `@asterdoc/ai-sdk`      | Vercel AI SDK                                               |
| `@asterdoc/tanstack-ai` | TanStack AI                                                 |
| `@asterdoc/mastra`      | Mastra                                                      |
| `@asterdoc/ai-tools`    | Any other framework, or plain code. Every adapter wraps it. |

Every adapter gives the same ten tools, with the same names and the same inputs and outputs. The [Adapters reference](/ai-tools/adapters) lists what each package exports.
