Triggering a Fire-and-Forget Effect Agent Invocation

SkillAI & models

Lets your agent queue a Golem agent method to run in the background without waiting for its result.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Triggering a Fire-and-Forget Effect Agent Invocation skill

About this capability

Triggering a fire-and-forget CLI invocation on an Effect-based Golem agent. Use when asked to trigger, enqueue, or invoke an agent method without waiting using golem agent invoke --trigger.

What this skill tells your AI

The instructions your AI receives, as published by golemcloud/golem in golem-skills/skills/effect/golem-trigger-agent-effect/SKILL.md and read by ahel’s review.

Both golem and golem-cli can be used — all commands below work with either binary. Effect agents use the ordinary Golem CLI; do not replace a requested shell operation with an in-agent typed-client call.

Usage

golem agent invoke --trigger <AGENT_ID> <FUNCTION_NAME> [ARGUMENTS...]

The --trigger (or -t) flag submits the invocation and returns after Golem accepts it. The target method executes asynchronously; the command does not wait for its result or prove that its side effects are already visible.

Use trigger mode when the caller does not need the return value, such as for background work, long-running operations, fan-out, or notifications. Use regular golem agent invoke when the caller needs the method result or must know that the invocation finished.

Effect Agent Names and Arguments

For an agent declared with defineAgent and method:

  • The agent type name is exactly the name passed to defineAgent.
  • Constructor arguments follow the declaration order in id.
  • The function name is exactly the key declared in methods, including TypeScript casing.
  • Method arguments follow the declaration order in that method's input.

Do not infer the runtime name from an exported TypeScript binding or translate method names to snake_case. The generated Effect starter declares its counter with the exact runtime name Counter:

export const Counter = defineAgent({
  name: "Counter",
  id: { name: Schema.String },
  methods: {
    increment: method({
      input: {},
      success: Schema.Number,
    }),
  },
});

Trigger that starter agent as Counter("c1"), not CounterAgent("c1"):

golem agent invoke --trigger 'Counter("c1")' increment

CLI constructor and method arguments are positional values. Do not wrap them in the named input objects used by the Effect SDK client. For example, a method declared with input: { amount: Schema.Number } receives 5 from the CLI, not { amount: 5 }. If a declared parameter is itself a record, pass that record value as one shell argument.

Examples

Trigger a method with an argument

golem agent invoke --trigger 'MyAgent()' startBackgroundJob '"job-123"'

Trigger in a specific environment

golem agent invoke --trigger \
  'staging/MyAgent("user-123")' sendNotification '"Your order is ready"'

Trigger with an explicit idempotency key

golem agent invoke --trigger -i 'job-run-2026-07-19' \
  'BatchProcessor()' runDailyReport

Result and Idempotency

A triggered invocation returns its effective idempotency key, not the method's success value. Golem generates a key when none is supplied. Reusing an explicit key when retrying the command prevents that invocation from executing more than once.

Do not invoke the method again merely to verify that trigger mode returned: a second invocation changes state independently. When verification is required, wait or poll through a separate read-only method whose contract exposes the relevant state.

Available Options

OptionDescription
-t, --triggerTrigger without waiting for the method result
-i, --idempotency-key <KEY>Set an idempotency key; use "-" for an auto-generated key
--no-streamDisable live streaming of agent stdout, stderr, and logs
--schedule-at <DATETIME>Schedule for an ISO 8601 / RFC 3339 time; requires --trigger

If the component is not deployed and the command runs from its application directory, the CLI can automatically build and deploy it before submitting the invocation.

Effect CLI Value Syntax

Effect components report TypeScript as their source language, so agent IDs and method arguments use TypeScript syntax even though contracts are declared with Effect Schema:

  • Field names use camelCase.
  • Options use the raw value or undefined.
  • Records use { fieldOne: 1, fieldTwo: "hello" }.
  • Enums use "variant-name".
  • Variants use { tag: "variant-name", value: 42 }.
  • Tuples use [1, "hello"].
  • Results use { ok: value } or { error: value }.

Quote each structured value as one shell argument. String values need TypeScript string quotes inside the shell quotes:

golem agent invoke --trigger 'MyAgent("user-123")' sendEmail \
  '{ to: "alice@example.com", subject: "Hello", body: "World" }'

CLI Triggering vs Effect SDK Triggering

This skill covers invocation from a shell. Inside Effect agent code, a typed remote method instead provides remote.method.trigger(input), for example remote.increment.trigger({}). That returns a lazy Effect and must be executed by composing or yielding it. It is not an alternative CLI syntax for golem agent invoke --trigger.

Signals

GitHub stars
2k
Forks
211
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
golem-trigger-agent-effect
Source
github.com/golemcloud/golem