Actions & Agents (Layer E)
Layer E makes a packet executable: it defines what an AI agent should do with the knowledge. A packet with actions[] + agent_instructions (plus Layers B/C/D) is L3. action_type, trigger_type, and step_type are closed vocabularies — an unrecognized verb is one no runtime can execute.
Action
| Field | Type | Notes |
|---|---|---|
id | string | Required |
action_type | enum | Required — see below |
trigger | object | Required — { trigger_type, schedule?, filter? } |
steps | ActionStep[] | Required, ≥ 1 |
name · description | string | |
entry_step_id | string | First step (defaults to steps[0]) |
inputs · outputs | object | Typed I/O declarations |
enabled | boolean | Default true |
Action types
research · analyze · synthesize · export · notify · enrich · validate ·
publish · sync · monitor · generate · classify · embed · indexTrigger types
manual · on_source_added · on_analysis_complete · on_export ·
scheduled · on_kb_change · webhook · on_gap_identifiedA scheduled trigger carries a cron schedule; any trigger may carry a filter (DirectiveCondition).
ActionStep
| Field | Type | Notes |
|---|---|---|
step_id | string | Required |
step_type | enum | Required — see below |
config | object | Step-type-specific (prompt, tool_name, url, condition_expr, loop_over, …) |
output_var | string | Variable to store output in (readable by later steps) |
retry | object | { max_attempts, backoff_ms } |
timeout_ms | integer | |
next_step_id | string |
Step types
llm_call · tool_call · http_request · condition · loop ·
parallel · emit_event · wait · transform · human_reviewAgent instructions
agent_instructions is the structured brief for the consuming LLM:
| Field | Notes |
|---|---|
persona | The agent's role |
system_prompt | Full prompt; {topic}, {domain}, {source_count} are template variables |
goal | One-sentence objective |
constraints | Hard rules the agent must never violate (e.g. "Never present contested findings as validated") |
allowed_tools | Permitted tool names |
output_format | Expected output shape |
temperature (0–2) · max_tokens · model_hints[] | Generation hints (e.g. ["claude-opus-4-8"]) |
→ Next: Knowledge Graph · Directives (Layer D)