CereBro is a model-agnostic AI Agent Wrapper for .Net. Now with 🔥 Model Context Protocol 🔥 , based on the Official C# SDK, you can write Tools that can be used with different AI models without changing the code.
Below is a list of supported and planned models for CereBro.
Supported:
Planned:
You can install the package from NuGet using the following command:
dotnet add package Rob1997.CereBro
dotnet add package Rob1997.CereBro.Open-AI
This file will contain the configuration for the MCP servers you want to use. Below is an example of the servers.json
file.
[
{
"Id": "everything-server",
"Name": "Everything",
"TransportType": "stdio",
"TransportOptions": {
"command": "npx",
"arguments": "-y @modelcontextprotocol/server-everything"
}
}
]
You can check out more servers here.
export OPEN_AI_API_KEY="your-api-key"
$env:OPEN_AI_API_KEY="your-api-key"
If you want this to be permanent, you can add it to your .bashrc
or .bash_profile
file in linux or use the following command in PowerShell.
[Environment]::SetEnvironmentVariable("OPEN_AI_API_KEY", "your-api-key", "User")
public static async Task Main(string[] args)
{
var builder = Host.CreateApplicationBuilder(args);
builder.Services.UseOpenAI(Environment.GetEnvironmentVariable("OPEN_AI_API_KEY"), "gpt-4o-mini");
IHost cereBro = builder.BuildCereBro(new CereBroConfig{ ServersFilePath = "./servers.json" });
await cereBro.RunAsync();
}
CereBro uses the Console as a chat dispatcher. You can create your own dispatcher by implementing the IChatDispatcher
interface and use builder.BuildCereBro<IChatDispatcher>(config)
to build CereBro's host.
dotnet run
Currently, CereBro only supports OpenAI's models. To add a new model you'll need to Implement Microsoft.Extensions.AI.IChatClient
, unless it already exists, Microsoft already has implementations for some models like OpenAI and Ollama.
Once you've done that you can create a Placeholder Type that implements Microsoft.Extensions.AI.FunctionInvokingChatClient
something like this.
Finally, you can use the UseChatClient<T>(this IServiceCollection services, IChatClient chatClient) where T : FunctionInvokingChatClient
extension method to add your model to the service collection.
⚠️ Note ⚠️
At the moment CereBro doesn't support multiple models at the same time, so you'll have to remove the UseOpenAI
method from the Program.cs
file to use another model.
CereBro.Unity is a Unity package that allows you to use CereBro in Unity. README.
If you'd like to contribute to the project, you can fork the repository and create a pull request. You can also create an issue if you find any bugs or have any feature requests.