Skip to main content
Glama

Create asset character

create_asset_character
Destructive

Create an asset character in your fal Assets library by providing a name, description, and reference images for semantic matching and @mentions.

Instructions

Create an asset character for the authenticated user's fal Assets library. Prefer vector IDs or request IDs in reference_images for existing fal-generated assets; use fal-hosted image URLs only for standalone images. Unresolved ID references are materialized before character state is added.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoCharacter display name
accountNoExact private account key profile label, not an authenticated provider owner ID.
confirmNoSet true only when the user asked for exactly this action.
payloadNoComplete native JSON body, mutually exclusive with flat body flags and payload_file. Use schema for union bodies.
identifierNoOptional @mention identifier for the character
descriptionNoText description used for character semantic matching
payload_fileNoAbsolute regular non-symlink private JSON file, at most 1 MiB. Cannot mix with other body inputs.
Idempotency_KeyNoOptional idempotency key for safe request retries
cover_image_urlNoOptional fal-hosted cover image URL for the character
reference_imagesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changedv3.0.1
    • addedInput schema / $defs
      Added value: +{
      +  "reference_images": {
      +    "description": "Reference images for the character. Prefer vector IDs or request IDs for existing fal-generated assets. Use fal-hosted image URLs only for standalone images.",
      +    "items": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "maxItems": 20,
      +    "minItems": 1,
      +    "type": "array"
      +  }
      +}
    • changedInput schema / properties / confirm / description
      Previous value: -"Must be true for the requested mutation, paid work or private output file."New value: +"Set true only when the user asked for exactly this action."
    • addedInput schema / properties / payload / properties / reference_images / $ref
      Added value: +"#/$defs/reference_images"
    • removedInput schema / properties / payload / properties / reference_images / description
      Removed value: -"Reference images for the character. Prefer vector IDs or request IDs for existing fal-generated assets. Use fal-hosted image URLs only for standalone images."
    • removedInput schema / properties / payload / properties / reference_images / items
      Removed value: -{
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / payload / properties / reference_images / maxItems
      Removed value: -20
    • removedInput schema / properties / payload / properties / reference_images / minItems
      Removed value: -1
    • removedInput schema / properties / payload / properties / reference_images / type
      Removed value: -"array"
    • addedInput schema / properties / reference_images / $ref
      Added value: +"#/$defs/reference_images"
    • removedInput schema / properties / reference_images / description
      Removed value: -"Reference images for the character. Prefer vector IDs or request IDs for existing fal-generated assets. Use fal-hosted image URLs only for standalone images."
    • removedInput schema / properties / reference_images / items
      Removed value: -{
      -  "minLength": 1,
      -  "type": "string"
      -}
    • removedInput schema / properties / reference_images / maxItems
      Removed value: -20
    • removedInput schema / properties / reference_images / minItems
      Removed value: -1
    • removedInput schema / properties / reference_images / type
      Removed value: -"array"
  2. First observedv2.0.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=true, openWorldHint=true, idempotentHint=false), so the bar is lower. The description still adds real behavioral context beyond them: unresolved ID references are 'materialized before character state is added,' and creation is scoped to the authenticated user. It does not explain the confirm gate or the union-body/payload_file handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, then input-referencing rules, then materialization behavior. No filler, though the middle sentence is repeated almost verbatim in the schema $defs, slightly diluting value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and with 90% schema coverage the description plus schema cover most of what an agent needs. Gaps remain around the payload vs flat-flags vs payload_file mutual exclusion and the confirm flag, but those are documented in the schema itself rather than the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 90%, so the structured fields already document nearly every parameter, and the description's reference_images preference sentence largely duplicates the $defs description. Baseline 3 is appropriate: it adds little beyond what the schema already says for the 10 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create an asset character') plus its scope ('for the authenticated user's fal Assets library'). The verb immediately disambiguates it from the sibling list/get/update/delete_asset_character tools without the agent needing to open the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Offers input-level guidance ('Prefer vector IDs or request IDs in reference_images... use fal-hosted image URLs only for standalone images'), but never addresses tool selection: no when-to-use, when-not-to-use, or pointer to update_asset_character for modifications. Usage is only implied by the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.