Agents Package Cheatsheet
Root namespace:Cognesy\Agents
This file is a quick, code-aligned map of the package surface.
For narrative guidance and examples, use packages/agents/docs/*.md.
1. Core Loop
AgentLoop(readonly)- main orchestrator, implements
CanControlAgentLoopandCanAcceptEventHandler - key API:
default(),execute(),iterate() - accessors:
tools(),toolExecutor(),driver(),eventHandler(),interceptor() - composition API:
withTool(),withTools(),withDriver(),withToolExecutor(),withInterceptor(),withEventHandler(),with() - event API:
wiretap(),onEvent() - note: terminal executions are auto-reset on entry to
execute()/iterate()
- main orchestrator, implements
CanControlAgentLoop- contract:
execute(AgentState): AgentState,iterate(AgentState): iterable
- contract:
2. State Model
Data\AgentState- immutable runtime state
- factories:
empty(),fromArray() - identity:
agentId(),parentAgentId(),llmConfig(),executionCount(),createdAt(),updatedAt() - common mutators:
withUserMessage(string|\Stringable|Message),withSystemPrompt(string|\Stringable),withMetadata(),withMessages(),withMessageStore(),withLLMConfig(),with() - step mutators:
withCurrentStep(),withCurrentStepCompleted(),withExecutionCompleted(),withExecutionContinued() - stop/failure:
withStopSignal(),withFailure(),withExecutionStatus() - context access:
context(),store(),messages(),metadata() - result access:
finalResponse(),currentResponse(),hasFinalResponse() - execution access:
execution(),status(),stepCount(),steps(),usage(),errors(),hasErrors() - last-step accessors:
lastStep(),lastStepExecution(),lastStepToolExecutions(),lastToolExecution(),lastStepErrors(),lastStepType(),lastStepUsage(),lastStepDuration(),lastStopSignal(),lastStopReason(),lastStopSource() - control:
shouldStop(),forNextExecution() - serialization:
debug(),toArray(),fromArray()
Data\ExecutionState- per-execution transient state (
executionId, status, steps, continuation)
- per-execution transient state (
Data\AgentStep- one loop step snapshot (
inputMessages,outputMessages,inferenceResponse,toolExecutions,errors)
- one loop step snapshot (
Data\StepExecution- completed step wrapper with timing
Data\ToolExecution- one executed tool call (
value(),hasError(),errorAsString(),wasBlocked())
- one executed tool call (
Data\ExecutionBudget- optional limits:
maxSteps,maxTokens,maxSeconds,maxCost,deadline - factories:
unlimited() - queries:
isEmpty(),isExhausted()
- optional limits:
Data\AgentId,Data\ExecutionId,Data\AgentStepId,Data\ToolExecutionId- typed ID value objects
3. Enums
Enums\ExecutionStatus—Pending,InProgress,Completed,Stopped,FailedEnums\AgentStepType—ToolExecution,FinalResponse,Error
4. Collections
Collections\Tools- immutable named tool collection
- key API:
has(),get(),names(),all(),count(),isEmpty(),descriptions(),withTool(),withTools(),withToolRemoved(),merge(),toToolSchema(): ToolDefinitions
Collections\AgentStepsCollections\StepExecutionsCollections\ToolExecutionsCollections\NameList
5. Tools
Contracts
Tool\Contracts\ToolInterfaceuse(mixed ...$args): ResulttoToolSchema(): ToolDefinitiondescriptor(): CanDescribeTool
Tool\Contracts\CanDescribeToolname(),description(),metadata(),instructions()
Tool\Contracts\CanExecuteToolCallsexecuteTools(ToolCalls, AgentState): ToolExecutions
Tool\Contracts\CanAccessAgentStateTool\Contracts\CanAccessToolCallTool\Contracts\CanManageTools
Base classes
Tool\Tools\SimpleToolTool\Tools\ReflectiveSchemaToolTool\Tools\FunctionToolTool\Tools\StateAwareToolTool\Tools\BaseToolTool\Tools\ContextAwareToolTool\Tools\FakeTool
Runtime
Tool\ToolExecutorTool\ToolRegistryTool\ToolDescriptor
6. Drivers
Drivers\CanUseToolsDrivers\CanAcceptToolRuntimeDrivers\ToolCalling\ToolCallingDriver(default)Drivers\ToolCalling\ToolExecutionFormatterDrivers\ReAct\ReActDriverDrivers\Testing\FakeAgentDriverDrivers\Testing\ScenarioStep
7. Context
Context\AgentContextContext\CanCompileMessagesContext\CanAcceptMessageCompilerContext\ContextSections
Context\Compilers\ConversationWithCurrentToolTrace(default)Context\Compilers\AllSectionsContext\Compilers\SelectedSections
8. Continuation / Stop
Continuation\StopReasonContinuation\StopSignalContinuation\StopSignalsContinuation\ExecutionContinuationContinuation\AgentStopException
9. Hooks / Interception
Hook\Contracts\HookInterfaceHook\Data\HookContextHook\Data\RegisteredHookHook\Collections\RegisteredHooksHook\Enums\HookTrigger- values:
BeforeExecution,BeforeStep,BeforeToolUse,AfterToolUse,AfterStep,OnStop,AfterExecution,OnError
- values:
Hook\Collections\HookTriggersHook\HookStack
Hook\Hooks\CallableHookHook\Hooks\StepsLimitHookHook\Hooks\TokenUsageLimitHookHook\Hooks\ExecutionTimeLimitHookHook\Hooks\FinishReasonHookHook\Hooks\ApplyContextConfigHook
Interception\CanInterceptAgentLifecycleInterception\PassThroughInterceptor
10. Builder / Capabilities
Builder\AgentBuilderBuilder\AgentConfiguratorBuilder\Contracts\CanProvideAgentCapabilityBuilder\Contracts\CanConfigureAgentBuilder\Contracts\CanComposeAgentLoopBuilder\Contracts\CanProvideDeferredToolsBuilder\Collections\DeferredToolProvidersBuilder\Data\DeferredToolContext
Capability\AgentCapabilityRegistryCapability\CanManageAgentCapabilities
Capability\Core\UseLLMConfigCapability\Core\UseGuardsCapability\Core\UseToolsCapability\Core\UseToolFactoryCapability\Core\UseHookCapability\Core\UseDriverCapability\Core\UseDriverDecoratorCapability\Core\UseContextCompilerCapability\Core\UseContextCompilerDecoratorCapability\Core\UseContextConfigCapability\Core\UseReActConfig
Capability\Bash\UseBashCapability\File\UseFileTools- installs:
read_file,write_file,edit_file - standalone file tools also available:
SearchFilesTool,ListDirTool
- installs:
Capability\Metadata\UseMetadataToolsCapability\Subagent\UseSubagentsCapability\PlanningSubagent\UsePlanningSubagentCapability\StructuredOutput\UseStructuredOutputsCapability\Summarization\UseSummarizationCapability\SelfCritique\UseSelfCritiqueCapability\Skills\UseSkillsCapability\Tasks\UseTaskPlanningCapability\Tools\UseToolRegistryCapability\ExecutionHistory\UseExecutionHistoryCapability\Retrospective\UseExecutionRetrospectiveCapability\Broadcasting\UseAgentBroadcasting
11. Broadcasting
Broadcasting\AgentEventBroadcasterBroadcasting\AgentBroadcastObserverBroadcasting\BroadcastConfigBroadcasting\CanBroadcastAgentEvents
12. Templates
Template\Data\AgentDefinition- core fields:
name,description,systemPrompt,label,llmConfig,capabilities,tools,toolsDeny,skills,budget,metadata - tool semantics:
tools === nullmeans inherit all available tools
- core fields:
Template\AgentDefinitionLoaderTemplate\AgentDefinitionRegistryTemplate\Contracts\CanManageAgentDefinitionsTemplate\Contracts\CanInstantiateAgentLoopTemplate\Contracts\CanInstantiateAgentStateTemplate\Parsers\CanParseAgentDefinitionTemplate\Factory\DefinitionStateFactoryTemplate\Factory\DefinitionLoopFactory- parsers:
Template\Parsers\MarkdownDefinitionParser,JsonDefinitionParser,YamlDefinitionParser
13. Sessions
Core:Session\Data\SessionIdSession\Data\AgentSessionInfoSession\Data\AgentSession- access:
info(),definition(),state(),sessionId(),status(),version()
- access:
Session\SessionFactorySession\SessionRepositorySession\SessionRuntime
Session\Contracts\CanManageAgentSessionsSession\Contracts\CanExecuteSessionActionSession\Contracts\CanStoreSessionsSession\Contracts\CanControlAgentSession
Session\Store\InMemorySessionStoreSession\Store\FileSessionStore
Session\Actions\SendMessage(acceptsstring|\Stringable|Message)Session\Actions\ForkSession(returns a new branch session object; persist via repositorycreate())Session\Actions\ResumeSessionSession\Actions\SuspendSessionSession\Actions\ClearSessionSession\Actions\ChangeModelSession\Actions\ChangeSystemPrompt(acceptsstring|\Stringable)Session\Actions\WriteMetadataSession\Actions\UpdateTask
Session\Enums\SessionStatus—Active,Suspended,Completed,Failed,DeletedSession\Enums\AgentSessionStage—AfterLoad,AfterAction,BeforeSave,AfterSave
Session\SessionHookStackSession\RegisteredSessionHookSession\PassThroughSessionControllerSession\Collections\SessionInfoList
Session\Exceptions\SessionNotFoundExceptionSession\Exceptions\SessionConflictExceptionSession\Exceptions\InvalidSessionFileException
14. Events
Agent events include:AgentExecutionStarted,AgentStepStarted,AgentStepCompletedAgentExecutionStopped,AgentExecutionCompleted,AgentExecutionFailedAgentStateUpdatedContinuationEvaluated,StopSignalReceived,TokenUsageReportedToolCallStarted,ToolCallCompleted,ToolCallBlockedInferenceRequestStarted,InferenceResponseReceivedSubagentSpawning,SubagentCompletedHookExecuted,DecisionExtractionFailed,ValidationFailedEvents\AgentEvent(base class)
Events\Support\AgentEventConsoleFormatterEvents\Support\AgentEventConsoleObserver
SessionLoaded,SessionActionExecuted,SessionSavedSessionLoadFailed,SessionSaveFailed
15. Exceptions
Exceptions\AgentException(base)Exceptions\AgentNotFoundExceptionExceptions\InvalidToolExceptionExceptions\InvalidToolArgumentsExceptionExceptions\ToolCallBlockedExceptionExceptions\ToolExecutionBlockedExceptionExceptions\ToolExecutionException
16. Skills
Capability\Skills\Skill- immutable skill value object
- standard fields:
name,description,license,compatibility,metadata,allowedTools,body,path,resources - extension fields:
disableModelInvocation,userInvocable,argumentHint,model,context,agent - key API:
render(?string $arguments),renderMetadata(),toArray() - argument substitution:
$ARGUMENTS,$ARGUMENTS[N],$Nplaceholders
Capability\Skills\SkillLibrary- discovers
SKILL.mdfiles in<path>/<skill-name>/SKILL.md - lazy-loads skill content on first access, caches result
- key API:
listSkills(modelInvocable, userInvocable),hasSkill(),getSkill(),renderSkillList() - resource discovery: scans
scripts/,references/,assets/,examples/subdirs
- discovers
Capability\Skills\LoadSkillTool- tool exposed to LLM:
load_skill(skill_name, list_skills, arguments) - user-invocable filtering on list mode
- tool exposed to LLM:
Capability\Skills\AppendSkillMetadataHook- injects skill names/descriptions as system message before first step
- filters out
disable-model-invocation: trueskills
Capability\Skills\TrackActiveSkillHook- tracks active skill metadata (allowed-tools, model) in state after
load_skillcompletes
- tracks active skill metadata (allowed-tools, model) in state after
Capability\Skills\SkillToolFilterHook- enforces
allowed-toolsrestrictions; blocks non-allowed tools (exceptload_skillitself)
- enforces
Capability\Skills\SkillModelOverrideHook- overrides LLMConfig when a skill with a
modelfield is active
- overrides LLMConfig when a skill with a
Capability\Skills\SkillForkExecutor- executes skills in a forked agent loop context
Capability\Skills\SkillPreprocessor- executes
!command“ patterns in skill body before argument substitution - configurable working directory and timeout
- opt-in: pass to
UseSkillsorLoadSkillToolconstructor
- executes
Capability\Skills\UseSkills- capability that wires
LoadSkillTool+ hooks into agent - optional
?SkillPreprocessorfor shell preprocessing
- capability that wires
- follows Agent Skills Open Standard (30+ tools)
17. Testing
Drivers\Testing\FakeAgentDriver- scripted loop steps via
ScenarioStep - best for most deterministic agent-loop tests
- scripted loop steps via
Tests\Support\FakeInferenceDriver- queued raw
InferenceResponseor streamingPartialInferenceDeltafixtures - use when the test sits closer to the inference boundary
- queued raw
Tool\Tools\FakeTool- deterministic tool double with fixed or callable-backed results
Tests\Support\FakeSubagentProvider- in-memory subagent definition registry for capability tests
Tests\Support\TestAgentLoop- small loop harness with explicit max-iteration stop behavior
Cognesy\Sandbox\Testing\FakeSandbox(frompackages/sandbox, not agents)- deterministic process-execution seam for bash-backed tools
18. Docs Index
Read in this order:packages/agents/docs/01-introduction.mdpackages/agents/docs/testing-doubles.mdpackages/agents/docs/02-basic-agent.mdpackages/agents/docs/05-tools.mdpackages/agents/docs/06-building-tools.mdpackages/agents/docs/13-agent-builder.mdpackages/agents/docs/14-agent-templates.mdpackages/agents/docs/15-subagents.mdpackages/agents/docs/16-session-runtime.mdpackages/agents/docs/19-skills.md