MODULE 01 · LESSON 1.1
Meet Operations Desk and the platform
Follow one operations request through a host, an agent and a client.
Lesson 1 of 86 · FabrCore 2.0
Overview
Operations Desk starts with a single assistant. A principal owns its agent instance; the Host routes messages to an Orleans grain; the SDK proxy implements the behavior. A model is optional. Keeping these boundaries visible makes it possible to add AI without replacing the surrounding application.
The three processes you are building
Operations Desk is a sample service-request assistant. Its first job is deliberately small: receive “Investigate request SR-1042” and return that text. The client sends the request, the ASP.NET Core Host accepts it, and your EchoAgent class decides the response. There is no language model involved in this first round trip.
| Component / choice | What it owns | What it does not do |
|---|---|---|
| Client | User input, authentication and display | Execute Orleans grains or hold database credentials |
| Host | HTTP ingress, routing and Orleans integration | Invent the business behavior of an undeployed agent |
| Agent proxy | Lifecycle and message/business handlers | Require a language model for every implementation |
| AI agent | Inference using the configured model and tools | Replace the Host or create its own public handle |
| Cloud Server (optional) | Effective configuration and privileged management | Run the application agent instead of the Host |
How an address becomes an agent
The alias ops-echo identifies a registered C# type. Creating an instance gives that type a handle, assistant, under the dev principal. The resulting address is dev:assistant. Orleans supplies the managed instance behind that address; FabrCore invokes its lifecycle and message methods. A thread selects conversation history within the instance. A Cloud Server can later manage configuration, but it does not replace any of these request-processing components.
Follow the first request
Download the Operations Desk source. The README lists project setup, package prerequisites and local ports.
- Install the .NET 10 SDK and confirm dotnet --version. Use the framework source checkout or matching 2.0 packages available in your feed.
- Create a workspace for OperationsDesk.Server, OperationsDesk.Agents and a client. Keep the model-independent echo milestone first.
- Read the request path as client → Host → principal:agent → OnMessage → response. The browser and mobile app never need a grain reference.
Trace the request on paper
- Write client → Host → dev:assistant → EchoAgent.OnMessage → response. Beside the client, write “HTTP and user interface”; beside the Host, write “routing and runtime”; beside EchoAgent, write “application behavior.”
- Use SR-1042 as the message text. At this point it is just text: there is no ticket database or lookup tool. The expected echo proves only that the request reached your code.
- Keep this diagram for lesson 1.4. The only new box there will be the model call inside the agent; the client's address stays a FabrCore address.
This is an architecture walkthrough, so there is no process to run yet. The next two lessons turn each box into code and finish with an observable HTTP response.
If the result is different
An agent alias names a registered type. It does not create an instance or identify a signed-in person.
Go deeper
Explore the related documentation.