--title=Actor model: BECOME primitive

t-363.3·WorkTask·
·
·
Parent:t-363·Created1 month ago·Updated1 month ago

Dependencies

Description

Edit

Implement the BECOME primitive for changing actor behavior.

Overview

This is Phase 3 of the actor-native agent orchestration system. BECOME allows an actor to change how it responds to the next message it receives.

Requirements

Become Tool

Add a become tool to the agent toolset:

become:
  description: Change your behavior for the next message you receive
  parameters:
    prompt: New system prompt or instructions (required)
    tools: New tool whitelist (optional, defaults to current)
    context: Additional context to carry forward (optional)
    reason: Why you're changing behavior (for logging)

Behavior State

  • Store current behavior in actor state file
  • Behavior = system prompt + tool whitelist + context
  • On next message, load behavior from state

Behavior Changes

BECOME does NOT change:

  • Actor identity (actor_id stays the same)
  • Capabilities (can't expand via BECOME)
  • Customer relationships

BECOME DOES change:

  • System prompt for next message
  • Which tools are active (within capability limits)
  • Context/state carried forward

Use Cases

  • State machines: planning -> implementing -> reviewing
  • Iteration: process_item -> process_item -> done
  • Focus shift: "now review what you wrote"

Implementation Notes

Files to modify/create

  • Omni/Agent/Actor.hs - BECOME implementation, behavior state
  • Omni/Agent/Tools.hs - Add become tool
  • Omni/Agent/Engine.hs - Load behavior on message receipt

State Storage

  • _/actors/{actor_id}/behavior.json - current behavior
  • Updated when BECOME is called
  • Read at start of each message processing

Testing

  • Test behavior persists across messages
  • Test tool whitelist change works
  • Test capabilities still enforced after BECOME
  • Test context carried forward

Dependencies

  • Task: Actor model: Message passing infrastructure (messages trigger behavior)
  • Task: Actor model: CREATE primitive (actor state infrastructure)

References

  • Spec: _/llm/actors.md (BECOME primitive, Behaviors section)

Timeline (2)

🔄[human]Open → InProgress1 month ago
🔄[human]InProgress → Done1 month ago