Skip to main content
Glama

flexsim_create_any

Create a FlexSim object by trying candidate classes in order, returning the first that works or detailed errors and hints. Useful when the exact class is uncertain.

Instructions

Create one object trying candidate classes in order (window backend only). # LIB-people

Solo ventana (require_gui). Prueba cada clase en orden con Object.create
+ name + setLocation + properties (roundtrip como create_objects:
o.setProperty + _fs_literal en el mismo script) + return o.name
verificado; al primer exito devuelve {name, class, created:true,
attempts:[{class, ok, detail}]}. Si todas fallan devuelve {created:false,
attempts:[...errores reales...], hint:"ver clases con
flexsim_library_list"}. Maneja duplicados como create_objects (SKIP sin
overwrite, destroy con overwrite).

Vecina leida: flexsim_create_objects (roundtrip de properties +
SKIP/destroy por duplicado) y flexsim_person_create (caso simple de una
sola clase; la via recomendada ahora es library_list + create_any).

Ejemplo people: candidates=["Person", "Staff", "Operator"] (Operator SI
funciona como fallback documentado, verificado en AGENTE_FLEXSIM.md sec 4;
Person/Staff no verificadas, se prueban en orden).

Args:
    candidates: 1-8 clases no vacias en orden de intento.
    name: nombre unico (solo letras, digitos, _).
    x, y, z: posicion en metros (default 0, 0, 0).
    properties: dict de setProperty (roundtrip como create_objects;
        ArrivalStyle/FlowItemClass bloqueados).
    overwrite: si True destruye el objeto previo con el mismo nombre.

Returns JSON {name, class, created:true, attempts} o {name,
created:false, attempts, hint} con errores reales de FlexSim, sin mentir.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: it discloses duplicate handling (SKIP without overwrite, destroy with overwrite), blocked properties (ArrivalStyle/FlowItemClass), the ordered attempt loop with real errors ('sin mentir'), the require_gui constraint, and both success and failure return shapes. This is well beyond what the schema exposes.

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

Conciseness2/5

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

The content is padded with bilingual duplication (e.g., 'Solo ventana (require_gui)' restated as 'window backend only'), an internal '# LIB-people' heading, file/version references, and a 'Vecina leida' digression. It is not front-loaded cleanly and the Spanish/English interleaving hurts scannability, even though most sentences carry some information.

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?

For a multi-parameter creation tool with no annotations, coverage is close to complete: it explains fallback, duplicates, property roundtrip, error surfacing, and points to library_list for valid classes. An output schema exists, so its return-value explanation is bonus rather than necessary. The only gap is what happens when the GUI backend is unavailable, which is implied rather than stated.

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

Parameters5/5

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

Schema description coverage is negligible, but the description documents every parameter: candidates (1-8, non-empty, attempt order), name (unique, letters/digits/underscore), x/y/z (meters, default 0,0,0), properties (setProperty roundtrip with blocked keys), and overwrite (destroys prior object of same name). The blocked-key detail is not derivable from the schema, so it adds genuine value.

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

Purpose4/5

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

States a specific verb and resource with a distinctive strategy: 'Create one object trying candidate classes in order (window backend only).' It explicitly contrasts against siblings flexsim_create_objects and flexsim_person_create, so an agent can tell it apart. It falls short of a 5 only because the mixed-language, rambling framing makes the core purpose slightly harder to extract than a crisp one-liner would.

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

Usage Guidelines5/5

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

Gives explicit when-to-use context ('Solo ventana (require_gui)'), the ordered-fallback workflow, and names alternatives: flexsim_create_objects for roundtrip/SKIP semantics and flexsim_person_create for the single-class case, noting the recommended path is now library_list + create_any. It even states the failure route ('ver clases con flexsim_library_list').

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

Deploy Server

Other Tools