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

# Create an agent

> Create agents, prompts, tools, skills, and conversation flows.

Create an agent when a project needs AI behavior tied to tools, prompts, or conversations.

## Agent catalog identity

The public agent catalog returns discoverable agents. A catalog item is not runnable by itself. It becomes a runnable project agent when you install it into a project or fork a template project into project source.

Use these fields for catalog behavior:

| Field              | Meaning                                                                                                                                                  |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `kind`             | The catalog identity kind. `template_agent` items are forkable project-agent templates. `installable_agent` items can be installed before use.           |
| `actions`          | The actions available to the current caller. Current project flows use `fork` for template agents and `install` for installable agents.                  |
| `template_project` | Present for `template_agent` items. Contains the project reference and source path used by the fork flow.                                                |
| `installability`   | Present when install state is project-contextual. Use it to show whether an installable agent can be installed, is already installed, or is unavailable. |

Catalog responses also include a normalized `card` for rendering discovery surfaces. Treat the card as metadata only: provider, version, availability, runtime mode, runtime service key, modes, skills, and tools.

Project agent lists return runnable project agents. Use `kind: "source_project_agent"` or `kind: "installed_project_agent"` plus `can_run` for behavior. Project agent lists also include `runtime_readiness` so clients can show whether an installed runtime-backed agent is ready, offline, unknown, or not applicable.

Runtime readiness does not replace authorization. Installed catalog agents still run through project access grants and run-scoped service-account tokens.

Agent run responses include `run_snapshot`, a durable projection of the selected project-agent identity, source/catalog provenance, runtime target, and requester.

## Steps

1. Define the agent and its purpose.
2. Attach prompts, tools, and skills.
3. Connect the agent to conversation flows when it needs chat state.
4. Expose project actions through MCP when assistants need tool access.

## Try it with REST

Create a minimal agent:

`POST /projects/{project_reference}/agents`

```bash title="Terminal" theme={null}
curl -X POST https://api.veryfront.com/projects/support-assistant/agents \
  -H "Authorization: Bearer $VERYFRONT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "triage-agent",
    "name": "Triage agent",
    "system_prompt": "Classify incoming support requests and suggest the next action."
  }'
```

## API surfaces

| Surface | Start here                                                                                                            |
| ------- | --------------------------------------------------------------------------------------------------------------------- |
| REST    | [Agents](/cloud/rest/api-reference/agents/list-agents), [Create Agent](/cloud/rest/api-reference/agents/create-agent) |
| GraphQL | [Project Agents](/cloud/graphql/operations/project-primitives/queries/projectagents)                                  |
| MCP     | [Create Agent](/cloud/mcp/tools/create-agent), [List Agents](/cloud/mcp/tools/list-agents)                            |

## Verify

List agents for the project and confirm `triage-agent` exists.

Open the agent source before connecting it to conversation flows.

## Agent resources

| Resource     | Use it for                                  |
| ------------ | ------------------------------------------- |
| Agent        | Runtime behavior and execution entry point. |
| Prompt       | Instructions and reusable prompt text.      |
| Tool         | Callable project or integration action.     |
| Skill        | Packaged behavior an agent can use.         |
| Conversation | Durable chat state and agent runs.          |

## API reference

| API                       | Use                                                 |
| ------------------------- | --------------------------------------------------- |
| [REST](/cloud/rest)       | Agents, prompts, tools, skills, and conversations.  |
| [GraphQL](/cloud/graphql) | Agent, primitive, and conversation views.           |
| [MCP](/cloud/mcp)         | Agent, prompt, tool, skill, and conversation tools. |
