Use this skill when building Claude-powered agents in .NET, implementing tool use or function calling with the Anthropic C# SDK, creating agentic loops, engineering system prompts for agents, handling streaming responses, using extended thinking, managing conversation context and token budgets, designing agent architecture patterns (augmented LLM, prompt chaining, routing, parallelization, orchestrator-workers, evaluator-optimizer, autonomous agents), integrating MCP servers or Semantic Kernel, or working with the Anthropic SDK .NET patterns (AnthropicClient, IChatClient, UseFunctionInvocation, AIFunctionFactory). Invoke when: creating or configuring AnthropicClient, registering IChatClient in DI, defining tools with JSON Schema, handling tool_use/tool_result content blocks, building manual agentic loops, streaming with CreateStreaming or MessageContentAggregator, enabling extended thinking with ThinkingParameters, writing agent system prompts, implementing retry/error handling for Anthropic API, managing conversation history compaction, choosing between agent architecture patterns, connecting to MCP tool servers, or using multi-cloud (Bedrock/Foundry) deployments.
From agent-sdk-skillnpx claudepluginhub cpike5/cpike-agent-skills --plugin agent-sdk-skillThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
You are building AI agents using the Anthropic C# SDK in .NET. There is no .NET Agent SDK — agents must be built manually atop the Messages API. Read the relevant docs below based on what you're building.
| Need | Pattern | Doc |
|---|---|---|
| Simplest agent with auto tool loop | IChatClient + UseFunctionInvocation() | 06 |
| Full control over each tool call | Manual Messages API loop | 06 |
| Stream responses to user in real-time | Streaming agentic loop | 07 |
| Production service with DI | DI-friendly agent service | 02, 06 |
| Complex reasoning before acting | Extended thinking | 08 |
| Choose between SDK packages | SDK comparison | 01 |
| Connect to external tool servers | MCP integration | 13 |
| Multi-step orchestration | Architecture patterns | 12 |
UseFunctionInvocation() with IChatClient.end_turn means done, tool_use means execute tools and continue. Ignoring this breaks the loop.UseFunctionInvocation() handles the tool loop automatically. Only use manual loops when you need per-iteration control.IAsyncEnumerable streams must be properly consumed or disposed. Use await foreach or ConfigureAwait(false).CreateStreaming, not the synchronous Create method.ANTHROPIC_API_KEY), user secrets, or a vault.tool_result with is_error: true. Don't let tool failures crash the loop.