Programs, Agent methods, and tools

Programs are maintained Python packages. They contain deterministic helpers, model requests, and orchestration. These responsibilities do not require separate decorator types.

Authoring and context

Agent subclasses use ordinary methods. The framework establishes call scopes and derives Context automatically. Model configuration belongs to Agent. Parent inheritance, named content, evaluation, and history visibility belong to Context.

The unified Agent and Context contract owns the public class API and execution lifetime. This page defines Program and tool boundaries without duplicating that contract.

Tools and entry registration

A recorded method is not automatically a tool. Agent.method_options can explicitly register a method with tool=True. Registered Program sources list public entries in PROGRAM_ENTRIES. Explicit metadata preserves public names and input forms.

Deterministic tools registered through function() use the same existing registry. Authorization applies independently of call recording and history visibility.

Skills and ordinary code

Skills supply instructions. They do not create executable entry identity by themselves. Programs supply source code and registered callable entries. Ordinary helpers preserve normal Python behavior.

Method behavior

Agent remains an adapter for existing entry metadata, tool registration, and explicit durable steps. It is not required for new Agent methods or managed ordinary functions.

Implementation status

First-party class migrations and the unified execution components are under review. Verification status is maintained in the central design status. Installed App acceptance requires separate evidence.