Skip to main content

AI plugin reference

These processors call a chat model, call tools on another MCP server and keep conversation history. LLM_CALL is in module llm-call, MCP_LIST_TOOLS and MCP_TOOL_CALL in mcp-tool-call, SESSION_MEMORY in session-memory. All option values support ${...} unless a row says otherwise. Write secrets as decrypted:<key>.

LLM_CALL

Calls a chat model and emits its answer. The node is blocking.
  • Output ports: default, or success and failure with routeByStatus.
  • Payload: {success, content, actions, usage{inputTokens, outputTokens}, latencyMs, model, cost?}. actions holds {tool, arguments, id} entries, also parsed from <agent_action> blocks. Metadata gains llmSuccess=true.
  • Budget: the ledger is shared by every LLM_CALL and MCP_TOOL_CALL node of the run (a budget with agent counts that agent apart). The check runs before a call and usage is added after it, so one call can overshoot. When exhausted, the next call fails like a failed call and failureMode applies; with hardStop: true it ends the whole run instead, and nothing retries, drops or routes it.
  • Default node timeout: (timeout + 1) * (retries + 1) + 5 seconds plus the backoff.
  • Server settings: yukta.llm.deny-input-patterns, yukta.llm.deny-output-patterns (lists of regular expressions; a match refuses the call) and yukta.llm.rate-limit.<provider> (requests per minute). See Configuration.
  • Errors: messages or prompt is mandatory; messages and/or prompt must yield at least one turn; timeout must be positive, got: <n>; retries must not be negative; allowAskInput must be true or false; routeByStatus requires failureMode: CONTINUE; LLM call failed: <cause>.

MCP_LIST_TOOLS

Lists the tools of a remote MCP server (streamable HTTP) so a model can choose among them.
  • Output port: default. Payload: {tools: [{name, description, inputSchema}], count}, replacing the incoming payload.
  • Paging: the node follows nextCursor for up to 50 pages and fails if the list does not end by then.
  • Default node timeout: timeout plus 5 seconds.
  • Errors: url is mandatory; url must be http(s), got: <url>; timeout must be positive, got: <n>.

MCP_TOOL_CALL

Calls a tool on a remote MCP server per message.
  • Output ports: default, or success and failure with routeByStatus.
  • Payload: {success, tool, text, content, structured, error}. Metadata gains mcpSuccess, mcpTool, mcpLatencyMs.
  • Approval: the wait is an input request of kind APPROVAL and risk HIGH, answered by a person; the decision reject refuses the call, any other approves it.
  • Control: a control-bus payload reset drops the cached MCP sessions.
  • Default node timeout: timeout plus 5 seconds, plus approvalTimeoutSeconds when requireApproval is set, plus the ask-input wait when allowAskInput is set.
  • Server settings: yukta.mcp-client.max-argument-bytes (default 65536) and yukta.mcp-client.deny-argument-patterns (regular expressions). The URL is checked against yukta.egress.*.
  • Errors: url and tool are mandatory; url must be http(s), got: <url>; MCP tool '<tool>' is not in allowedTools [...]; arguments must evaluate to a map; allowedTools must be a list of tool names; MCP tool <tool> failed: <error>; routeByStatus requires failureMode: CONTINUE.

SESSION_MEMORY

Chat memory per conversation id and workflow. Needs the control plane. History is per workflow: another workflow that knows the id cannot read it.
  • Output port: default. load outputs the payload (an object; other payloads become {input: payload}) plus history: [{role, content}], and sets metadata sessionId. append and delete pass the message through.
  • Storage: in memory by default and lost on restart; yukta.session-memory.max-sessions (default 10000, least recently used leave first) and yukta.session-memory.ttl apply. Storing state on disk (yukta.session-memory.dir) belongs to the Plus edition; see Licensing.
  • Errors: maxTurns must be positive, got: <n>.