Skip to content

Agents overview

What an agent is, the agent roster, trigger types, and when to use an agent vs. a skill.

Last updated: 2026-04-30

Agents overview

An agent is the operational unit in Flexor. It watches for a trigger, executes a task sequence using skills, and produces a result. Agents are what operators run, monitor, and tune over time.

What makes an agent different from a skill

Skills are reusable units of work - stateless, composable, and invokable. Agents are processes - they run on their own, respond to external events, and have operational properties like schedules, retry policies, and audit trails.

A skill answers: “how do we do this?”
An agent answers: “when do we do this, and what do we do when it goes wrong?”

Agent anatomy

name: feed-monitor
version: "1.0"
description: "Monitor critical data feeds for freshness. Alert on stale feeds."
owner: "ops-team"

trigger:
  type: schedule
  cron: "*/30 * * * *"

environment: production

retry:
  max_attempts: 2
  backoff_seconds: 60

tasks:
  - skill: data-freshness-check
    args:
      feed_name: "equity-prices"
      max_age_minutes: 30
    capture: result

  - condition: "{{ !result.is_fresh }}"
  - skill: core.notify.slack
    args:
      channel: "#data-ops"
      message: "equity-prices is {{ result.staleness_minutes }} min stale."
  - end_condition

  - skill: core.audit.log
    args:
      event: "feed_freshness_check"
      result: "{{ result }}"

Trigger types

TypeWhen it firesUse case
scheduleCron expressionRecurring checks, periodic reports
eventPlexiFact data event (feed update, anomaly flag)React to data changes in real time
webhookHTTP POST to an agent-specific endpointTriggered by external systems (portfolio system, risk platform)
manualExplicitly invoked via CLI or dashboardOn-demand runs, testing, one-off operations

The agent roster

The agent roster is the set of agents configured in a vault. Viewing the roster:

flexor agents list

Output:

NAME              TRIGGER     ENVIRONMENT  STATUS   LAST RUN
feed-monitor      schedule    production   active   2026-04-30 14:30 UTC
weekly-nav-report schedule    production   active   2026-04-28 08:00 UTC
lp-notice         webhook     production   active   2026-04-25 11:15 UTC
recon-check       event       staging      paused   2026-04-22 09:00 UTC

When to use an agent vs. a skill

Use an agent when:

  • The work needs to happen on a schedule or in response to an event
  • The work has multiple steps that need sequencing and error handling
  • The work needs to be monitored, logged, and audited
  • The outcome of the work affects other systems (sends messages, creates tickets)

Use a skill when:

  • You are defining a reusable capability to be called by agents or other skills
  • The work is a single logical operation (query, transform, check, format)
  • You want to compose the capability with others in different contexts

The distinction matters for operations: agents appear in your monitoring dashboard, have run histories, and generate audit log entries. Skills are invisible at the operational level - they execute inside agents but do not appear as independent operational entities.

Agent metadata fields

FieldTypeRequiredDescription
namestringYesUnique agent name. Snake_case.
versionstringYesSemantic version.
descriptionstringYesOne sentence. Shown in the agent roster.
ownerstringNoTeam or individual responsible. Used in alert routing.
triggerobjectYesTrigger configuration. See trigger types above.
environmentstringYes"sandbox" | "staging" | "production"
retryobjectNoRetry policy for task failures.
tasksarrayYesOrdered list of skill invocations and conditions.
pausedbooleanNoIf true, agent will not fire even if its trigger condition is met.

Was this page helpful?

Edit on GitHub