examples/integrations/ms-agent-framework-dotnet/README.md
This is a starter template for building AI agents using Microsoft Agent Framework and CopilotKit. It provides a modern Next.js application with an integrated proverbs management agent that demonstrates AG-UI protocol features including shared state, generative UI, and human-in-the-loop workflows.
GitHub Personal Access Token (for GitHub Models API)
gh auth token in your CLI (requires GitHub CLI).NET 9.0 SDK
macOS/Linux
Install via Homebrew (brew install dotnet@9) or
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 9.0
export PATH="$HOME/.dotnet:$PATH"
Windows
winget install --id=Microsoft.DotNet.SDK.9 -e)Node.js 20+
macOS/Linux
Install via Homebrew (brew install node@24) or
# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"
# Download and install Node.js:
nvm install 24
Windows
winget install --id=OpenJS.NodeJS -v "24.11.0" -e)Any of the following package managers:
Install dependencies using your preferred package manager:
# Using npm (default)
npm install
# Using pnpm
pnpm install
# Using yarn
yarn install
# Using bun
bun install
Note: This will automatically setup the C# agent as well (restore NuGet packages).
If you have manual issues, you can run:
shnpm run install:agent
Set up your GitHub token for GitHub Models:
First, get your GitHub token:
gh auth token
Then, navigate to the agent directory and set it as a user secret:
cd agent
dotnet user-secrets set GitHubToken "<your-token>"
cd ..
Or set it in one command:
cd agent; dotnet user-secrets set GitHubToken "$(gh auth token)"; cd ..
Start the development server:
# Using npm (default)
npm run dev
# Using pnpm
pnpm dev
# Using yarn
yarn dev
# Using bun
bun run dev
This will start both the Next.js UI (port 3000) and C# agent server (port 8000) concurrently.
The following scripts can also be run using your preferred package manager:
dev - Starts both UI and agent servers in development modedev:debug - Starts development servers with debug logging enableddev:ui - Starts only the Next.js UI serverdev:agent - Starts only the C# agent serverbuild - Builds the Next.js application for productionstart - Starts the production serverlint - Runs ESLint for code lintinginstall:agent - Restores NuGet packages for the C# agentāāā agent/ # C# Agent (Microsoft Agent Framework)
ā āāā Program.cs # Main agent implementation with tools
ā āāā ProverbsAgent.csproj # .NET project file
ā āāā Properties/ # Configuration (launch settings)
āāā src/
ā āāā app/
ā ā āāā page.tsx # Main UI with CopilotKit sidebar
ā ā āāā layout.tsx # CopilotKit provider setup
ā ā āāā api/
ā ā āāā copilotkit/
ā ā āāā route.ts # AG-UI integration endpoint
ā āāā components/ # UI components (weather, proverbs, moon)
ā āāā lib/ # Types and utilities
āāā scripts/ # Helper scripts for agent setup/run
This starter showcases key AG-UI protocol features:
Feel free to submit issues and enhancement requests! This starter is designed to be easily extensible.
This project is licensed under the MIT License - see the LICENSE file for details.
If you see "I'm having trouble connecting to my tools", make sure:
If you don't have .NET 9.0 installed:
macOS/Linux (Homebrew):
brew install dotnet@9
dotnet --version
macOS/Linux (Install Script):
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 9.0
export PATH="$HOME/.dotnet:$PATH"
Windows (WinGet):
winget install --id=Microsoft.DotNet.SDK.9 -e
Windows/macOS (Direct Download):
If you encounter .NET-related errors:
# Verify .NET SDK is installed
dotnet --version # Should be 9.0.x or higher
# Restore packages manually
cd agent
dotnet restore
dotnet run
If the agent fails to start with "GitHubToken not found":
cd agent
dotnet user-secrets set GitHubToken "$(gh auth token)"
Or manually:
# Get your token
gh auth token
# Set it as a user secret
cd agent
dotnet user-secrets set GitHubToken "YOUR_TOKEN_HERE"
If port 8000 is already in use, you can change it in:
agent/Properties/launchSettings.json - Update applicationUrlsrc/app/api/copilotkit/route.ts - Update the HttpAgent URL