Start Debugging

The coding agents tracker

One bookmark for coding agents, LLMs, and MCP.

This site uses Walter, an AI agent, for research, writing, and maintenance. Editorial and verification process

Posts on AI coding agents, LLMs, and the Model Context Protocol: Claude Code, Cursor, Copilot, Microsoft Agent Framework, MCP and skills.

What to read first

Claude Code vs Cursor vs Copilot Agent Mode settles where each wins, and an AI agent vs an AI workflow decides who owns control flow. For .NET, start with Microsoft Agent Framework 1.0, then Agent Framework vs Semantic Kernel for the fork. For MCP, what the protocol is explains it, ACP vs MCP separates it from the editor-side protocol, and a custom server in C# builds one. MCP C# SDK 2.0 is stateless by default; migrating 1.x to 2.x keeps older clients connected. A 401 after OAuth is usually the token audience mismatch.

For Claude Code, a CLAUDE.md that changes behaviour leads, and subtask vs fork vs background agent decides what gets its own context; for multi-day jobs, a coordinator agent plus workers splits the work, and Copilot local sandboxing fences each agent. Before widening an allowlist, read the 2.1.251 permission-check bypasses, and make guard hooks fail closed with onFailure: "block". What an agent skill is explains why skills beat a longer prompt, and tool calling why a schema beats either. One AGENTS.md for every tool ends instruction drift. On the Claude API, prompt-cache diagnostics name what broke the cache, and ant apply keeps managed agents and skills in git.

What’s on this page

The list below auto-collects posts tagged with any of: ai-agents, llm, mcp, claude-code, cursor, github-copilot, agent-skills, microsoft-agent-framework. Newest first.

Companion: the security tracker for locking agents down.

Index (270 posts)

2026 / 11

  • How to Give Your Coding Agent the Microsoft Agent Framework Builder Skills

    Install agent-framework-builder-dotnet and agent-framework-builder-python into Claude Code, Copilot, Cursor or Codex with gh skill install or npx skills add, pin the version, wire the Learn MCP server, and keep the skill updated.

  • How to Scaffold, Eval and Replay a Cursor Agent SDK PR Bot

    Use agent-sdk init, agent-sdk eval and agent-sdk github replay (@grok/agent-sdk 0.6.0) to build a pull request review bot, pin its behavior with evals, and test it against real PRs without pushing a commit.

  • How to Manage Claude Managed Agents, Skills and Memory Stores as Code with ant apply

    Keep Claude Managed Agents, skills, environments and memory stores in git and reconcile them with `ant apply` (anthropic-cli 1.30.0+, current 2.9.0). The file layout for each kind, what claude-lock.json records and why you must commit it, how drift, --force and --prune behave, why memory stores attach through deployments rather than agents, and a GitHub Actions workflow that applies on merge.

  • How to Trace Anthropic SDK Calls With the Built-In OpenTelemetry Export

    The Anthropic Python and TypeScript SDKs now emit OpenTelemetry spans on their own: register a tracer provider before the first call and every messages.create becomes an anthropic.messages.create CLIENT span with gen_ai.* token, model and stop-reason attributes. Content mode, conversation IDs, user.id baggage, linking to the Claude Platform's server-side spans, streaming and tool runner behavior, and the env-var override trap, checked against anthropic 2.8.0.

  • Agent Framework 1.28: A2A Hosting Returns Messages Only, and A2AAgent Takes an Options Object

    Microsoft Agent Framework for .NET 1.28.0 removes A2AServerRegistrationOptions.AgentRunMode, so hosted A2A agents always answer with a message, and replaces the id/name/description overloads on A2AAgent and AsAIAgent with A2AAgentOptions. Here is what breaks and how to migrate.

  • How to Find Out Why a Claude API Prompt Cache Missed With the diagnostics Request Object

    Send diagnostics.previous_message_id on every Messages API call and Claude tells you which part of the prompt broke the cache: model_changed, system_changed, tools_changed or messages_changed, plus an estimate of the tokens you paid to rewrite. Request and response shapes, the pending and not-found states, streaming, a logging helper for anthropic 2.7.0, and the limits.

  • How to Add or Change a Tool Mid-Conversation Without Invalidating the Claude Prompt Cache

    Stop editing the tools array between turns. Append a role: system message with tool_addition and tool_removal blocks (beta inline-tools-2026-09-15) so a Claude agent gains, loses or re-versions tools while the cached prefix and preserved thinking stay valid. Placement rules, defer_loading, schema changes, error codes and model support.

  • How to Keep a Long Claude Agent Loop Under the Context Limit with On-Demand Compaction

    Use the Claude API's on-demand compaction parameter (beta compact-2026-09-04) to summarize a tool-calling agent loop before it outgrows the 1M window: when to trigger it, where to cut so tool calls and thinking stay valid, how to write the summarization instructions, and the stop reasons, errors and billing fields that trip people up.

  • MCP C# SDK 2.4 Serves Agent Skills with skills/list and skills/get

    ModelContextProtocol 2.4.0 ships ModelContextProtocol.Extensions.Skills, an experimental package that implements the SEP-2640 Skills extension: one call to publish a folder of SKILL.md directories, and client helpers that verify every file against a SHA-256 manifest.

  • Copilot's Upgrade Agent Now Migrates .NET Apps to Windows Arm64: What It Is Actually Looking For

    On November 5, 2026 Microsoft added a Windows Arm64 migration scenario to the GitHub Copilot upgrade agent. Here is what the blockers look like in a real .NET project, what the agent can and cannot verify, and how to check the result yourself.

  • What Is GitHub Copilot Fusion and Which Effort Level Should You Pick?

    Copilot Fusion, generally available since October 28, 2026, is a runtime model router that picks a model and an execution pattern (Single, Cascade, or Critique) per prompt. Here is how the three patterns work, what Fusion Standard, High, and Max cost you in AI credits, how to lock the effort level with managed-settings.json, and the gotchas the docs bury.

  • ACP vs MCP: What the Agent Client Protocol Does That MCP Doesn't

    ACP (Agent Client Protocol, v1) connects an editor to a coding agent; MCP (spec 2026-07-28) connects an agent to tools. They sit on opposite sides of the agent and are used together: ACP's session/new even carries the MCP servers the agent should start. Here is the feature matrix, the wire flow, and a working agent and client checked against @agentclientprotocol/sdk 2.4.0.

  • What Is Microsoft eXecution Container (MXC) and How Copilot Sandboxes Tool Execution

    MXC is Microsoft's MIT-licensed SDK for running untrusted code, including model output, plugins and tools, under one deny-by-default policy that it maps to Seatbelt on macOS, bubblewrap on Linux and ProcessContainer on Windows. Here is what MXC SDK 1.0.1 and schema 1.0.0 actually define, how Copilot CLI hands it a policy per process, and what stays outside the box.

  • NuGet Packages Can Now Carry Agent Skills: What Lives in the skills/ Folder

    On November 3, 2026 the .NET team showed agent skills shipping inside NuGet packages as skills/<name>/SKILL.md. Here is the layout, how restore exposes it through project.assets.json, the two tools that read it today, and what is still missing.

  • What Is the MCP Tasks Extension and When Do You Need Poll-Based Long-Running Tools

    The MCP Tasks extension (io.modelcontextprotocol/tasks, spec 2026-07-28, SEP-2663) lets a server answer tools/call with a durable task handle instead of a result. The client polls tasks/get, answers mid-flight questions with tasks/update, and can cancel or reconnect. Here is the wire protocol, what changed from the experimental 2025-11-25 version, when a task is worth it, and a working server and client checked against @modelcontextprotocol/ext-tasks 0.2.2.

  • What Is Claude Tag and How Does It Bring Claude Into Slack

    Claude Tag is Anthropic's shared Slack agent: one org-owned identity per channel scope, with channel memory, admin-granted connectors, a GitHub App for draft PRs, and a monthly spend limit. Here is what it is, how setup and pairing work, how it differs from the old Claude in Slack and Claude Code in Slack apps, and the data-retention and billing details to check before you turn it on.

  • Agent Framework 1.27: A Redirect Can No Longer Switch Your Declarative Workflow to an Authenticated HttpClient

    Microsoft Agent Framework for .NET 1.27.0 makes DefaultHttpRequestHandler throw HttpRequestException when its client-provider callback returns a client for a redirect destination. Here is why that hole existed, what breaks, and how to rewrite the callback.

  • A Coordinator Agent Plus Worker Agents for Multi-Day Projects

    A coding agent loses its context every session, so a project that runs for days needs its memory in the repository. Make the coordinator a small script and a JSON ledger, run every worker as a fresh `claude -p` session in its own git worktree with a hard scope and budget, and have the coordinator verify and merge the work itself. Tested with a stub worker; flags pinned to Claude Code 2.1.310.

  • Retry and Backoff for Long Agent Loops Under Overloaded and Rate-Limit Errors

    The Anthropic SDK retries a failed call twice in about 1.2 seconds, which is fine for a chat request and wrong for a 200-turn agent run. Classify every failure into retry-after, capacity, transient or terminal, retry the model turn (never the tool call), share one pause gate across workers, catch the mid-stream overloaded_error that arrives as a 200, and checkpoint so a dead run resumes. Tested against anthropic 2.3.0 for Python.

2026 / 10

  • Fail-Closed vs Fail-Open Hooks for Coding Agent Guardrails: What Claude Code, Cursor, Copilot, Codex and Gemini CLI Actually Do

    A guard hook that crashes or times out lets the dangerous command through in most coding agents. Fail closed for pre-action guards, fail open for everything else, and make the script fail closed by itself because Copilot, Codex and Gemini CLI treat a timeout as allow. Compared on Claude Code 2.1.295+, Cursor hooks, Copilot CLI 1.0.105, Codex and Gemini CLI, with a portable guard script.

  • Migrate a Coding Agent from Claude Sonnet 4.6 and Opus 4.7 to the 5.5 Family: Model IDs, Effort, and Cost

    Moving an agent from claude-sonnet-4-6 or claude-opus-4-7 to claude-sonnet-5-5 or claude-opus-5-5 is not just a model ID swap. Thinking is always on, thinking-off and forced tool_choice now return 400, the effort defaults moved, Sonnet counts about 30% more tokens, and Claude Code ignores your old effortLevel on Opus 5.5. Here is the full checklist with before/after code.

  • Specialist A2A Agents vs Distributed Skills over MCP: When to Collapse an Agent into a Skill

    If a specialist agent is just a model loop wrapped around a few read-only calls into your own services, collapse it into a skill served over MCP: a SKILL.md plus typed tools that the parent model calls directly. Keep it an A2A agent when it needs its own model, private context, a long multi-step workflow or an independent lifecycle. Here is the decision matrix, the measured cost of each path, and the Agent Framework 1.17 wiring.

  • Claude Haiku 5.5 vs Sonnet 5.5 vs Opus 5.5 for Coding-Agent Subagents: Picking a Model per Role

    Run the orchestrator on claude-opus-5-5, give implementer and reviewer subagents claude-sonnet-5-5, and send search, triage and summarizing work to claude-haiku-5-5 at medium effort. Here is the role matrix, the cost math per subagent run, Haiku 5.5's 100k-token price cliff, and the Claude Code model-resolution rules that silently override your choice.

  • Copilot Local Sandbox vs Cloud Sandbox vs a Dev Container: How Much Isolation Each Gives an Agent

    Turn on the local sandbox for everyday Copilot CLI work, move to a cloud sandbox when the code or the task should never touch your laptop, and use a dev container when the team needs the same reproducible toolchain. Compared on Copilot CLI 1.0.104: what each boundary isolates, what it leaks, what it costs, and how to stack them.

  • Copilot Dynamic Workflows vs /fleet vs GitHub Agentic Workflows: Which Multi-Agent Option to Reach For

    Use /fleet for a one-off parallel task in your terminal, a dynamic workflow when the same multi-agent process has to run the same way twice, and GitHub Agentic Workflows when that process runs unattended on repository events. Compared on Copilot CLI 1.0.103 and gh-aw v0.93.6: who plans the split, limits, resume, permissions, write safety and billing.

  • Fix: Claude Code hooks fail with "Plugin directory does not exist"

    A plugin hook fails with "Failed to run: Plugin directory does not exist" when the directory your session loaded the plugin from is gone: an update past the 14-day orphan window, a claude.ai sync that moved the folder to .trash, or a --plugin-dir you moved. Run /reload-plugins, read its summary line, and know which cases need a restart. Checked against Claude Code 2.1.310.

  • Agent Framework 1.26: AG-UI Endpoints Stop Turning Scoped Agents into Singletons

    Microsoft Agent Framework 1.26.0 makes MapAGUIServer resolve the keyed AIAgent, its AgentSessionStore, and the isolation key provider per request, and adds a selector overload that picks the agent from the HttpContext.

  • Fix: Copilot agent commands fail with "Operation not permitted" or a network denial after you enable local sandboxing

    Run /sandbox policy <command> to see what the sandbox blocked, then grant the path or host it needs, update Copilot CLI to 1.0.103 for the localhost, proxy and Linux fixes, and only bypass a command on purpose.

  • Fix: "API Error: Repeated 529 Overloaded errors" ends a long headless Claude Code run

    A claude -p run on Opus with an API key gives up after three consecutive 529s, about 1.5 seconds of backoff, no matter what CLAUDE_CODE_MAX_RETRIES says. Add --fallback-model, set CLAUDE_CODE_RETRY_WATCHDOG=1 with a max wait, or widen the 529 backoff with the OVERLOADED_RETRY delay variables. Checked against Claude Code 2.1.309.

  • Fix: Claude Code stuck on "Request rejected as unprocessable by the model" in an image-heavy session

    Claude Code 2.1.289 and earlier resend every screenshot on every turn, so one refused request means every later turn is refused too. Update to 2.1.290+ and resume with claude --continue; the client then trims the oldest images to 510, 255, then 127. On an old build, /compact or /clear. Then stop the screenshots piling up.

  • How to Let GitHub Copilot Drive a Desktop App With Computer Use

    Turn on GitHub Copilot computer use in Copilot CLI and the Copilot app on macOS and Windows, grant the macOS Accessibility and Screen Recording permissions, approve apps per session or always, write prompts that keep the agent read-only, and lock it down with deny rules and the features.computerUse managed setting.

  • MCP C# SDK 2.3: McpClient.ServerInfo is now nullable, and your build may notice

    ModelContextProtocol 2.3.0, released October 20, 2026, changes McpClient.ServerInfo from Implementation to Implementation? because 2026-07-28 servers may omit their identity from server/discover. Here is why, what breaks under warnings-as-errors, and the one-line fix.

  • How to Isolate Users and Sessions in a Foundry Hosted Microsoft Agent Framework Agent

    On container protocol 2.0.0, Foundry hosted agents isolate conversations and sessions per Entra caller by default. When your own backend fronts many end users, you delegate with x-ms-user-identity, grant a custom impersonation role, and key everything your container stores by session ID plus user ID. Here is the C# for each layer and the traps that leak data between users.

  • How to Make a Claude Code Hook Fail Closed with onFailure: "block"

    Since Claude Code v2.1.295, a command or HTTP hook can set onFailure to "block" so a guard that crashes, times out, cannot start or prints invalid JSON stops the tool call instead of waving it through. Here is the config, what counts as a failure, the events where it does nothing, and the exit-0 trap no setting can catch.

  • How to Give Each Claude Code Subagent Its Own Compaction Threshold with autoCompactWindow

    Claude Code v2.1.296 lets a subagent auto-compact earlier than the main conversation. Set autoCompactWindow in the subagent's frontmatter or --agents JSON as a plain integer from 100000 to 1000000, and watch out for the 200k parsing trap, the CLAUDE_CODE_AUTO_COMPACT_WINDOW override, and the --agent session mode where the field does nothing.

  • How to Monitor Agent-Authored PRs After Deploy with Cursor Rollouts and Datadog

    Wire Cursor Rollouts (launched September 23, 2026) to your CI and to Datadog so every PR, including the ones a cloud agent wrote, gets a rollout plan before merge and per-environment checks at deploy, 20 minutes, 1 hour, 1 day and 3 days. Covers the DeploymentsService API, a GitHub Actions job, the Datadog MCP data source, and the gotchas that leave changes stuck in Pending.

  • How to Split a Long-Running Task Across Agents with a Cursor Projects Coordinator and Shared Context Files

    A practical setup for Cursor Projects: prepare the repo so every worker starts warm, seed the Project's shared Context with a plan, conventions and a slice ledger, cut the work into disjoint PR-sized slices, and let subscriptions keep it moving. Covers Cursor 3.24, plan and admin gates, and the gotchas of a Context that lives outside git.

  • How to Request a Copilot Code Review From the REST API and Set Its Effort Level

    Request a GitHub Copilot code review from a script with the REST requested_reviewers endpoint, the GraphQL requestReviewsByLogin mutation, or gh pr edit, then control whether it runs at Lite or Balanced effort. Covers the bot login, the effort precedence chain, why the per-request effort field announced on October 2, 2026 is not in the published schemas yet, and how to read the effort that actually ran.

  • Azure MCP Server 3.0 rejects unknown parameters and creates resources secure by default

    Azure MCP Server 3.0.0 shipped on October 12, 2026. Tool calls with unknown parameters now fail, options like subscription and tenant were removed from many tools, new Storage accounts disable Shared Key auth, and the server speaks the stateless MCP 2026-07-28 protocol.

  • How to Export GitHub Copilot App Agent Sessions to an OpenTelemetry Backend

    Send GitHub Copilot app agent traces, token metrics and events to your own OTLP collector with the telemetry block in enterprise managed settings. Covers every telemetry key, the six content-capture classes, delivery via .github-private, MDM or a root-owned file, channel precedence, a collector config with bearer auth, and the gotchas that make exports silently go nowhere.

  • How to Turn On Copilot Local Sandboxing and Restrict Which Directories, Hosts, and Credentials an Agent Can Touch

    Enable GitHub Copilot local sandboxing in Copilot CLI 1.0.95 and the Copilot app, then lock down filesystem paths, outbound hosts, git/gh tokens and masked environment variables. Covers the settings.json keys, /sandbox policy, the bypass escape hatch, enterprise enforcement, and the gotchas on macOS, Linux and Windows.

  • How to Define a GitHub Copilot CLI Dynamic Workflow and Run It From CI

    Write a Copilot dynamic workflow with defineWorkflow in .github/extensions/<name>/extension.mjs, then run it headless with copilot workflow run in GitHub Actions. Verified on Copilot CLI 1.0.95 and @github/copilot-sdk 1.0.19: the --experimental flag, project-extension trust, flag order, exit codes, result files and permissions.

  • Genkit Dart 1.0: GenkitRouter Replaces startFlowServer, and Old Flutter Clients Need a Flag

    Genkit Dart 1.0.0 freezes the API, moves HTTP serving into core with GenkitRouter, and changes the streamed error frame. Shipped Flutter apps on a 0.17 client need sendLegacyErrorFrame.

  • What Is Magentic Orchestration in Microsoft Agent Framework

    Magentic orchestration is Agent Framework's port of AutoGen's Magentic-One: an LLM manager writes a fact sheet and plan (the task ledger), then grades every round with a JSON progress ledger to pick the next agent, detect stalls and replan. Here is how the loop works on Microsoft.Agents.AI.Workflows 1.24.0 and agent-framework-orchestrations 1.3.1, what it costs per round, and the limit defaults that let it run forever.

  • Semantic Kernel 1.81 Stops FileIOPlugin From Leaking Files Outside AllowedFolders

    Semantic Kernel .NET 1.81.0 fixes a FileIOPlugin oracle: WriteAsync told the model a file outside AllowedFolders existed, was read-only, and where it lived. Measured before and after.

  • What Is the GitHub Copilot SDK, and What Can You Build With It?

    The GitHub Copilot SDK (1.0.18, October 8, 2026) is a thin client for the Copilot CLI runtime: your app speaks JSON-RPC to the same agent loop that powers Copilot CLI, with built-in file and shell tools, MCP, sub-agents, hooks, and BYOK. How it is wired, four things you can build with it, and the defaults that will bite you in production.

  • Agent Framework 1.24: The Anthropic Agent Package Is Stable, Except for Beta Services

    Microsoft.Agents.AI.Anthropic 1.24.0 drops the preview suffix and depends on Anthropic 12.53.0. Agents built from IAnthropicClient are now stable API, while the client.Beta extensions are marked experimental under MAAIANTHROPIC001, which extension-method calls do not trigger.

  • What Is GitHub Agentic Workflows, and How Is It Different From GitHub Actions?

    GitHub Agentic Workflows (gh-aw v0.91.5) compiles a Markdown file into a hardened GitHub Actions .lock.yml that runs Copilot, Claude Code, Codex, Gemini or Pi in a read-only, firewalled job and applies writes through safe-outputs. What it adds on top of Actions, the jobs it generates, and when a plain workflow with claude-code-action is still the better tool.

  • What Is the Agent Harness in Microsoft Agent Framework

    The Agent Harness is Microsoft Agent Framework's batteries-included runtime: one call (AsHarnessAgent in .NET, create_harness_agent in Python) wraps any chat client in a tool loop with todos, plan/execute modes, file memory, tool approval, compaction and OpenTelemetry. Here is what it actually sends to the model on Microsoft.Agents.AI.Harness 1.23.0, what it costs per call, and how to trim it.

  • What Is a Context Window and How Do Agents Stretch It in 2026

    A context window is everything the model can see in one request: system prompt, tool definitions, history, tool results, thinking and the reply. Here is what counts, what happens at the limit on claude-opus-5-5 and friends, and the six techniques agents use to work past it: deferred tools, context editing, compaction, memory, subagents and output filtering.

  • What Is Tool Calling and Why JSON Schemas Matter More Than Prompts

    Tool calling is a protocol, not magic: the model emits a structured request matching a JSON Schema you supplied, your code runs it, and the result goes back as a message. The schema and its descriptions are rendered into the model's prompt and, with strict mode, into a decoding grammar, so they shape behaviour more reliably than any system-prompt instruction. Here is how it works on claude-sonnet-5-5 and OpenAI strict mode, with schema patterns that make invalid calls impossible.

  • What Is the Difference Between an AI Agent and an AI Workflow?

    In a workflow, your code decides the next step and the model fills in each step. In an agent, the model decides the next step and your code only executes it. That one question (who owns the control flow) determines cost, latency, testability and failure modes. Here is the distinction as Anthropic, Microsoft Agent Framework and LangGraph define it, with the same task built both ways in Python against claude-haiku-4-5 and claude-sonnet-5-5.

  • Agent Framework 1.23: Function Middleware Can Finally Swap the Tool It Is Calling

    Microsoft Agent Framework .NET 1.23.0 honors assignments to FunctionInvocationContext.Function, so middleware can redirect a tool call to a different AIFunction. A new WrapWithPendingMiddleware helper keeps the rest of the chain in the loop.

  • What Is an Agent Skill, and How Is It Different from a System Prompt?

    An agent skill is a folder with a SKILL.md file that the agent loads on demand: only its name and description sit in the system prompt, the instructions arrive when a task matches, and bundled scripts run without ever entering context. Here is how that differs from a system prompt in cost, scope, invocation and trust, with the exact limits from the Agent Skills spec and Claude Code.

2026 / 09

2026 / 08

2026 / 07

2026 / 06

2026 / 05

2026 / 04

2026 / 03

2026 / 01

All pillars Home