Build persistent agents on Azure AI Foundry using the Microsoft Agent Framework Python SDK.
48
52%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/agent-framework-azure-ai-py/SKILL.mdQuality
Discovery
40%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description identifies a clear and distinctive technology niche (Azure AI Foundry + Microsoft Agent Framework Python SDK), which minimizes conflict risk. However, it is too terse—it lacks a 'Use when...' clause, lists only one high-level action, and misses common keyword variations that users might naturally use when requesting help with this technology.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about building, configuring, or deploying agents on Azure AI Foundry, or mentions the Microsoft Agent Framework SDK.'
List more specific concrete actions such as 'configure agent tools, manage conversation threads, integrate OpenAPI specs, handle file search and code interpreter capabilities'.
Include natural keyword variations users might say, such as 'Azure agents', 'AI Foundry agents', 'azure-ai-projects', or 'agent SDK'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Azure AI Foundry, Microsoft Agent Framework Python SDK) and a general action ('Build persistent agents'), but does not list multiple specific concrete actions like configuring tools, managing agent state, deploying endpoints, etc. | 2 / 3 |
Completeness | Describes what the skill does ('Build persistent agents on Azure AI Foundry') but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill. Per rubric guidelines, a missing 'Use when...' clause caps completeness at 2, and since the 'what' is also thin, this scores a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant keywords like 'Azure AI Foundry', 'Microsoft Agent Framework', 'Python SDK', and 'persistent agents', but misses common user variations such as 'Azure agents', 'AI agent', 'foundry agent', 'azure-ai-agent', or mentioning specific capabilities users might ask about. | 2 / 3 |
Distinctiveness Conflict Risk | The combination of 'Azure AI Foundry', 'Microsoft Agent Framework', and 'Python SDK' creates a very specific niche that is unlikely to conflict with other skills. This is a clearly distinct technology stack. | 3 / 3 |
Total | 8 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a solid, actionable skill with excellent executable code examples covering the full API surface of Azure AI Agent Framework. Its main weaknesses are redundancy (the complete example repeats earlier patterns, and the async context manager boilerplate appears 7+ times), generic filler sections at the end, and lack of error handling/validation guidance for cloud service interactions. Trimming redundancy and adding error recovery patterns would significantly improve it.
Suggestions
Remove or significantly condense the 'Complete Example' section since it mostly repeats patterns already demonstrated in individual sections, or move it to a reference file.
Add error handling guidance for common failure modes (invalid credentials, missing project endpoint, tool execution failures) with explicit validation checkpoints.
Remove the generic 'When to Use' and 'Limitations' boilerplate sections—they add no skill-specific value and waste tokens.
Provide the referenced bundle files (references/tools.md, references/mcp.md, etc.) to support the progressive disclosure structure.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is mostly efficient with good code examples, but there's significant redundancy—the 'Complete Example' section largely repeats patterns already shown in individual sections (function tools, streaming, threads, structured outputs). The boilerplate async context manager setup is repeated 7+ times. The 'When to Use' and 'Limitations' sections are generic filler that add no value. | 2 / 3 |
Actionability | All code examples are fully executable, copy-paste ready Python with correct imports, async patterns, and concrete usage. The examples cover the full range of capabilities (basic agent, function tools, hosted tools, streaming, threads, structured outputs) with specific, runnable code. | 3 / 3 |
Workflow Clarity | The individual code examples are clear, but there's no explicit workflow for the overall process of setting up and deploying an agent (e.g., no validation steps for checking credentials, verifying the project endpoint, or handling common errors). For a skill involving cloud service interactions, missing error handling guidance and no feedback loops for failed deployments caps this at 2. | 2 / 3 |
Progressive Disclosure | The skill references four reference files (tools.md, mcp.md, threads.md, advanced.md) which is good structure, but no bundle files were provided to verify they exist. The main file itself is quite long (~250 lines of content) with the Complete Example section being largely redundant with earlier sections—that content could have been in a reference file instead. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
76aea27
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.