chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:59:43 +08:00
commit c79da9cdf9
9350 changed files with 1725465 additions and 0 deletions
@@ -0,0 +1,70 @@
# MCP Server Integration Guide
## Prerequisites
- Node.js installed (version 14 or higher)
- npm package manager
- Python environment with required dependencies
## Setup Steps
1. **Install MCP Server Package**
```bash
npm install -g @modelcontextprotocol/server-github
```
2. **Start MCP Server**
```bash
npx @modelcontextprotocol/server-github
```
The server should start and display a connection URL.
3. **Verify Connection**
- Look for the plug icon (🔌) in your Chainlit interface
- A number (1) should appear next to the plug icon indicating successful connection
- The console should show: "GitHub plugin setup completed successfully" (along with additional status lines)
## Troubleshooting
### Common Issues
1. **Port Conflict**
```bash
Error: listen EADDRINUSE: address already in use
```
Solution: Change the port using:
```bash
npx @modelcontextprotocol/server-github --port 3001
```
2. **Authentication Issues**
- Ensure GitHub credentials are properly configured
- Check .env file contains required tokens
- Verify GitHub API access
3. **Connection Failed**
- Confirm server is running on expected port
- Check firewall settings
- Verify Python environment has required packages
## Connection Verification
Your MCP server is properly connected when:
1. Console shows "GitHub plugin setup completed successfully"
2. Connection logs show "✓ MCP Connection Status: Active"
3. GitHub commands work in chat interface
## Environment Variables
Required in your .env file:
```
GITHUB_TOKEN=your_github_token
MCP_SERVER_PORT=3000 # Optional, default is 3000
```
## Testing Connection
Send this test message in chat:
```
Show me the repositories for username: [GitHub Username]
```
A successful response will show repository information.
@@ -0,0 +1,62 @@
# Github MCP Server Example
## Description
This was a demo created for the AI Agents Hackathon hosted through the Microsoft Reactor.
The tools is used to recommend hackathon projects based on a user's Github repos.
This is done by:
1. **Github Agent** - Using the Github MCP Server to retrieve repos and information about those repos.
2. **Hackathon Agent** - Takes the data from the Github Agent and comes up with creative hackathon project ideas based on the projects, languages used by the user and the project tracks for the AI Agents hackathon.
3. **Events Agent** - Based on the hackathon agents suggestion, the events agent will recommend relevant events from the AI Agent Hackathon series.
## Running the code
### Environment Variables
This demo uses Microsoft Agent Framework, Azure OpenAI Service, the Github MCP Server and Azure AI Search.
Make sure that you have the proper environment variables set to use these tools:
```python
AZURE_AI_PROJECT_ENDPOINT=""
AZURE_AI_MODEL_DEPLOYMENT_NAME=""
AZURE_SEARCH_SERVICE_ENDPOINT=""
AZURE_SEARCH_API_KEY=""
```
## Running the Chainlit Server
To connect to the MCP server, this demo use Chainlit as a chat interface.
To run the server, use the following command in your terminal:
```bash
chainlit run app.py -w
```
This should start your Chainlit server on `localhost:8000` as well as populate your Azure AI Search Index with the `event-descriptions.md` content.
## Connecting to the MCP Server
To connect to the Github MCP Server, select the "plug" icon underneath the "Type your message here.." chat box:
![MCP Connect](./images/mcp-chainlit-1.png)
From there you can click on the "Connect an MCP" to add the command to connect to the Github MCP Server:
```bash
npx -y @modelcontextprotocol/server-github --env GITHUB_PERSONAL_ACCESS_TOKEN=[YOUR PERSONAL ACCESS TOKEN]
```
Replace "[YOUR PERSONAL ACCESS TOKEN]" with your actual Personal Access Token.
After connecting, you should see a (1) next to the plug icon to confirm that its connected. If not, try restarting the chainlit server with `chainlit run app.py -w`.
## Using the Demo
To start the agent workflow of recommending hackathon projects, you can type a message like:
"Recommend hackathon projects for the Github user koreyspace"
The Router Agent will analyze your request and determine which combination of agents (GitHub, Hackathon, and Events) is best suited to handle your query. The agents work together to provide comprehensive recommendations based on GitHub repository analysis, project ideation, and relevant tech events.
@@ -0,0 +1,401 @@
import os
import json
import logging
logging.getLogger("agent_framework.foundry").setLevel(logging.ERROR)
from typing import Annotated
from dotenv import load_dotenv
import requests
import re
import chainlit as cl
from mcp import ClientSession
from agent_framework import tool, AgentResponseUpdate, WorkflowBuilder
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
from azure.core.credentials import AzureKeyCredential
from azure.search.documents import SearchClient
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import SearchIndex, SimpleField, SearchFieldDataType, SearchableField
# Load environment variables
load_dotenv()
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
# Initialize Azure AI Search with persistent storage
search_service_endpoint = os.getenv("AZURE_SEARCH_SERVICE_ENDPOINT")
search_api_key = os.getenv("AZURE_SEARCH_API_KEY")
index_name = "event-descriptions"
search_client = SearchClient(
endpoint=search_service_endpoint,
index_name=index_name,
credential=AzureKeyCredential(search_api_key)
)
index_client = SearchIndexClient(
endpoint=search_service_endpoint,
credential=AzureKeyCredential(search_api_key)
)
# Define the index schema
fields = [
SimpleField(name="id", type=SearchFieldDataType.String, key=True),
SearchableField(name="content", type=SearchFieldDataType.String)
]
index = SearchIndex(name=index_name, fields=fields)
# Check if index already exists if not, create it
try:
existing_index = index_client.get_index(index_name)
print(f"Index '{index_name}' already exists, using the existing index.")
except Exception as e:
# Create the index if it doesn't exist
print(f"Creating new index '{index_name}'...")
index_client.create_index(index)
# Always read event descriptions from markdown file
current_dir = os.path.dirname(os.path.abspath(__file__))
event_descriptions_path = os.path.join(current_dir, "event-descriptions.md")
try:
with open(event_descriptions_path, "r", encoding='utf-8') as f:
markdown_content = f.read()
except FileNotFoundError:
logger.warning(f"Could not find {event_descriptions_path}")
markdown_content = ""
# Split the markdown content into individual event descriptions
event_descriptions = markdown_content.split("---") # You can change the delimiter
# Create documents for Azure Search
documents = []
for i, description in enumerate(event_descriptions):
description = description.strip() # Remove leading/trailing whitespace
if description: # Avoid empty descriptions
documents.append({"id": str(i + 1), "content": description})
# Add documents to the index (only if we have documents)
if documents:
# Delete existing documents first to avoid duplicates
try:
search_client.delete_documents(documents=[{"id": doc["id"]} for doc in documents])
print("Cleared existing documents")
except Exception as e:
print(f"Warning: Failed to clear existing documents: {str(e)}")
# Upload new documents
search_client.upload_documents(documents)
print(f"Uploaded {len(documents)} documents to index")
# RAG tool for event search
@tool
def search_events(
query: Annotated[str, "The search query to find relevant events"]
) -> str:
"""Searches for relevant events based on a query using Azure Search and a live API."""
context_strings = []
try:
results = search_client.search(query, top=5)
for result in results:
if 'content' in result:
context_strings.append(f"Event: {result['content']}")
except Exception as e:
context_strings.append(f"Error searching Azure Search: {str(e)}")
# Live API (example: Devpost hackathons)
try:
api_resp = requests.get(f"https://devpost.com/api/hackathons?search={query}", timeout=5)
if api_resp.ok:
data = api_resp.json()
for event in data.get('hackathons', [])[:5]:
context_strings.append(f"Live Event: {event.get('title')} - {event.get('url')}")
except Exception as e:
context_strings.append(f"Error fetching live events: {str(e)}")
if context_strings:
return "\n\n".join(context_strings)
else:
return "No relevant events found."
def flatten(xss):
return [x for xs in xss for x in xs]
GITHUB_INSTRUCTIONS = """
You are an expert on GitHub repositories. When answering questions, you **must** use the provided GitHub username to find specific information about that user's repositories, including:
* Who created the repositories
* The programming languages used
* Information found in files and README.md files within those repositories
* Provide links to each repository referenfced in your answers
**Important:** Never perform general searches for repositories. Always use the given GitHub username to find the relevant information. If a GitHub username is not provided, state that you need a username to proceed.
"""
HACKATHON_AGENT = """
You are an AI Agent Hackathon Strategist specializing in recommending winning project ideas.
Your task:
1. Analyze the GitHub activity of users to understand their technical skills
2. Suggest creative AI Agent projects tailored to their expertise.
3. Focus on projects that align with Microsoft's AI Agent Hackathon prize categories
When making recommendations:
- Base your ideas strictly on the user's GitHub repositories, languages, and tools
- Give suggestions on tools, languages and frameworks to use to build it.
- Provide detailed project descriptions including architecture and implementation approach
- Explain why the project has potential to win in specific prize categories
- Highlight technical feasibility given the user's demonstrated skills by referencing the specific repositories or languages used.
Formatting your response:
- Provide a clear and structured response that includes:
- Suggested Project Name
- Project Description
- Potential languages and tools to use
- Link to each relevant GitHub repository you based your recommendation on
Hackathon prize categories:
- Best Overall Agent ($20,000)
- Best Agent in Python ($5,000)
- Best Agent in C# ($5,000)
- Best Agent in Java ($5,000)
- Best Agent in JavaScript/TypeScript ($5,000)
- Best Copilot Agent using Microsoft Copilot Studio or Microsoft 365 Agents SDK ($5,000)
- Best Microsoft Foundry Agent Service Usage ($5,000)
"""
EVENTS_AGENT = """
You are an Event Recommendation Agent specializing in suggesting relevant tech events.
Your task:
1. Review the project idea recommended by the Hackathon Agent
2. Use the search_events function to find relevant events based on the technologies mentioned.
3. NEVER suggest and event that the where there is not a relevant technology that the user has used.
3. ONLY recommend events that were returned by the search_events functionf
When making recommendations:
- IMPORTANT: You must first call the search_events function with appropriate technology keywords from the project
- Only recommend events that were explicitly returned by the search_events function
- Do not make up or suggest events that weren't in the search results
- Construct search queries using specific technologies mentioned (e.g., "Python AI workshop" or "JavaScript hackathon")
- Try multiple search queries if needed to find the most relevant events
For each recommended event:
- Only include events found in the search_events results
- Explain the direct connection between the event and the specific project requirements
- Highlight relevant workshops, sessions, or networking opportunities
Formatting your response:
- Start with "Based on the hackathon project idea, here are relevant events that I found:"
- Only list events that were returned by the search_events function
- For each event, include the exact event details as returned by search_events
- Explain specifically how each event relates to the project technologies
If no relevant events are found, acknowledge this and suggest trying different search terms instead of making up events.
"""
@cl.on_mcp_connect
async def on_mcp(connection, session: ClientSession):
logger.info(f"MCP Connection established: {connection.name}")
result = await session.list_tools()
tools = [{
"name": t.name,
"description": t.description,
"input_schema": t.inputSchema,
} for t in result.tools]
mcp_tools = cl.user_session.get("mcp_tools", {})
mcp_tools[connection.name] = tools
cl.user_session.set("mcp_tools", mcp_tools)
# Log available tools
print(f"Available MCP tools for {connection.name}:")
for t in tools:
print(f" - {t['name']}: {t['description']}")
@cl.step(type="tool")
async def call_tool(tool_use):
tool_name = tool_use.name
tool_input = tool_use.input
current_step = cl.context.current_step
current_step.name = tool_name
# Identify which mcp is used
mcp_tools = cl.user_session.get("mcp_tools", {})
mcp_name = None
for connection_name, tools in mcp_tools.items():
if any(t.get("name") == tool_name for t in tools):
mcp_name = connection_name
break
if not mcp_name:
current_step.output = json.dumps(
{"error": f"Tool {tool_name} not found in any MCP connection"})
return current_step.output
mcp_session, _ = cl.context.session.mcp_sessions.get(mcp_name)
if not mcp_session:
current_step.output = json.dumps(
{"error": f"MCP {mcp_name} not found in any MCP connection"})
return current_step.output
try:
current_step.output = await mcp_session.call_tool(tool_name, tool_input)
except Exception as e:
current_step.output = json.dumps({"error": str(e)})
return current_step.output
@cl.on_chat_start
async def on_chat_start():
# Create the Microsoft Foundry Agent Service provider
provider = FoundryChatClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
credential=AzureCliCredential(),
)
# Create agents using MAF
github_agent = provider.as_agent(
name="GithubAgent",
instructions=GITHUB_INSTRUCTIONS,
)
hackathon_agent = provider.as_agent(
name="HackathonAgent",
instructions=HACKATHON_AGENT,
)
events_agent = provider.as_agent(
name="EventsAgent",
instructions=EVENTS_AGENT,
)
# Build a sequential workflow: GitHub → Hackathon → Events
workflow = WorkflowBuilder(start_executor=github_agent) \
.add_edge(github_agent, hackathon_agent) \
.add_edge(hackathon_agent, events_agent) \
.build()
# Store in user session
cl.user_session.set("provider", provider)
cl.user_session.set("github_agent", github_agent)
cl.user_session.set("hackathon_agent", hackathon_agent)
cl.user_session.set("events_agent", events_agent)
cl.user_session.set("workflow", workflow)
cl.user_session.set("mcp_tools", {})
cl.user_session.set("conversation_history", [])
# Add a cleanup handler for when the session ends
@cl.on_chat_end
async def on_chat_end():
pass
def route_user_input(user_input: str):
"""
Analyze user input and return a list of agent names to invoke.
Returns: list of agent names (e.g., ["GitHubAgent", "HackathonAgent", "EventsAgent"])
"""
user_input_lower = user_input.lower()
agents = []
# Example patterns (expand as needed)
if re.search(r"github|repo|repository|commit|pull request", user_input_lower):
agents.append("GitHubAgent")
if re.search(r"hackathon|project idea|competition|challenge|win", user_input_lower):
agents.append("HackathonAgent")
if re.search(r"event|conference|meetup|workshop|webinar", user_input_lower):
agents.append("EventsAgent")
if not agents:
agents = ["GitHubAgent", "HackathonAgent", "EventsAgent"]
return agents
@cl.on_message
async def on_message(message: cl.Message):
workflow = cl.user_session.get("workflow")
github_agent = cl.user_session.get("github_agent")
hackathon_agent = cl.user_session.get("hackathon_agent")
events_agent = cl.user_session.get("events_agent")
conversation_history = cl.user_session.get("conversation_history", [])
user_input = message.content
agent_names = route_user_input(user_input)
conversation_history.append({"role": "user", "content": user_input})
# If more than one agent is selected, use the workflow
if len(agent_names) > 1:
answer = cl.Message(content="Processing your request using: {}...\n\n".format(", ".join(agent_names)))
await answer.send()
agent_responses = []
try:
events = workflow.run(user_input, stream=True, tools=[search_events])
last_author = None
async for event in events:
if event.type == "output" and isinstance(event.data, AgentResponseUpdate):
update = event.data
author = update.author_name or "Agent"
if author != last_author:
if last_author is not None:
await answer.stream_token("\n\n")
await answer.stream_token(f"**{author}**: ")
last_author = author
if update.text:
await answer.stream_token(update.text)
agent_responses.append(f"**{author}**: {update.text}")
full_response = "".join(agent_responses) if agent_responses else answer.content
conversation_history.append({"role": "assistant", "content": full_response})
cl.user_session.set("conversation_history", conversation_history)
answer.content = full_response
await answer.update()
except Exception as e:
await answer.stream_token(f"\n\n❌ Error: {str(e)}\n\n")
conversation_history.append({"role": "assistant", "content": f"Error: {str(e)}"})
cl.user_session.set("conversation_history", conversation_history)
answer.content += f"\n\n❌ Error: {str(e)}"
await answer.update()
else:
# Single agent: route to the appropriate agent
agent_name = agent_names[0]
agent_map = {
"GitHubAgent": github_agent,
"HackathonAgent": hackathon_agent,
"EventsAgent": events_agent,
}
agent = agent_map.get(agent_name, github_agent)
answer = cl.Message(content=f"Processing your request using {agent_name}...\n\n")
await answer.send()
try:
tools_for_agent = [search_events] if agent_name == "EventsAgent" else []
response = await agent.run(user_input, tools=tools_for_agent)
answer.content = str(response)
conversation_history.append({"role": "assistant", "content": answer.content})
cl.user_session.set("conversation_history", conversation_history)
await answer.update()
except Exception as e:
await answer.stream_token(f"\n\n❌ Error: {str(e)}\n\n")
conversation_history.append({"role": "assistant", "content": f"Error: {str(e)}"})
cl.user_session.set("conversation_history", conversation_history)
answer.content += f"\n\n❌ Error: {str(e)}"
await answer.update()
@@ -0,0 +1,14 @@
# Welcome to Chainlit! 🚀🤖
Hi there, Developer! 👋 We're excited to have you on board. Chainlit is a powerful tool designed to help you prototype, debug and share applications built on top of LLMs.
## Useful Links 🔗
- **Documentation:** Get started with our comprehensive [Chainlit Documentation](https://docs.chainlit.io) 📚
- **Discord Community:** Join our friendly [Chainlit Discord](https://discord.gg/k73SQ3FyUh) to ask questions, share your projects, and connect with other developers! 💬
We can't wait to see what you create with Chainlit! Happy coding! 💻😊
## Welcome screen
To modify the welcome screen, edit the `chainlit.md` file at the root of your project. If you do not want a welcome screen, just leave this file empty.
@@ -0,0 +1,181 @@
## Event Name: Build your code-first app with Microsoft Foundry Agent Service (EMEA/US offering)
## Description
The Microsoft Foundry Agent Service is a seamless blend of service and SDK that simplifies the development of robust AI-driven solutions. In this session, you'll learn how to build your own code-first AI agent with Azure that can answer questions, perform data analysis, and integrate external data sources. You'll also explore more complex architectures, including multiple agents working together.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25325/>
---
## Event Name: Transforming Business Processes with Multi-Agent AI using Semantic Kernel
## Description
Discover the power of multi-agent AI systems through live demonstrations and hands-on learning with patterns including group-chat, reflection, selector, and swarm. Harness the Semantic Kernel Process Framework to automate and scale critical business processes, from customer support to project management using Python
## URL
<https://developer.microsoft.com/en-us/reactor/events/25313/>
---
## Event Name: Building Agentic Applications with AutoGen v0.4
## Description
Getting started to build agents and multi-agent teams using AutoGen v0.4. We will cover an overview of the new AutoGen v0.4 architecture and walk you through how to build a multi-agent team with a web-based user interface.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25327/>
---
## Event Name: Prototyping AI Agents with GitHub Models
## Description
Thanks to GitHub Models, all you need to build your first AI Agent is a GitHub account! GitHub Models includes powerful models like OpenAI gpt-4o, DeepSeek-R1, Llama-3.1, and many more, ready to try out in the playground or in your code.
In this session, we'll demonstrate how to connect to GitHub Models from Python, and then build agents using popular Python packages like PydanticAI, AutoGen, and Semantic Kernel.
You can follow along live in GitHub Codespaces, or try the examples yourself anytime after the session.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25481/>
---
## Event Name: Building agents with an army of models from the Azure AI model catalog
## Description
The Azure AI model catalog offers a big variety of models, with different skills and capabilities. While using an off the shelf model to get you started, as developers use more sophisticated workflows, they can leverage specialized models to make the job in their framework of choice. In this presentation we go over the model catalog offering, and how you can build agents that sit of top of an army of models - while not costing you a fortune.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25328/>
---
## Event Name: Multi-Agent API with LangGraph and Azure Cosmos DB
## Description
The rise of multi-agent AI applications is transforming how we build intelligent systems - but how do you architect them for real-world scalability and performance? In this session, well take a deep dive into a production-grade multi-agent application built with LangGraph for agent orchestration, FastAPI for an API layer, and Azure Cosmos DB as the backbone for state management, vector storage, and transactional data.
Through a detailed code walkthrough, youll see how to design and implement an agent-driven workflow that seamlessly integrates retrieval-augmented generation (RAG), memory persistence, and dynamic state transitions. Well cover:
Agent collaboration with LangGraph for structured reasoning
Real-time chat history storage using Azure Cosmos DB - the same database that powers the chat history in ChatGPT, the fastest-growing AI agent application in history
Vector search for knowledge retrieval with Cosmos DB's native embeddings support
FastAPIs async capabilities to keep interactions responsive and scalable
By the end of this session, youll have a clear blueprint for building and deploying your own scalable, cloud-native multi-agent applications that harness the power of modern AI and cloud infrastructure. Whether you're an AI engineer, cloud architect, or Python developer, this talk will equip you with practical insights and battle-tested patterns to build the next generation of AI-powered applications
## URL
<https://developer.microsoft.com/en-us/reactor/events/25314/>
---
## Event Name: Your First AI Agent in JS with Microsoft Foundry Agent Service
## Description
Learn how to build your first AI agent using the JavaScript SDK for Microsoft Foundry Agent Service, a fully managed platform that makes development easy. Youll see how to set it up, connect tools like Azure AI Search, and deploy a simple question-answering agent. With a live demo, youll discover how automatic tool calling and managed state simplify the process. Perfect for beginners, this session gives you practical steps and tips to start your AI agent journey with confidence.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25381/>
---
## Event Name: Prompting is the New Scripting: Meet GenAIScript
## Description
jQuery once made web development easier by abstracting away complexities, allowing developers to focus on building rather than battling browser quirks. Today, AI development faces a similar challenge. New patterns emerge constantly and keeping up can be overwhelming, especially as AI tools—especially agentic ones— become more powerful and complex. What if you could leverage cutting-edge AI capabilities to automate tasks using simple, familiar JavaScript abstractions? Enter GenAIScript—a way to integrate AI into your workflow effortlessly, treating prompts like reusable code snippets. In this talk, well explore how GenAIScript makes AI automation agents feel as intuitive as writing JavaScript, helping you streamline repetitive work without the need for deep AI expertise.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25441/>
---
## Event Name: Knowledge-augmented agents with LlamaIndex.TS
## Description
LlamaIndex is known for making it easy to build Retrieval-Augmented Generation (RAG), but our frameworks also make it easy to build agents and multi-agent systems! In this session we'll introduce Workflows, our basic building block for building agentic systems, and build an agent that uses RAG and other tools.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25440/>
---
## Event Name: AI Agents for Java using Microsoft Foundry and GitHub Copilot
## Description
In this session well show you how to embed advanced AI Agent capabilities into your Java applications using Microsoft Foundry, including setting project goals and experimenting with models and securely deploying production-ready solutions at scale. Along the way, youll learn how GitHub Copilot (in IntelliJ, VS Code, and Eclipse) can streamline coding and prompt creation, while best practices in model selection, fine-tuning, and agentic workflows ensure responsible and efficient development. Whether youre new to AI Agents or looking for advanced agent-building techniques, this session will equip you to deliver next-level experiences with the tooling you already know.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25336/>
---
## Event Name: Building Java AI Agents using LangChain4j and Dynamic Sessions
## Description
Unlock the potential of AI Agents in your Java applications by combining LangChain4j with Azure Container Apps (ACA) dynamic sessions connected to Azure AI services. This session showcases a practical example of building an agent capable of interacting with a remote environment, including file management. Learn how to define custom tools, integrate them into agent workflows, and leverage Azure's scalable infrastructure to deploy intelligent, dynamic solutions.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25337/>
---
## Event Name: Irresponsible AI Agents
## Description
Join us as we explore the potential risks of AI agents and tackle the challenge of embedding trustworthy AI practices into conversational AI platforms! This session dives deep into examples of irresponsible AI agents—showcasing jaw-dropping examples of model failures, adversarial jailbreaks, and other risks that erode trust and compliance.
We'll explore Microsofts cutting-edge tools for trustworthy AI, including content filters, red teaming strategies, and evaluations—featuring live demos of AI agents behaving both responsibly and irresponsibly in ways you wont believe.
🔥 What youll walk away with:
✅ How to spot and mitigate AI risks before they can be exploited
✅ How to deploy Azure AI Content Safety to detect and mitigate risky behavior
✅ The secret sauce to making AI agents trustworthy
Get ready for a session packed with hype, high-stakes AI drama, and must-know strategies to keep your AI on the right side of history. Dont just build AI—build AI that matters!
## URL
<https://developer.microsoft.com/en-us/reactor/events/25388/>
---
## Event Name: Build your code-first app with Microsoft Foundry Agent Service (.NET)
## Description
The Microsoft Foundry Agent Service is a seamless blend of service and SDK that simplifies the development of robust AI-driven solutions. In this session, you'll learn how to build your own code-first AI agent with Azure and C# that can answer questions, perform data analysis, and integrate external data sources. You'll also explore more complex architectures, including multiple agents working together.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25370/>
---
## Event Name: AI Agents + .NET Aspire
## Description
In this session we will share some of the most exciting developments on the .NET platform around Agents. Discover the current status of .NET, including its new features and enhancements. Explore the powerful AI Agent capabilities. And we will do some live coding with Agents and.NET Aspire.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25332/>
---
## Event Name: Semantic Kernel with C# to build multi-agent AI applications powered by Azure Cosmos
## Description
We will walk you through a multi-agent application in C# that is built on top of the Semantic Kernel framework. You will understand the concepts behind agentic applications, understand the implementation details and nuances, and learn how to integrate Azure Cosmos DB as the database for various use-cases.
## URL
<https://developer.microsoft.com/en-us/reactor/events/25455/>
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB