Back to changelog
ImprovementFunctions

Call any function by name

External agents and the runtime dispatcher both resolve function calls by title, not just by `fn_<id>`. Schema-on-failure tells the caller what shape the function actually expects.

External agents calling myai over MCP can invoke any saved function by its title.

Title resolution

When a tool name does not match a known prefix or bare ID, the dispatcher searches the mirror's artifact index for a function with a matching title. Lowercase match, whitespace collapsed. The same fallback works for the runtime dispatcher and the external session API, so behavior is uniform across the two paths.

Schema-on-failure

If a function is found but the call's arguments do not match its schema, the response includes the function's actual parameter shape so the caller can correct and retry. Previously the call returned a generic "no implementation" error.

Forgiving prefixes

Dynamic tool names like fn_<id> and workflow_<id> route through the same five-tier resolver as the LLM dispatcher: declarations, prefix-strip, bare-ID, mirror-index, and title match. Voice agents and external orchestrators that build tool names from artifact references no longer hit dead ends.