Expand description
phi-agent: Rust AI Agent runtime framework — orchestration, sessions, streaming all built-in. You only define tools, prompts, and domain knowledge.
Built on agent-base and agent-works, providing builder factory, renderer,
config resolution, session management, and other infrastructure.
Ships with zero application tools. Kernel tools (file I/O, shell,
multi-agent) are available via phi-kernel-tools behind feature flags —
all off by default. Application tools are injected by consumers.
Re-exports§
pub use agent::PhiAgent;pub use agent::PhiAgentConfig;pub use agent::base_agent_builder;pub use agent::base_agent_builder_with_excludes;pub use agent::base_agent_builder_with_options;pub use agent::clear_compression_cache;pub use agent::run_compact_session;pub use cli::ApprovalMode;pub use cli::AutoApprovalHandler;pub use config::LlmConfig;pub use config::resolve_llm_config;pub use event_log::event_to_jsonl;pub use event_log::event_to_value;pub use event_log::save_turn_log;pub use prompt::build_system_prompt;pub use prompt::build_system_prompt_cn;pub use render::EventRenderer;pub use render::JsonStreamRenderer;pub use render::NullRenderer;pub use render::OutputFormat;pub use render::create_renderer;pub use render::create_stdout_renderer;pub use session::SessionContext;pub use session::SnapshotInfo;pub use session::cleanup_expired_sessions;pub use session::create_snapshot;pub use session::delete_snapshot;pub use session::list_snapshots;pub use session::resolve_session;pub use session::restore_snapshot;pub use session::validate_session_id;pub use session::validate_snapshot_name;
Modules§
- agent
- Agent construction and lifecycle management.
- bridge
- Bridge protocol — adapts phi-agent for SDK consumption.
- cli
- CLI helpers — approval strategies and utilities shared across consumers.
- config
- Configuration resolution helpers.
- event_
log - Event log: serialize turn events to JSONL files.
- prompt
- System prompt generation (EN/CN).
- render
- Event renderers — transform
RuntimeEventstreams into display output. - session
- Session management — ID resolution, locking, snapshots, cleanup.
Structs§
- Agent
Builder - Agent
Runtime - Approval
Request - Compression
Middleware - Middleware that compresses conversation history before each LLM call.
- Consecutive
Failure Recovery - Recovery strategy that tracks consecutive failures per tool and stops after a limit.
- Focus
- A focused LLM call.
- Focus
Context - Structured context for multi-field input scenarios.
- Focus
Output - Output wrapper for a Focus call.
- McpServe
Config - Configuration for running as an MCP server.
- McpServer
- An MCP Server that wraps an
AgentRuntimeand exposes it as an MCP tool. - McpServer
Config - Open
AiClient - Plan
Item - A single step in a lightweight plan checklist.
- Post
LlmCtx - PreLlm
Ctx - Reasoning
Config - Reasoning/thinking configuration, unifying reasoning/thinking parameters across vendors.
- Safety
Config - Safety configuration for agent runtime guardrails.
- Session
Id - Session
Metrics - Accumulated session metrics. Written incrementally to
session_metrics.jsonat the end of each turn. - Session
Summary - Lightweight summary returned by
list_all(). - Tool
Context - Tool
Metadata - Machine-readable metadata for a registered tool — origin, version, and runtime requirements in a stable shape consumers can inspect without parsing the LLM-facing definition JSON.
- Turn
Fact Middleware - Turn fact summary middleware — injects structured facts from the previous turn’s tool results into the next user message.
- Turn
Metrics - Per-turn metrics — one per LLM interaction.
- Turn
Tool Limit Middleware - Middleware that enforces a hard limit on tool calls per turn.
- Update
Plan Tool - A lightweight tool that records and displays a plan checklist to the user.
- User
Message Ctx
Enums§
- Agent
Error - Approval
Decision - Content
- Structured content returned by a tool, aligned with the MCP
contentarray shape (no envelope, no orchestration/failure/truncation semantics). - Finish
Reason - Semantic finish reason, replacing scattered
Option<String>matching. - Focus
Error - Error type for Focus calls.
- McpServer
Transport - Transport mode for the MCP server.
- McpTransport
- Plan
Step Status - Lightweight plan step status — display-only, no execution semantics.
- Reasoning
Effort - Reasoning intensity/depth enumeration.
- Risk
Level - RunOutcome
- The outcome of an Agent turn or run.
- Runtime
Event - Unified runtime event — the single event type for both internal and external consumers (frontends, CLIs, tests).
- Session
Outcome - Outcome of a session (the entire conversation).
- Turn
Outcome - Outcome of a single turn (one LLM interaction).
Traits§
- Approval
Handler - Trait for handling tool approval requests.
- Focus
Input - Input for a Focus call — either a simple string or a structured context.
- LlmClient
- Middleware
- Tool
- Tool
Policy - Policy-based control over tool execution.
Functions§
- list_
all_ metrics - List all session summaries by scanning the sessions directory.
Reads each
session_metrics.jsonand extracts summary fields. - load_
metrics - Load session metrics from
session_metrics.jsonin a session directory. - save_
metrics - Incrementally write session metrics to
session_metrics.json. Overwrites the file on each call — safe for per-turn writes. - try_
load_ metrics - Try to load session metrics, returning
Noneif the file doesn’t exist.