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() CanControlAgentLoop- contract:
execute(AgentState): AgentState,iterate(AgentState): iterable
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) Data\AgentStep- one loop step snapshot (
inputMessages,outputMessages,inferenceResponse,toolExecutions,errors) Data\StepExecution- completed step wrapper with timing
Data\ToolExecution- one executed tool call (
value(),hasError(),errorAsString(),wasBlocked()) Data\ExecutionBudget- optional limits:
maxSteps,maxTokens,maxSeconds,maxCost,deadline - factories:
unlimited() - queries:
isEmpty(),isExhausted() 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(): CanDescribeToolTool\Contracts\CanDescribeToolname(),description(),metadata(),instructions()Tool\Contracts\CanExecuteToolCallsexecuteTools(ToolCalls, AgentState): ToolExecutionsTool\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
Compilers:
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 Hook\Collections\HookTriggersHook\HookStack
Built-in hooks:
Hook\Hooks\CallableHookHook\Hooks\StepsLimitHookHook\Hooks\TokenUsageLimitHookHook\Hooks\ExecutionTimeLimitHookHook\Hooks\FinishReasonHookHook\Hooks\ApplyContextConfigHook
Interception:
Interception\CanInterceptAgentLifecycleInterception\PassThroughInterceptor
10. Builder / Capabilities¶
Builder\AgentBuilderBuilder\AgentConfiguratorBuilder\Contracts\CanProvideAgentCapabilityBuilder\Contracts\CanConfigureAgentBuilder\Contracts\CanComposeAgentLoopBuilder\Contracts\CanProvideDeferredToolsBuilder\Collections\DeferredToolProvidersBuilder\Data\DeferredToolContext
Capability registry:
Capability\AgentCapabilityRegistryCapability\CanManageAgentCapabilities
Core capabilities:
Capability\Core\UseLLMConfigCapability\Core\UseGuardsCapability\Core\UseToolsCapability\Core\UseToolFactoryCapability\Core\UseHookCapability\Core\UseDriverCapability\Core\UseDriverDecoratorCapability\Core\UseContextCompilerCapability\Core\UseContextCompilerDecoratorCapability\Core\UseContextConfigCapability\Core\UseReActConfig
Domain capabilities:
Capability\Bash\UseBashCapability\File\UseFileTools- installs:
read_file,write_file,edit_file - standalone file tools also available:
SearchFilesTool,ListDirTool 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 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() Session\SessionFactorySession\SessionRepositorySession\SessionRuntime
Contracts:
Session\Contracts\CanManageAgentSessionsSession\Contracts\CanExecuteSessionActionSession\Contracts\CanStoreSessionsSession\Contracts\CanControlAgentSession
Stores:
Session\Store\InMemorySessionStoreSession\Store\FileSessionStore
Actions:
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
Enums:
Session\Enums\SessionStatus--Active,Suspended,Completed,Failed,DeletedSession\Enums\AgentSessionStage--AfterLoad,AfterAction,BeforeSave,AfterSave
Session hooks:
Session\SessionHookStackSession\RegisteredSessionHookSession\PassThroughSessionControllerSession\Collections\SessionInfoList
Exceptions:
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)
Event support:
Events\Support\AgentEventConsoleFormatterEvents\Support\AgentEventConsoleObserver
Session events include:
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 Capability\Skills\LoadSkillTool- tool exposed to LLM:
load_skill(skill_name, list_skills, arguments) - user-invocable filtering on list mode
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 Capability\Skills\SkillToolFilterHook- enforces
allowed-toolsrestrictions; blocks non-allowed tools (exceptload_skillitself) Capability\Skills\SkillModelOverrideHook- overrides LLMConfig when a skill with a
modelfield is active 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 Capability\Skills\UseSkills- capability that wires
LoadSkillTool+ hooks into agent - optional
?SkillPreprocessorfor shell preprocessing - follows Agent Skills Open Standard (30+ tools)
17. Testing¶
Drivers\Testing\FakeAgentDriver- scripted loop steps via
ScenarioStep - best for most deterministic agent-loop tests
Tests\Support\FakeInferenceDriver- queued raw
InferenceResponseor streamingPartialInferenceDeltafixtures - use when the test sits closer to the inference boundary
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