Skip to content

Core concepts

  • Agent — the primary entity. Has a name/slug, an LLM (provider/model), an instruction (its task definition), an optional system_prompt (personality), an allowed toolset, and mounted skills. execution_mode is auto / manual / paused; status is active / archived.
  • Instruction & revisions — instruction edits land on a draft revision. They are NOT live until you deploy_agent, which activates the draft. get_agent shows instruction (active) plus draft_instruction / has_undeployed_draft.
  • Building blocks (reusable, org-scoped) the agent composes:
    • Code tool (code_tool) — a custom Python tool; params/description come from the code’s manifest.
    • Prompt — a reusable prompt template with {{variables}}. Optionally carries an extraction schema (fields, see prompt-fields) — when set, running it pulls structured fields out of input instead of generating free text.
    • Skill — a bundle of {instructions + a tool subset + reference material} an agent mounts by slug. Live immediately on create/update.
  • Integration — a connection to an external SaaS / MCP server (read-only here; connect new ones in the web UI — many need an interactive OAuth flow).
  • Chat — the unit of work. You start_chat with a message; the agent runs a turn. Success is recorded as outcomes (not a terminal status).
  • Outcome — an append-only record the agent emits when it completes a goal (status success / failed / partial, with a summary).
  • HITL — human-in-the-loop. A chat can pause awaiting approval or input; you answer with respond_to_hitl to resume it.