Python + AI Weekly Office Hours: Recordings & Resources #280
Replies: 56 comments
-
|
2026/01/06: Do you think companies will create internal MCP servers for AI apps to connect to? Yes, this is already happening quite a bit. Common use cases include:
A particularly valuable use case is data science/engineering teams creating MCP servers that enable less technical folks (marketing, PMs, bizdev) to pull data safely without needing to write SQL. The pattern often starts with an engineer building an MCP server for themselves, sharing it with colleagues, adding features based on their needs, and growing from there. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/06: How do you set up Entra OBO (On-Behalf-Of) flow for Python MCP servers? 📹 5:48 The demo showed how to use the Graph API with the OBO flow to find out the groups of a signed-in user and use that to decide whether to allow access to a particular tool. The flow works as follows:
For the authentication dance, FastMCP handles the DCR (Dynamic Client Registration) flow since Entra itself doesn't support DCR natively. To test from scratch:
Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/06: Which MCP inspector should I use for testing servers with Entra authentication? 📹 20:24 The standard MCP Inspector doesn't work well with Entra authentication because it doesn't do the DCR (Dynamic Client Registration) dance properly. MCP Jam is recommended instead because it properly handles the OAuth flow with DCR. To set it up:
MCP Jam also has nice features like:
One note: enum values in tools don't yet show as dropdowns in MCP Jam (issue to be filed). Links shared: What's the difference between MCP Jam and LM Studio? 📹 34:19 LM Studio is primarily for playing around with LLMs locally. MCP Jam has some overlap since it includes a chat interface with access to models, but its main purpose is to help you develop MCP servers and apps. It's focused on the development workflow rather than just chatting with models. |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/06: How do you track LLM usage tokens and costs? 📹 28:04 For basic tracking, Azure portal shows metrics for token usage in your OpenAI accounts. You can see input tokens and output tokens in the metrics section. You can also:
If you use multiple providers, you need a way to consolidate the tracking. OpenTelemetry metrics could work but you'd need a way to hook into each system. |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/06: How do you keep yourself updated with all the new changes related to AI? 📹 30:32 Several sources recommended:
Particularly recommended:
Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/06: How do you build a Microsoft Copilot agent in Python with custom API calls? 📹 36:30 For building agents that work with Microsoft 365 Copilot (which appears in Windows Copilot and other Microsoft surfaces):
The agent framework team is responsive if there are issues. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/06: As a backend developer with a non-CS background, how do I learn about AI from scratch? 📹 46:39 Recommended approach:
Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/06: What's new with the RAG demo (azure-search-openai-demo) after the SharePoint data source was added? 📹 49:50 The main work is around improving ACL (Access Control List) support. The cloud ingestion feature was added recently, but it doesn't yet support ACLs. The team is working on making ACLs compatible with all features including:
A future feature idea: adding an MCP server to the RAG repo for internal documentation use cases, leveraging the Entra OBO flow for access control. |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/06: Do you think companies will create internal MCP servers for AI apps to connect to? 📹 53:53 Yes, this is already happening quite a bit. Common use cases include:
A particularly valuable use case is data science/engineering teams creating MCP servers that enable less technical folks (marketing, PMs, bizdev) to pull data safely without needing to write SQL. The pattern often starts with an engineer building an MCP server for themselves, sharing it with colleagues, adding features based on their needs, and growing from there. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/13: What advantages do other formats have over .txt for prompts? How do you improve prompts with DSPy and evals? 📹 4:55 Prompty is a template format that mixes Jinja and YAML together. The YAML goes at the top for metadata, and the rest is Jinja templating. Jinja is the most common templating system for Python (used by Flask, etc.). The nice thing about Jinja is you can pass in template variables—useful for customization, passing in citations, etc. Prompty turns the file into a Python list of chat messages with roles and contents. However, we're moving from Prompty to plain Jinja files because:
Recommendation: Keep prompts separate from code when possible, especially long system prompts. Use plain .txt or .md if you don't need variables, or Jinja if you want to render variables. With agents and tools, some LLM-facing text (like tool descriptions in docstrings) will inevitably live in your code—that's fine. For iterating on prompts: Run evaluations, change the prompt, and see whether it improves things. There are tools like DSPy and Agent Framework's Lightning that do automated prompt optimization/fine-tuning. Lightning says it "fine-tunes agents" but may actually be doing prompt changes. Most of the time, prompt changes don't make a huge difference, but sometimes they might. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/13: What is the future of AI and which specialization should I pursue? 📹 11:54 If you enjoy software engineering and full-stack engineering, it's more about understanding the models so you understand why they do what they do, but it's really about how you're building on top of those models. There's lots of interesting stuff to learn, and it really depends on you and what you're most interested in doing. |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/13: Which livestream series should I follow to build a project using several tools and agents, and should I use a framework? 📹 13:33 Everyone should understand tool calling before moving on to agents. From the original 9-part Python + AI series, start with tool calling, then watch the high-level agents overview. The upcoming six-part series in February will dive deeper into each topic, especially how to use Agent Framework. At the bare minimum, you should understand LLMs, tool calling, and agents. Then you can decide whether to do everything with just tool calling (you can do it yourself with an LLM that has tool calling) or use an agent framework like LangChain or Agent Framework if you think it has enough benefits for you. It's important to understand that agents are based on tool calling—it's the foundation of agents. The success and failure of agents has to do with the ability of LLMs to use tool calling. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/13: How does Azure manage the context window? How do I maintain a long conversation with a small context window? 📹 15:21 There are three general approaches:
With today's large context windows (128K, 256K), it's often easier to just wait for an error and tell the user to start a new chat, or do summarization when the error occurs. This approach is most likely to work across models since every model should throw an error when you're over the context window. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/13: How do we deal with context rot and how do we summarize context using progressive disclosure techniques? 📹 19:17 Read through Kelly Hong's (Chroma researcher) blog post on context rot. The key point is that even with a 1 million token context window, you don't have uniform performance across that context window. She does various tests to see when performance starts getting worse, including tests on ambiguity, distractors, and implications. A general tip for coding agents with long-running tasks: use a main agent that breaks the task into subtasks and spawns sub-agents for each one, where each sub-agent has its own focused context. This is the approach used by the LangChain Deep Agents repo. You can also look at how different projects implement summarization. LangChain's summarization middleware is open source—you can see their summary prompt and approach. They do approximate token counting and trigger summarization when 80% of the context is reached. Links shared:
How do I deal with context issues when using the Foundry SDK with a single agent? 📹 25:03 If you're using the Foundry SDK with a single agent (hosted agent), you can implement something like middleware through hooks or events. Another approach is the LangChain Deep Agents pattern: implement sub-agents as tools where each tool has a limited context and reports back a summary of its results to the main agent. For the summarization approach with Foundry agents, you'd need to figure out what events, hooks, or middleware systems they have available. |
Beta Was this translation helpful? Give feedback.
-
|
2026/01/13: Have you seen or implemented anything related to AG-UI or A2UI? 📹 29:02 AG-UI (Agent User Interaction Protocol) is an open standard introduced by the CopilotKit team that standardizes how front-end applications communicate with AI agents. Both Pydantic AI and Microsoft Agent Framework have support for AG-UI—they provide adapters to convert messages to the AG-UI format. The advantage of standardization is that if people agree on a protocol between backend and frontend, it means you can build reusable front-end components that understand how to use that backend. Agent Framework also supports different UI event stream protocols, including Vercel AI (though Vercel is a competitor, so support may be limited). These are adapters—you can always adapt output into another format if needed, but it's nice when it's built in. A2UI is created by Google with Consortium CopilotKit and relates to A2A (Agent-to-Agent). A2UI appears to be newer with less support currently in Agent Framework, though A2A is supported. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/03: What is the new Codex app and how does it compare to GitHub Copilot? 📹 7:40 The Codex app is brand new as of this week. It's a ChatGPT-style UI for code assistance (not just CLI). Key observations from testing:
When testing with a prompt to migrate from Chat Completions API to Responses API:
Interesting finding: When comparing the same migration task done by Codex vs Opus in GitHub Copilot, Codex also changed the frontend to expect Responses format while Opus only changed the backend - something to consider when designing migration prompts. |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/03: What are Skills and how do they work in GitHub Copilot? 📹 15:09 Skills are markdown files (with optional Python scripts) that extend agent capabilities. They're like MCP tool descriptions - teaching GitHub Copilot specialized capabilities. Structure of a skill:
How it works:
Example skills demonstrated:
Where to find skills:
To enable skills in VS Code Stable, search for "chat agent skills" in settings. Links shared: Do you need VS Code Insiders for Skills? 📹 27:15 No, skills work in VS Code Stable but you need to enable them explicitly in settings. Search for "chat agent skills" and enable it since it's in preview. Is there context loss when chaining skills together? 📹 23:39 Context should stay intact within a single VS Code session as long as you haven't exceeded the ~128K token limit causing history compaction. Use the Chat Debug View to see exactly what gets sent to the model and diagnose any issues. |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/03: What's a good workflow for handling PR code reviews? 📹 29:27 A recommended workflow for PR reviews:
Note: The GitHub MCP server doesn't have a tool to reply to inline PR comments, so a custom skill using the GraphQL API was created to fill this gap. Code reviews remain valuable - they catch things you didn't think about. Balance thoroughness with practicality, especially with Copilot's sometimes overly nitpicky or over-engineered suggestions. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/03: How can you run multiple agents in parallel? 📹 43:55 Running multiple agents simultaneously is most useful for:
In VS Code Insiders, options include:
Recommendation: Use parallel agents for the same feature with different models (e.g., GPT 5.2, Opus 4.5, Gemini 3) to see different perspectives, rather than trying to mentally juggle five different features simultaneously. |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/03: What is Pamela working on with MCP tool schemas? 📹 48:17 Research for a PyAI talk evaluating how different type annotations affect MCP server tool performance across agents. Testing four different annotations for the same field:
These are tested across four different agents:
Running 27 sample user inputs against each combination shows differences. For example, Copilot SDK with Haiku performed best with annotated strings for dates compared to other annotation styles. Recommendation: Always set up evaluations for MCP servers to verify tool schemas work as expected. Options include Pydantic AI evals and Azure AI evaluation. |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/03: Is it safe to use an agent for LinkedIn job searching? 📹 55:18 Key considerations to avoid getting blocked:
The LinkedIn agent project uses Playwright to visit pages and an LLM to reason about decisions, which takes similar time to manual browsing. This makes it appear human-like during network request acceptance. For job searching specifically, you likely don't need cookies - use a sandboxed browser for safety. At worst, they might block your IP rather than your account. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/10: Announcement: New models available in GitHub Copilot and Foundry 📹 0:00 This week was all about new models! Several have been released: Claude Opus 4.6 (and Opus 4.6 Fast):
GPT-5.3 Codex:
Claude Code and Codex agents:
Kimmy K2.5:
DeepSeek 3.2 Special:
Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/10: How does the new GitHub Copilot agentic memory feature work? 📹 6:36 GitHub Copilot now has an agentic memory feature in public preview. Here's how it works:
The memories are very specific facts about the codebase that Copilot learned. You can view them, delete individual memories, and the system helps avoid repeated feedback in code reviews (e.g., "I already told you this doesn't matter because..."). For deeper understanding, GitHub published an engineering blog post explaining how the memory system is implemented - useful both for understanding Copilot and for inspiration when building memory into your own agents. Links shared:
Does VS Code Copilot have memory support? 📹 10:10 Yes! VS Code Copilot does have memory support, though it was only recently added and the documentation is catching up. To enable it:
To trigger memory storage, you can say "Remember that..." (e.g., "Remember that we always prefer sentence case for markdown headings in this repo"). Important notes:
Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/10: Can I use Work IQ as an MCP server in VS Code? 📹 14:37 Yes! If you have Work IQ working in Copilot CLI, you can add it to VS Code as an MCP server. Setup steps:
Work IQ is a standard input/output MCP server (runs locally), so you need it installed on your machine. Once configured, you can run What Work IQ can access (read-only):
Caveats:
|
Beta Was this translation helpful? Give feedback.
-
|
2026/02/10: What is Agentic DevOps on GitHub Copilot? 📹 29:16 "Agentic DevOps" refers to using AI agents (like GitHub Copilot) to automate parts of your development workflow. Here are practical examples: Assigning issues to Copilot:
Using Plan Mode for complex tasks:
Requirements for success:
Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/10: How do I connect Atlassian MCP to Azure Foundry? 📹 36:11 A community member asked about adding Atlassian's Rovo MCP Server to Azure AI Foundry agents, but kept getting 401 Unauthorized errors. The issue: Azure Foundry currently only supports static bearer tokens and not complete OAuth flows, which Atlassian requires. Suggestions:
Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/10: How do I work through PR review comments in VS Code? 📹 38:57 When Copilot creates a PR and the code review completes, you may want to work through the review comments in VS Code. Here's a workflow:
|
Beta Was this translation helpful? Give feedback.
-
|
2026/02/10: Can I transfer a Copilot session context to a different workspace? 📹 42:30 A community member asked about opening a workspace, having Copilot understand it, then transferring that knowledge to a different workspace (like resuming a session in a different repo). The answer: While VS Code Copilot doesn't have this built-in, you can build it yourself using the GitHub Copilot SDK. The Copilot SDK lets you:
Example use case shared: Creating a skill that extracts text from PDF images using the Copilot SDK with a multimodal model, because Copilot wasn't sending repo images as attachments (now fixed). Key insight: Everything is just a series of messages. If you extract those messages using the SDK, you can create a new thread/session in a different repo with the same context. The Agent Framework demonstrates this pattern with their "thread example" - create a thread from existing messages, then run a new agent with that thread. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/10: Tip: use prek as a faster alternative to pre-commit 📹 48:24 prek is a "better pre-commit alternative, re-engineered in Rust" - a faster alternative to the popular pre-commit framework. Key features:
Who's using it:
The discovery led to an "Agentic DevOps" discussion about programmatically creating issues across multiple repos to migrate them from pre-commit to prek. Links shared: |
Beta Was this translation helpful? Give feedback.
-
|
2026/02/10: Announcements 📹 47:27 Product updates:
Articles discussed:
Upcoming events:
Extensions mentioned:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Each week, we hold weekly office hours about all things Python + AI in the Foundry Discord.
Join the Discord here: http://aka.ms/aipython/oh
This thread will list the recordings of each office hours, and any other resources that come out of the OH sessions. The questions and answers are automatically posted (based on the transcript) as comments in this thread.
February 10, 2026
Topics covered:
February 3, 2026
Topics covered:
January 27, 2026
Topics covered:
January 20, 2026
Topics covered:
January 13, 2026
Topics covered:
January 6, 2025
Topics covered:
Beta Was this translation helpful? Give feedback.
All reactions