Function Settings Reference
Fields available under Resources → Functions. Labels are as they appear in the app. For concepts, see Functions.
Common fields
| Field | Required | Description |
|---|
| Function Name | Yes | The tool name the model sees. For Local Python it must match the name of a function defined in the code. For skills: lowercase letters, digits and single hyphens, at most 64 characters. |
| Description | Yes | What the tool does and when to use it. The model reads this to decide whether to call the tool. Skills: at most 1,024 characters. |
| Function Type | Yes | Local (Python), MCP Stdio (Subprocess), MCP HTTP (SSE) or Skill (SKILL.md). Existing execution environment tools show their own type. |
| Approval Override | No | Inherit from risk appetite (default), Always require (pin) or Never require (pin). Team and agent pins take precedence over a function pin. A never-require pin can't skip approval for a critical-risk call unless the risk appetite bypasses all approvals. |
| Tags (comma-separated) | No | Labels for filtering and search. Shown as removable chips under Current Tags. |
The function's folder in the library tree is its path. New functions are created at /; drag a function onto a folder to move it.
Authority
On the create form and the Definition tab.
| Control | Description |
|---|
| Link Integration | Opens Link Integrations to Function to attach one or more integrations. Linked integrations appear as chips; click one to open it, or remove it with its delete icon. |
| Allowed Operations | Operations this function may call through the broker, picked from those the linked integrations declare. Empty means the function can't make brokered (credentialed) calls. A granted operation that has since been removed from the integration is shown with a warning icon; calls to it are refused. |
| Internal | The function authenticates to the FYAI platform itself as the caller (it calls FYAI's own API). The caller's identity is passed in jwt_claims, and internal MCP servers receive it as FYAI_API_TOKEN. Doesn't widen access to third-party integrations. |
Local (Python)
| Field | Required | Description |
|---|
| Code | Yes | Python source. Edited on the Definition tab in the Source editor, which shows the cursor line and column and whether there is an unsaved edit. Save saves; Save and run saves then runs the console. |
The parameter schema is derived from the function signature. See Creating Custom Functions.
Contract chips under the editor: parameter count, secret-shaped parameters, egress (brokered, direct egress, MCP, no network, unreadable), env fallback, and declared or undeclared operations.
MCP Stdio (Subprocess)
| Field | Required | Description |
|---|
| Command (e.g. npx) | Yes | Executable that starts the server, such as npx, uvx or python. |
| Arguments (JSON array e.g. ["-y", "pkg"]) | No | Arguments as a JSON array. On the Definition tab they're edited one per line. |
| Server Placement | No | Workspace — needs the session filesystem (default) or Stateless — wraps a remote API. Labelled Placement on the Definition tab. |
| .npmrc Content | No | Custom .npmrc for npm registry routing. Supports ${ENV_VAR} substitution. |
| Environment | No | Definition tab only. Key/value environment variables for the subprocess. A value of integration:<id>:<secret name> is replaced with that secret from a linked integration. |
MCP HTTP (SSE)
| Field | Required | Description |
|---|
| URL | Yes | The server endpoint. Labelled Endpoint on the Definition tab. |
| Headers (JSON object) | No | HTTP headers. {{SECRET_NAME}} placeholders are filled from linked integration secrets. Edited as key/value rows on the Definition tab. |
On the Definition tab of either MCP type, in Discovered tools:
| Control | Description |
|---|
| On | Expose or hide the tool. Hidden tools are removed from the model's tool list. |
| Kind | read or write, guessed from the tool name. |
| Approval | Per-tool inherit, never require or always require. |
| Hide write tools | Hides every write-kind tool. |
| Rediscover | Starts the server as one of your agents and refreshes the tool list. |
The Health card offers Retry start and Show full log.
Skill (SKILL.md)
| Field | Required | Description |
|---|
| SKILL.md | Yes | The skill body in Markdown, injected when the model activates the skill. |
| Field | Required | Description |
|---|
| Execution Environment | Yes | The execution environment whose tools this function exposes. |
| Control | Description |
|---|
| Killswitch (Active / Killed) | Killing the function prevents it being built or run anywhere until reactivated, and locks its configuration read-only. |
Actions
| Action | Description |
|---|
| Create | Save a new function. Back returns to the type chooser. |
| Update | Save changes. Only changed fields are sent. |
| Cancel | Discard unsaved edits. |
| Delete | Delete after confirmation. |
| Copy Function | Create a copy under a New Function Name, including linked integrations and allowed operations. |
| Create Data Source | Open Create Data Source from Function: Name, Description (optional), Attach integrations, Refresh mode (On demand or Scheduled (interval)), Interval (seconds) (minimum 60, default 900), Static arguments (JSON, optional). Create & Test creates it and runs a test fetch; Test again re-runs it. |
| Publish Template | Platform administrators only. Publish the current values as a platform template. |
| Import Skill | Tree header button. Upload a .zip, .tar.gz, .tgz or .tar archive, or give a public Git repository URL. |
Platform-managed functions (installed from a platform template) are read-only for everyone except platform administrators.
Test console
| Control | Description |
|---|
| Run as agent | The agent whose identity, integrations and execution environment the run uses. |
| Tool | Shown when the function exposes more than one tool. |
| Reload | Rebuild the function's tools. |
| I supply the arguments / Let the agent decide | Direct call with arguments, or a prompt to an agent that has only this function. |
| raw JSON | Enter arguments as a JSON object instead of the form. |
| Run | Run the test. |
| Result tabs | Output, Trace, Logs, Request. |
| Recent runs | Earlier runs from the console; click one to reload its arguments. |
See Testing Functions.