
December 12, 2025 06:15 by
Peter
This article describes how to use contemporary APIs (OpenAI, Azure OpenAI, Hugging Face, and Self-hosted LLMs) to integrate AI agents with ASP.NET MVC.
What Is an AI Agent?
- An AI Agent is an autonomous component capable of:
- Understanding user input
- Taking decisions
- Calling tools (APIs, DB, services)
- Updating its memory
- Producing actions or responses
- Triggering workflows
In an MVC project, an AI Agent often acts as:
- Chatbot
- Automated email writer
- Code generator
- Ticket classification bot
- Data extraction worker
- Knowledge base assistant
Project Structure (MVC)
Your MVC app will use:
Controllers/
AiAgentController.cs
Services/
AiAgentService.cs
Models/
AiRequest.cs
AiResponse.cs
Views/
AiAgent/
Index.cshtml
Step 1: Install Required Nuget Packages
For OpenAI-compatible agents:
Install-Package OpenAI
Install-Package Newtonsoft.Json
Step 2: Create Your AI Agent Service (Backend Logic)
Create: Services/AiAgentService.cs
using OpenAI.Chat;
using OpenAI;
using System.Threading.Tasks;
namespace YourApp.Services
{
public class AiAgentService
{
private readonly OpenAIClient _client;
public AiAgentService(string apiKey)
{
_client = new OpenAIClient(apiKey);
}
public async Task<string> AskAgentAsync(string userInput)
{
var chat = _client.GetChatClient("gpt-4o-mini");
var response = await chat.CompleteAsync(
userInput
);
return response.Content[0].Text;
}
}
}
Step 3: Add the Service to Dependency Injection
Open Global.asax.cs (or Program.cs for .NET 6+ MVC)
For .NET 4.8 MVC
In UnityConfig.cs or Autofac:
container.RegisterType<AiAgentService>(
new InjectionConstructor("YOUR_OPENAI_API_KEY")
);
For .NET 6/7 MVC
Program.cs
builder.Services.AddSingleton<AiAgentService>(new AiAgentService("YOUR_API_KEY"));
Step 4: Create Controller to Call the AI Agent
Controllers/AiAgentController.cs
using System.Threading.Tasks;
using System.Web.Mvc;
using YourApp.Services;
namespace YourApp.Controllers
{
public class AiAgentController : Controller
{
private readonly AiAgentService _ai;
public AiAgentController(AiAgentService ai)
{
_ai = ai;
}
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public async Task<ActionResult> Index(string userMessage)
{
var aiResponse = await _ai.AskAgentAsync(userMessage);
ViewBag.Response = aiResponse;
return View();
}
}
}
Step 5: Create Razor View for Chat UI
Views/AiAgent/Index.cshtml
@{
ViewBag.Title = "AI Agent Chat";
}
<h2>AI Agent in MVC</h2>
<form method="post">
<textarea name="userMessage" class="form-control" rows="4" placeholder="Ask anything..."></textarea>
<br />
<button class="btn btn-primary">Send</button>
</form>
@if (ViewBag.Response != null)
{
<div class="alert alert-info" style="margin-top:20px;">
<strong>AI Agent Reply:</strong>
<p>@ViewBag.Response</p>
</div>
}
Your First AI Agent Is Ready
You can now run:
/AiAgent/Index
Type a message:
“Summarize this text”
“Generate email template for refund request”
“Write C# code for a stored procedure call”
“Fix my SQL query”
The agent instantly responds.
Advanced: Add Tools (Function Calling)
Agents become powerful when they can call functions inside your MVC app.
Example: Agent gets order status from your database.
Step 1: Add a Tool Method
public string GetOrderStatus(int orderId)
{
return "Order " + orderId + " is in Packaging Stage.";
}
Step 2: Expose Tool to Agent
Most AI SDKs support function-calling like:
var response = await chat.CompleteAsync(
messages: userInput,
functions: new[]
{
new FunctionDefinition(
"get_order_status",
"Get order status using order ID",
new { orderId = "number" }
)
});
Result:
Agent decides to call your function → Your C# method runs → Response returned back.
Real-World AI Agent Use Cases in MVC
1. Customer Support Assistant
Automatically understands user message → replies or creates ticket.
2. Form Auto-Generation
User describes what form they need → agent builds HTML form dynamically.
3. Code Generator Inside Admin Panel
Generate C# classes, views, DB queries on the fly.
4. Workflow Automation
User enters command → agent runs server-side tasks.
5. Knowledge Base Search Agent
AI agent + vector database → semantic search.
Advanced: Adding Memory to AI Agent
Short-term memory → history stored in session
Long-term memory → store in DB or vector DB (like Qdrant, Pinecone)
Session["history"] += userMessage + aiResponse;
Performance Tips & Best Practices
- Cache frequently used prompts
Use IMemoryCache or Redis
- Avoid sending huge previous chat
Compress or summarize conversation
- Always use streaming for faster response
Most SDKs support streaming tokens
- Background agents for heavy tasks
Use IHostedService or Windows Service
Common Mistakes Developers Make
| Mistake | Why Bad | Fix |
| Sending full chat on each request |
slow, expensive |
send only last 5 turns |
| No rate limiting |
can exhaust API credits |
use retry policy |
| Hardcoding API keys |
big security risk |
use environment variables |
| Not handling null/empty response |
crashes |
always validate |
| Using wrong model (too large) |
expensive |
use small model for simple tasks |
Final Thoughts
AI Agents will become a core part of all ASP.NET MVC applications.
With just a few steps, you can:
- Add smart chatbots
- Automate workflows
- Enhance admin panels
- Add dynamic intelligence
- Build modern AI-driven enterprise apps