Skip to content

Enhance FAOS documentation and fix evaluator contract issues - #2637

Merged
Luffy Chen (XOEEst) merged 37 commits into
microsoft:mainfrom
XOEEst:main
Jun 17, 2026
Merged

Enhance FAOS documentation and fix evaluator contract issues#2637
Luffy Chen (XOEEst) merged 37 commits into
microsoft:mainfrom
XOEEst:main

Conversation

@XOEEst

Copy link
Copy Markdown
Contributor

This pull request introduces comprehensive updates to the Foundry Agent Optimizer and evaluation workflows, modernizing the eval.yaml contract and associated documentation, and adding new evaluation prompts. The changes standardize dataset and optimizer configuration fields, deprecate legacy keys, and clarify the generation and usage of evaluation files and workflows. These improvements ensure consistency, better integration with current azd commands, and clearer guidance for both generating and applying evaluations and optimizations.

Key changes include:

1. Modernization of eval.yaml Contract and Documentation

  • Standardized the eval.yaml schema to use a nested dataset object with local_uri, name, and version fields, and added validation_dataset. Deprecated legacy fields like dataset_file, dataset_reference, and validation_reference, which are now only normalized in memory for backward compatibility. Updated all references and documentation to reflect this new contract. [1] [2] [3] [4] [5] [6]

  • Updated optimizer configuration fields: replaced max_iterations with max_candidates and optimization_config.model with optimization_config.model_search_space, clarifying the allowed optimizer models and how to select or verify them. [1] [2]

2. Improved Evaluation and Optimization Workflows

  • Recommended using azd ai agent eval generate over legacy init flows for generating evaluation files, with clear instructions and updated workflow documentation to reflect this best practice. [1] [2] [3]

  • Clarified the process for applying optimizer candidates and running optimizations, including validation steps, review points, and safe deployment practices.

3. Expanded and Updated Evaluation Prompts

  • Added new integration prompts to evals/microsoft-foundry/eval.yaml for generating evals, scaffolding agents, applying optimizer candidates, evaluating deployed agents, analyzing failures, and enabling continuous evaluation monitoring, each with detailed grader configurations.

4. Backward Compatibility and Data Normalization

  • Ensured that legacy fields in existing eval.yaml files are still supported in memory for reading but are not written in new files, maintaining backward compatibility while guiding users toward the new schema. [1] [2] [3]

5. Documentation and Guidance Enhancements

  • Updated all relevant markdown documentation to provide clearer, step-by-step guidance for users, including new tables mapping fields to their purposes, and explicit instructions for when and how to generate or update evaluation files and workflows. [1] [2] [3] [4]

These changes collectively modernize the evaluation and optimization process for Foundry agents, making workflows more robust, user-friendly, and aligned with current best practices.## Description

Checklist

  • Tests pass locally (cd tests && npm test)
  • Title has one of the prefixes: fix:, feat:, feature:, chore:, misc:, test:, eval:
  • If modifying skill descriptions: verified routing correctness with integration tests (In tests/, npm run test:integration -- <skill> or npm run test:vally -- --skill <skill>)

Related Issues

Luffy Chen (XOEEst) and others added 30 commits May 5, 2026 22:38
Address PR microsoft#2174 review comments by expanding FAOS as Foundry Agent Optimization Service on first use and making the Step 8 Python config snippet copy-paste safe.

The minimum contract example now imports os and preserves the app's existing model-selection fallback instead of hard-coding MODEL_DEPLOYMENT_NAME unless that is already what the app uses.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
# Conflicts:
#	plugin/skills/microsoft-foundry/SKILL.md
When creating custom evaluator prompts, treat the runtime-enforced JSON schema as authoritative: result plus reason. Preserve user-provided rubric text, but remove or normalize conflicting output schemas such as score/reasoning or duplicate OUTPUT FORMAT blocks before calling evaluator_catalog_create.

Add observe skill test coverage for the promptText guardrail so future edits keep the result/reason contract visible.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the 0-to-1 scoringType/minScore/maxScore details from the sample custom evaluator prompt. The important guardrail is the output contract: preserve the rubric, but avoid conflicting output schemas because the runtime enforces result/reason.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Restore plugin/skills/microsoft-foundry/SKILL.md from upstream/main so this PR no longer carries a line-ending-only change for the top-level skill file.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the microsoft-foundry skill documentation and eval suite to reflect the modernized eval.yaml contract (nested dataset object, optimizer option renames) and adds new integration prompts covering Agent Optimizer and evaluation workflows.

Changes:

  • Updated multiple Foundry skill reference docs to use dataset.local_uri/dataset.name/dataset.version, validation_dataset, and the new optimizer option keys (max_candidates, optimization_config.model_search_space).
  • Revised optimization workflow guidance to prefer azd ai agent eval generate and to pass an explicit --optimize-model.
  • Added several new routing integration stimuli to evals/microsoft-foundry/eval.yaml for optimizer/evaluation/monitoring scenarios.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
plugin/skills/microsoft-foundry/SKILL.md Updates local eval intent parsing guidance to the new eval.yaml contract keys.
plugin/skills/microsoft-foundry/references/agent-metadata-contract.md Updates the eval.yaml → metadata mapping table and notes legacy key normalization behavior.
plugin/skills/microsoft-foundry/foundry-agent/observe/references/evaluation-suite-generation.md Updates eval.yaml parsing steps for suite generation to new dataset/validation fields.
plugin/skills/microsoft-foundry/foundry-agent/observe/references/deploy-and-setup.md Updates “reuse/refresh cache” rules to reference dataset.local_uri / registered dataset fields.
plugin/skills/microsoft-foundry/foundry-agent/agent-optimizer/references/optimize-workflow.md Updates optimizer workflow to prefer eval generate and explicit --optimize-model.
plugin/skills/microsoft-foundry/foundry-agent/agent-optimizer/references/eval-yaml.md Updates the canonical eval.yaml example and field mapping for optimizer/dataset contract changes.
evals/microsoft-foundry/eval.yaml Adds new routing integration prompts/graders for optimizer and evaluation workflows.

Comment thread evals/microsoft-foundry/eval.yaml Outdated
vebudumu
vebudumu previously approved these changes Jun 15, 2026
# Conflicts:
#	plugin/skills/microsoft-foundry/SKILL.md
Comment thread evals/microsoft-foundry/eval.yaml Outdated
@XOEEst
Luffy Chen (XOEEst) merged commit f0942a6 into microsoft:main Jun 17, 2026
11 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants