Skip to content

API Reference

phi-agent's API documentation is auto-generated from doc comments and hosted on docs.rs.

Key Modules

Module Description
agent PhiAgent, PhiAgentConfig, base_agent_builder() factory
config LLM configuration resolution (CLI > env > .env > default)
prompt System prompt builders (build_system_prompt, build_system_prompt_cn)
render EventRenderer trait + TerminalRenderer, JsonStreamRenderer, NullRenderer
session Session management (ID, directory, file locking, cleanup)
cli AutoApprovalHandler, QueuedApprovalHandler
event_log Turn event → JSONL persistence

Builder Factories

Function Description
base_agent_builder() Default builder with compression middleware
base_agent_builder_no_compression() Builder without compression (for custom context rotation)
base_agent_builder_with_excludes() Builder that skips specific kernel tools
base_agent_builder_with_options() Builder accepting custom CompressionConfig

Re-exports from agent-base

phi-agent re-exports key types from agent-base:

Category Types
Core AgentResult, AgentError, AgentRuntime, Tool, ToolContext, Content, ToolMetadata, TypedTool
Approval ApprovalHandler, ApprovalDecision, ApprovalRequest, AllowAllApprovalHandler, DenyAllApprovalHandler
Tool Policy ToolPolicy, ToolDecision, DenyAllToolPolicy, ToolRegistry
Tool Visibility ToolExposure, ActivationContext
LLM ReasoningConfig, ReasoningEffort, llm_trait (module: LlmProvider, Protocol, config::LlmConfig)
Config AgentConfig, SafetyConfig, SessionConfig, Language
Events RuntimeEvent, UserEvent, FinishReason
Session SessionId, TurnContext, ChatMessage
Plan PlanItem, PlanStepStatus, UpdatePlanTool
Checkpoint CheckpointData, CheckpointStep
Recovery ConsecutiveFailureRecovery, RetryOnError
Context Window ContextCompaction, ContextWindowManager, estimate_messages_tokens, first_system_prompt
Engine MaxTurnsNudgeConfig, MaxTurnsNudgeMiddleware
Guard GuardCtx, GuardDecision, Middleware, NoopGuard
Middleware TurnFactMiddleware, TurnToolLimitMiddleware, PreLlmCtx, PostLlmCtx
Pipeline DefaultPipeline, ToolExecutionPipeline

Re-exports from agent-works

phi-agent re-exports key types from agent-works:

Category Types
Builder AgentBuilder
Focus Focus, FocusContext, FocusInput, FocusOutput, FocusError
Prompt Fragments PromptFragment, FragmentContext, compose_fragments, DynamicToolsFragment, EnvironmentFragment
Guard DefaultGuard, DefaultGuardConfig, ReasoningOnlyAction
Token Budget TokenBudgetAction, TokenBudgetConfig, TokenBudgetCore, TokenBudgetState, DEFAULT_SEED_MESSAGE, build_context_window_info, token_budget_base_overhead
Compression CompressionMiddleware, clear_compression_cache, run_compact_session (behind compression)
MCP McpServer, McpServerConfig, McpServeConfig (behind mcp)
Multi-Agent MultiAgentConfig, ChildPermissionMode, ChildReport, ChildResultEvent, ControlConfig, ChildToolCapability, CapabilityResolution, resolve_capability
Fan-in ChildResultRoute, ChildResultRouter (behind multi-agent)
Registry AgentSnapshot, RegistrySnapshot (behind multi-agent)
Skills Skill, PromptSkill (behind skill)

Re-exports from llm-unified

Function Description
create_provider() LLM provider factory — resolves protocol/client from an llm_trait config

Feature-gated Re-exports

Feature Types
shell LocalShellTool (from phi-kernel-tools)
skill Skill, PromptSkill (from agent-works)
mcp McpServer, MCP types (from agent-works)
multi-agent ChildResultRoute, ChildResultRouter, AgentSnapshot, RegistrySnapshot
compression CompressionMiddleware, clear_compression_cache, run_compact_session
telemetry Metrics types (from phi-telemetry)
browser 21 CDP browser automation tools (from phi-tools)

CLI Types

Type Description
AutoApprovalHandler Auto / DenyAll approval mode
QueuedApprovalHandler Enqueue approvals to a channel for UI consumption
ApprovalItem Single queued approval request with oneshot response
ApprovalMode CLI approval mode enum

→ See the Focus guide for Focus usage examples. → See Advanced Usage for ToolPolicy, compression, and PromptFragment examples. → See Multi-Agent for fan-in routing and child permissions.


→ Full API docs on docs.rs