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?