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

# Agent Blueprints

> Agent source validation and direct resource authoring. Checkfu has no Blueprint package install lifecycle.

Checkfu does not install packages. There is no AgentBlueprint release, BlueprintInstallation journal, or `blueprint apply` step. You configure Checkfu by writing the resources you need through the ordinary API, SDK, CLI, MCP tools, or console.

What remains is stateless validation of Agent source, and direct Agent authoring with immutable AgentVersions. The CLI commands named here are private-alpha artifacts. Read [CLI access](/getting-started/cli-access) before using them.

## What you use instead

| You want to | Use |
| - | - |
| Check Agent source before sending it | `agentBlueprints.validateSource`, or `checkfu agent info` and `checkfu agent compile` locally |
| Create or change an Agent | Agent create and update, or `checkfu agent plan` and `checkfu agent apply` |
| Keep a record of what a Session ran | The immutable AgentVersion that Session admission froze |
| Set up Budgets, grants, Connections, Automations, or Memory | Their own create operations in the API, SDK, CLI, or console |
| Describe a multi-step Automation | An AutomationGraph |

## Validate Agent source

`agentBlueprints.validateSource` checks Agent configuration source and returns diagnostics. It stores nothing, claims no resource, and does not contact a live Workspace for ownership. In the TypeScript SDK it is `checkfu.agentBlueprints.validate(organizationId, body, options?)`. See the [TypeScript SDK](/reference/typescript-sdk).

For local work, `checkfu agent info` shows what the compiler reads from a project, and `checkfu agent compile` writes an inspectable generation under `.checkfu`. Neither command writes to a Workspace. The loop is in [Author an Agent project](/guides/author-an-agent-project).

## Author an Agent directly

An Agent is reusable mutable configuration. A material change creates the next immutable AgentVersion. A Session resolves and freezes the AgentVersion and Environment at admission, so a later edit never rewrites a running Session.

You can write an Agent in three ways:

* Call Agent create and update from the API, SDK, or MCP tools.
* Run `checkfu agent create` and `checkfu agent update` with `--input`.
* Keep an Agent project in Git and run `checkfu agent plan` and `checkfu agent apply`. Pass `--agent-id` to bind the directory to an existing Agent. Without it, `apply` creates a new Agent and prints its ID.

`agent plan` and `agent apply` are client-side work over the same create and update operations. Reapplying an unchanged project creates no new AgentVersion.

## Resources `agent apply` does not manage

`agent apply` writes Agent configuration only. No command applies Budgets, PermissionAssignments, ActionPolicies, Connections, Automations, or Memory declarations from a file. Create each of them through its own operation, then reference it from the Agent or Session that needs it.

Keep credential values out of source files, plans, and compiled output. A Connection authorizes through its own write-only path.

## Authoring authority

The UI, HTTP API, SDK, CLI, and MCP all call the same canonical resource operations. A file, repository, or local plan does not reserve a resource or acquire runtime authority. Authentication, authorization, optimistic concurrency, and resource-specific policy govern each write.

Agent source authoring has no server-side plan, review, approval, drift, or transfer resource. Your repository CI owns review and merge policy. When a write conflicts, reload the resource, merge your change, and submit again with a new idempotency key. Replay the same body and key only to recover a lost response.

For AutomationGraph composition, use the separately registered AutomationGraph operations. An AutomationGraph does not fire an Automation or execute an Agent. Automation and Session keep those authorities.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.