Andy.Engine
2025.10.28-rc.19
dotnet add package Andy.Engine --version 2025.10.28-rc.19
NuGet\Install-Package Andy.Engine -Version 2025.10.28-rc.19
<PackageReference Include="Andy.Engine" Version="2025.10.28-rc.19" />
<PackageVersion Include="Andy.Engine" Version="2025.10.28-rc.19" />
<PackageReference Include="Andy.Engine" />
paket add Andy.Engine --version 2025.10.28-rc.19
#r "nuget: Andy.Engine, 2025.10.28-rc.19"
#:package Andy.Engine@2025.10.28-rc.19
#addin nuget:?package=Andy.Engine&version=2025.10.28-rc.19&prerelease
#tool nuget:?package=Andy.Engine&version=2025.10.28-rc.19&prerelease
Andy.Engine
C# framework for building LLM-driven agents with tool execution, planning, and state management.
ALPHA RELEASE WARNING
This software is in ALPHA stage. NO GUARANTEES are made about its functionality, stability, or safety.
CRITICAL WARNINGS:
- This tool performs DESTRUCTIVE OPERATIONS on files and directories
- Permission management is NOT FULLY TESTED and may have security vulnerabilities
- DO NOT USE in production environments
- DO NOT USE on systems with critical or irreplaceable data
- DO NOT USE on systems without complete, verified backups
- The authors assume NO RESPONSIBILITY for data loss, system damage, or security breaches
USE AT YOUR OWN RISK
Features
- Modular Architecture: Planner, Executor, Critic, and Policy Engine components
- Tool Management: Schema validation, retry policies, error handling
- State Management: Persistent state tracking across agent turns
- Observation Normalization: Structured extraction of key facts and affordances
- Policy Engine: Intelligent retry, fallback, and error recovery strategies
- Event-Driven: Rich events for monitoring and debugging agent execution
Installation
dotnet add package Andy.Engine --version 1.0.0-alpha.1
Quick Start
using Andy.Engine;
using Andy.Model.Llm;
using Andy.Tools.Core;
// Configure and build an agent
var agent = AgentBuilder.Create()
.WithDefaults(llmProvider, toolRegistry, toolExecutor)
.WithPlannerOptions(new PlannerOptions { Temperature = 0.0 })
.Build();
// Define goal and constraints
var goal = new AgentGoal(
UserGoal: "Find and summarize recent AI news",
Constraints: new[] { "Focus on last week", "Include at least 3 sources" }
);
// Set budget limits
var budget = new Budget(
MaxTurns: 10,
MaxWallClock: TimeSpan.FromMinutes(5)
);
// Configure error handling
var errorPolicy = new ErrorHandlingPolicy(
MaxRetries: 3,
BaseBackoff: TimeSpan.FromSeconds(1),
UseFallbacks: true,
AskUserWhenMissingFields: true
);
// Run the agent
var result = await agent.RunAsync(goal, budget, errorPolicy);
if (result.Success)
{
Console.WriteLine($"Goal achieved in {result.TotalTurns} turns");
}
Architecture
The framework follows a modular architecture based on the agent loop:
- Planner: Decides the next action (tool call, ask user, replan, stop)
- Executor: Validates and executes tool calls with retry logic
- Critic: Evaluates observations against goals
- Policy Engine: Handles errors, retries, and fallbacks
- State Manager: Tracks agent state and working memory
- Observation Normalizer: Converts tool outputs to structured observations
Components
Planner
IPlannerinterface for custom implementationsLlmPlannerfor LLM-based planning with structured output- Support for tool calls, user queries, replanning, and stopping
Executor
IExecutorinterface for tool executionToolAdapterwith schema validation and error mapping- Configurable retry policies and timeouts
Critic
ICriticinterface for goal assessmentLlmCriticfor LLM-based evaluation- Recommendations for continue, replan, clarify, or stop
State Management
IStateStorefor persistence (in-memory and custom implementations)StateManagerfor state transitions and working memory- Automatic memory compression when limits are reached
Policy Engine
- Retry logic for transient failures
- Fallback tool selection
- User interaction for missing information
- Budget enforcement
Events
The agent emits events for monitoring and debugging:
TurnStarted: Fired at the beginning of each turnTurnCompleted: Fired when a turn completes with timing informationToolCalled: Fired when a tool is executedUserInputRequested: Fired when user input is needed
Integration with Andy Ecosystem
Andy.Engine integrates seamlessly with other Andy packages:
- Andy.Tools: Tool registry and execution framework
- Andy.Llm: LLM provider abstractions
- Andy.Model: Shared data models
- Andy.Context: Context management
- Andy.Configuration: Configuration management
License
Apache-2.0 License - see LICENSE file for details
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Support
For issues and questions, please use the GitHub issue tracker.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Andy.Configuration (>= 2025.7.16-rc.6)
- Andy.Context (>= 2025.9.23-rc.4)
- Andy.Llm (>= 2025.10.5-rc.16)
- Andy.Model (>= 2025.9.20-rc.4)
- Andy.Tools (>= 2025.10.16-rc.16)
- JsonPointer.Net (>= 5.0.0)
- JsonSchema.Net (>= 7.0.0)
- Polly (>= 8.5.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2025.10.28-rc.19 | 123 | 10/28/2025 |
| 2025.10.28-rc.18 | 124 | 10/28/2025 |
| 2025.10.28-rc.17 | 120 | 10/28/2025 |
| 2025.10.28-rc.16 | 121 | 10/28/2025 |
| 2025.10.28-rc.15 | 127 | 10/28/2025 |
| 2025.10.16-rc.14 | 123 | 10/16/2025 |
| 2025.10.6-rc.13 | 123 | 10/6/2025 |
| 2025.10.6-rc.12 | 122 | 10/6/2025 |
| 2025.10.6-rc.11 | 123 | 10/6/2025 |
| 2025.10.6-rc.10 | 122 | 10/6/2025 |