agentops-accelerator 0.3.20__tar.gz → 0.3.22__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.claude-plugin/marketplace.json +1 -1
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/plugin/marketplace.json +1 -1
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/CHANGELOG.md +32 -0
- {agentops_accelerator-0.3.20/src/agentops_accelerator.egg-info → agentops_accelerator-0.3.22}/PKG-INFO +1 -1
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/ci-github-actions.md +6 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/tutorial-end-to-end.md +35 -12
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/tutorial-hosted-agent-quickstart.md +40 -8
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/tutorial-prompt-agent-quickstart.md +203 -41
- agentops_accelerator-0.3.22/infra/e2e/agent-app/requirements.txt +5 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/package.json +1 -1
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/plugin.json +1 -1
- {agentops_accelerator-0.3.20/src/agentops/templates → agentops_accelerator-0.3.22/plugins/agentops}/skills/agentops-workflow/SKILL.md +58 -10
- {agentops_accelerator-0.3.20/plugins/agentops → agentops_accelerator-0.3.22/src/agentops/templates}/skills/agentops-workflow/SKILL.md +58 -10
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22/src/agentops_accelerator.egg-info}/PKG-INFO +1 -1
- agentops_accelerator-0.3.20/infra/e2e/agent-app/requirements.txt +0 -4
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.gitattributes +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/actions/azure-oidc-login/action.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/code-quality-py.instructions.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/copilot-instructions.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/dependabot.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/extensions/agentops-skills/extension.mjs +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/skills/release-management/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/workflows/_build.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/workflows/agentops-watchdog.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/workflows/ci.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/workflows/cut-release.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/workflows/e2e.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/workflows/release.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.github/workflows/staging.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.gitignore +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.pre-commit-config.yaml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.vscode/launch.json +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.vscode/settings.json +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/.vscode/tasks.json +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/AGENTS.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/CONTRIBUTING.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/LICENSE +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/README.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/SECURITY.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/bundles.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/concepts.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/doctor-checks.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/doctor-explained.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/e2e-live-architecture.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/e2e-live-setup.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/foundry-evaluation-sdk-built-in-evaluators.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/how-it-works.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/media/agentops-diagrams.vsdx +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/media/foundry-control-plane.png +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/release-process.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/examples/flat-quickstart/README.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/examples/flat-quickstart/agentops.yaml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/examples/flat-quickstart/dataset.jsonl +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/icon.png +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/infra/e2e/agent-app/Dockerfile +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/infra/e2e/agent-app/app.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/infra/e2e/bootstrap.bicep +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/infra/e2e/bootstrap.parameters.example.json +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/infra/e2e/perrun.bicep +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/launch.json +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/media/foundry.svg +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/media/quickstart.gif +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/.vscodeignore +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/LICENSE +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/README.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/skills/agentops-agent/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/skills/agentops-config/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/skills/agentops-dataset/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/skills/agentops-eval/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/skills/agentops-governance/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/plugins/agentops/skills/agentops-report/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/pyproject.toml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/create_support_agent.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/cut-release.ps1 +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/cut-release.sh +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/e2e_aggregate_summary.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/e2e_data/basic.jsonl +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/e2e_data/rag.jsonl +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/e2e_data/tools.jsonl +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/e2e_demo.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/e2e_hosted_agent.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/e2e_make_transcript.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/e2e_render_config.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/release.ps1 +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/release.sh +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/setup-e2e-new-tenant.ps1 +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/staging.ps1 +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/staging.sh +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/sync-skills.ps1 +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/scripts/sync-skills.sh +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/setup.cfg +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/__main__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/_legacy_ids.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/analyzer.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/catalog.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/errors.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/foundry_config.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/governance.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/latency.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/observability.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/opex.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/opex_workspace.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/posture.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/posture_rules/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/posture_rules/content_filter.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/posture_rules/diagnostics.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/posture_rules/local_auth.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/posture_rules/managed_identity.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/posture_rules/network.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/regression.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/release_readiness.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/safety.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/checks/spec_conformance.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/cockpit.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/config.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/findings.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/history.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/knowledge/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/knowledge/waf-checklist.csv +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/llm_assist/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/llm_assist/_base.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/llm_assist/_bundle_rule.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/llm_assist/_client.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/llm_assist/_dataset_rules.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/llm_assist/_engine.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/llm_assist/_prompt_rules.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/llm_assist/_spec_rules.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/production_telemetry.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/report.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/server/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/server/app.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/server/auth.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/server/chat.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/server/protocol.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/sources/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/sources/azure_monitor.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/sources/azure_resources.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/sources/foundry_control.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/sources/results_history.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/sources/spec_detectors/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/sources/spec_detectors/_base.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/sources/spec_detectors/agents_md.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/sources/spec_detectors/spec_kit.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/agent/time_range.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/cli/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/cli/app.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/core/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/core/agentops_config.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/core/azd_eval.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/core/config_loader.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/core/evaluators.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/core/governance.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/core/release_evidence.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/core/results.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/mcp/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/mcp/server.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/azd_runner.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/cloud_results.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/cloud_runner.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/comparison.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/diagnostics.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/invocations.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/official_eval.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/orchestrator.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/prompt_deploy.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/publisher.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/reporter.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/runtime.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/pipeline/thresholds.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/assert_runner.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/azd_eval_init.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/cicd.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/eval_analysis.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/evidence_pack.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/initializer.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/preflight.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/redteam_runner.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/setup_wizard.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/skills.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/trace_promotion.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/services/workflow_analysis.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/.gitignore +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/agent-server/Dockerfile +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/agent-server/README.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/agent-server/main.bicep +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/agent.yaml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/agentops.yaml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/foundry.svg +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/icon.png +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev-azd.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-dev.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod-azd.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prod.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-prompt-agent.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa-azd.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/pipelines/azuredevops/agentops-deploy-qa.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/pipelines/azuredevops/agentops-pr-prompt-agent.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/pipelines/azuredevops/agentops-pr.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/pipelines/azuredevops/agentops-watchdog.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/project.gitignore +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/sample-traces.jsonl +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/skills/agentops-agent/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/skills/agentops-config/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/skills/agentops-dataset/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/skills/agentops-eval/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/skills/agentops-governance/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/skills/agentops-report/SKILL.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/smoke.jsonl +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/waf-checklist.README.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/waf-checklist.csv +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/workflows/agentops-deploy-dev-azd.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/workflows/agentops-deploy-dev.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/workflows/agentops-deploy-prod-azd.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/workflows/agentops-deploy-prod.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/workflows/agentops-deploy-prompt-agent.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/workflows/agentops-deploy-qa-azd.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/workflows/agentops-deploy-qa.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/workflows/agentops-pr-prompt-agent.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/workflows/agentops-pr.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/templates/workflows/agentops-watchdog.yml +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/utils/__init__.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/utils/azd_env.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/utils/azure_endpoints.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/utils/colors.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/utils/dotenv_loader.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/utils/foundry_discovery.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/utils/logging.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/utils/telemetry.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops/utils/yaml.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops_accelerator.egg-info/SOURCES.txt +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops_accelerator.egg-info/dependency_links.txt +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops_accelerator.egg-info/entry_points.txt +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops_accelerator.egg-info/requires.txt +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/src/agentops_accelerator.egg-info/top_level.txt +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/TESTING.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/fixtures/fake_adapter.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/fixtures/fake_eval_runner.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/integration/.gitkeep +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/integration/test_cli_flat_schema.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/integration/test_pipeline_smoke.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/.gitkeep +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_analyzer.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_categories.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_checks_errors.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_checks_foundry_config.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_checks_observability.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_checks_opex.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_checks_opex_workspace.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_checks_regression.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_checks_safety.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_checks_spec_conformance.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_cli.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_config.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_findings.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_history.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_opex_workspace_check.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_posture_rules.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_results_history.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agent_server.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_agentops_config.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_assert_and_redteam_runners.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_azd_env.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_azd_eval.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_azd_eval_init.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_azd_runner.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_azure_endpoints.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_azure_resources_discovery.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_cicd.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_cli_cockpit_connection_summary.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_cli_cockpit_port_conflict.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_cli_commands.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_cli_explain.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_cloud_results.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_cloud_runner.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_cockpit.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_diagnostics.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_doctor_catalog.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_doctor_cli_explain.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_dotenv_loader.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_e2e_render.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_eval_analysis.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_eval_run_grader_errors.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_evaluators.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_foundry_discovery.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_governance.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_init_command.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_initializer.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_invocations.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_knowledge_loader.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_llm_assist.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_llm_assist_spec_rules.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_mcp_server.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_official_eval.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_pipeline_publisher.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_pipeline_reporter.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_preflight.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_production_telemetry.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_prompt_deploy.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_release_evidence.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_runtime_conversation.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_runtime_model_config.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_setup_wizard.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_skills.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_skills_sync.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_telemetry.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_time_range.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_trace_promotion.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tests/unit/test_workflow_analysis.py +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/tombstones/vscode/CDN_DEPRECATION_REQUEST.md +0 -0
- {agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/uv.lock +0 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"name": "agentops-accelerator",
|
|
14
14
|
"source": "../../plugins/agentops",
|
|
15
15
|
"description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Toolkit and Microsoft Foundry agents.",
|
|
16
|
-
"version": "0.3.
|
|
16
|
+
"version": "0.3.22",
|
|
17
17
|
"keywords": [
|
|
18
18
|
"agentops",
|
|
19
19
|
"evaluation",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"name": "agentops-accelerator",
|
|
14
14
|
"source": "../../plugins/agentops",
|
|
15
15
|
"description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Toolkit and Microsoft Foundry agents.",
|
|
16
|
-
"version": "0.3.
|
|
16
|
+
"version": "0.3.22",
|
|
17
17
|
"keywords": [
|
|
18
18
|
"agentops",
|
|
19
19
|
"evaluation",
|
|
@@ -5,6 +5,38 @@ This format follows [Keep a Changelog](https://keepachangelog.com/) and adheres
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.3.22] - 2026-06-12
|
|
9
|
+
|
|
10
|
+
### Security
|
|
11
|
+
- **E2E agent container dependencies no longer resolve vulnerable Starlette or
|
|
12
|
+
mem0ai versions.** The sample FastAPI service now pins patched FastAPI and
|
|
13
|
+
Agent Framework releases and adds an explicit `mem0ai` pin so Dependabot no
|
|
14
|
+
longer reports the transitive Starlette host-header / file-response advisories
|
|
15
|
+
or the mem0ai unsafe deserialization advisory on the default branch.
|
|
16
|
+
|
|
17
|
+
## [0.3.21] - 2026-06-12
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
- **`agentops-workflow` skill now verifies OIDC tenant, branch upstream
|
|
21
|
+
tracking, and trace-sampling RBAC before wiring CI.** The packaged skill
|
|
22
|
+
instructs agents to treat `AZURE_TENANT_ID` as the tenant that owns the Entra
|
|
23
|
+
app registration / federated credential (not the subscription tenant), to set
|
|
24
|
+
and verify the local trunk branch upstream (`git branch -vv` must show
|
|
25
|
+
`[origin/main]`), and to grant **Reader** on Application Insights (and its
|
|
26
|
+
backing Log Analytics workspace) to the Foundry project managed identity for
|
|
27
|
+
trace-to-dataset flows.
|
|
28
|
+
|
|
29
|
+
### Docs
|
|
30
|
+
- **Prompt-agent, hosted-agent, and end-to-end tutorials hardened end to end.**
|
|
31
|
+
OIDC setup calls out the app-registration tenant; observability steps require
|
|
32
|
+
App Insights Reader for trace sampling and cover workspace-backed App Insights;
|
|
33
|
+
the telemetry step queries `gen_ai.evaluation` results from `AppEvents`
|
|
34
|
+
(table-safe, no hard-coded dates); the evidence step explains expected
|
|
35
|
+
production-telemetry criticals and where the Doctor thresholds live
|
|
36
|
+
(`.agentops/agent.yaml`); and the Cockpit step is now a concrete walkthrough
|
|
37
|
+
(exact `http://127.0.0.1:8090` URL, read-only note, per-section checks, and
|
|
38
|
+
azd-env switching instead of a non-existent URL switch).
|
|
39
|
+
|
|
8
40
|
## [0.3.20] - 2026-06-10
|
|
9
41
|
|
|
10
42
|
### Changed
|
|
@@ -119,6 +119,12 @@ In Settings → Secrets and variables → Actions → **Variables**, add:
|
|
|
119
119
|
| `AZURE_OPENAI_DEPLOYMENT` | Model deployment used by local evaluators and AgentOps cloud eval judges |
|
|
120
120
|
| `APPLICATIONINSIGHTS_CONNECTION_STRING` | Optional fallback when the Foundry project's App Insights connection cannot be auto-discovered |
|
|
121
121
|
|
|
122
|
+
Set `AZURE_TENANT_ID` to the tenant that owns the app registration / federated
|
|
123
|
+
credential used by `AZURE_CLIENT_ID`. Do not use a subscription
|
|
124
|
+
`managedByTenants` tenant id unless the app registration and federated
|
|
125
|
+
credential are also visible in that tenant; otherwise `azure/login` can fail at
|
|
126
|
+
token issuance before AgentOps starts.
|
|
127
|
+
|
|
122
128
|
Then on the Azure side, configure Workload Identity Federation
|
|
123
129
|
(federated credentials) on the app registration so it can be assumed
|
|
124
130
|
from GitHub Actions runs. See
|
|
@@ -122,7 +122,7 @@ prompts.
|
|
|
122
122
|
| Azure CLI is installed and `az login` succeeds with the tenant that owns the Foundry project. | AgentOps, Foundry SDK calls, Doctor, Cockpit, and CI setup all need the same Azure identity context. |
|
|
123
123
|
| You have the Foundry project endpoint and can create or publish one Travel Agent target. | The target is either `travel-agent:<version>` for prompt agents or an HTTP endpoint for hosted agents. |
|
|
124
124
|
| You have a chat-capable Azure OpenAI deployment, for example `gpt-4o-mini`. | Local evals and CI variables need a judge model for evaluator calls. |
|
|
125
|
-
| Application Insights is connected to the Foundry project or agent runtime, or you can create/attach it. | Foundry Traces, Operate metrics/Ask AI when available, Azure Monitor, Doctor, Cockpit, and evidence links need telemetry. |
|
|
125
|
+
| Application Insights is connected to the Foundry project or agent runtime, or you can create/attach it. For Foundry trace-to-dataset flows, you can also grant Reader on App Insights and its backing Log Analytics workspace to the Foundry project managed identity. | Foundry Traces, Operate metrics/Ask AI when available, trace sampling, Azure Monitor, Doctor, Cockpit, and evidence links need telemetry. |
|
|
126
126
|
| You can deploy or expose any hosted endpoint that CI will call. | `localhost` works for local eval; remote CI needs a reachable HTTPS URL. |
|
|
127
127
|
| You can push to the tutorial GitHub repository and run GitHub Actions or Azure Pipelines. | PR and environment workflows only run after the repo is published. |
|
|
128
128
|
| GitHub CLI is authenticated with `gh auth login` if you use GitHub PR commands while testing CI. | The regression and release-gate steps are smoother when repo, PR, and Actions access are already confirmed. |
|
|
@@ -524,8 +524,9 @@ environment variable or equivalent Azure DevOps pipeline variable, verify the
|
|
|
524
524
|
OIDC principal has **both** Foundry User access on the dev Foundry project
|
|
525
525
|
**and** Cognitive Services OpenAI User access on the underlying Azure AI
|
|
526
526
|
Services account that hosts the evaluator model (both are required — without
|
|
527
|
-
the OpenAI User role, every cloud eval metric returns null),
|
|
528
|
-
|
|
527
|
+
the OpenAI User role, every cloud eval metric returns null), verify
|
|
528
|
+
AZURE_TENANT_ID is the tenant that owns the Entra app registration and its
|
|
529
|
+
federated credential, and show me the plan before changing GitHub or Azure.
|
|
529
530
|
```
|
|
530
531
|
|
|
531
532
|
That value is not an `agentops init` answer. It tells the Foundry cloud eval
|
|
@@ -877,6 +878,13 @@ may not have live traffic, scheduled workflows may not have history, and trace
|
|
|
877
878
|
regression candidates may not exist yet. That is useful tutorial feedback, not
|
|
878
879
|
a failure of Doctor.
|
|
879
880
|
|
|
881
|
+
If production telemetry *does* carry enough live traffic to trip latency or
|
|
882
|
+
error criticals, those are honest signals — not tutorial noise. The thresholds
|
|
883
|
+
that decide critical-vs-warning live in `.agentops/agent.yaml`
|
|
884
|
+
(`checks.latency.p95_threshold_seconds`, `checks.errors.rate_threshold`) and are
|
|
885
|
+
separate from the `agentops.yaml` eval-gate thresholds; raise them only if you
|
|
886
|
+
deliberately want to relax the production gate for a demo.
|
|
887
|
+
|
|
880
888
|
## 10. Run Foundry red-team scans
|
|
881
889
|
|
|
882
890
|
Red-team scans are a Foundry capability. Run them from Foundry Observability /
|
|
@@ -952,16 +960,31 @@ reviews and accepts them.
|
|
|
952
960
|
agentops cockpit --workspace .
|
|
953
961
|
```
|
|
954
962
|
|
|
955
|
-
|
|
963
|
+
Cockpit starts a read-only local web server and prints
|
|
964
|
+
`http://127.0.0.1:8090`. Open that URL in your browser; press `Ctrl+C` in
|
|
965
|
+
the terminal to stop it. It reflects the **active azd environment**
|
|
966
|
+
(`sandbox`, from `defaultEnvironment` in `.azure/config.json`) — there is no
|
|
967
|
+
URL switch. To inspect `dev`, stop Cockpit, point the active env at `dev`
|
|
968
|
+
(set `defaultEnvironment: dev` in `.azure/config.json`, or export
|
|
969
|
+
`AZURE_ENV_NAME=dev`), then rerun the command.
|
|
956
970
|
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
-
|
|
963
|
-
|
|
964
|
-
-
|
|
971
|
+
Read the page top to bottom and confirm each card:
|
|
972
|
+
|
|
973
|
+
| Section | What to confirm |
|
|
974
|
+
|---|---|
|
|
975
|
+
| **Foundry connection** | The Foundry project and tenant resolve, and the agent identity matches your `agentops.yaml` target. |
|
|
976
|
+
| **Open in Foundry** | The deep-links open your project in the correct tenant. |
|
|
977
|
+
| **Observability readiness** | Trace setup / sampling status from the latest Doctor analysis. |
|
|
978
|
+
| **AgentOps Doctor** | The same finding rollup from the Doctor / evidence-pack step (criticals first, then warnings). |
|
|
979
|
+
| **Local eval history** | Your `agentops eval run` baseline and regression reruns appear. |
|
|
980
|
+
| **Quality metrics** | Evaluator score trends from your runs. |
|
|
981
|
+
| **Production telemetry** | App Insights latency / error snapshot (or a clear "no live traffic" state in a fresh workspace). |
|
|
982
|
+
| **CI/CD Pipelines** | The workflows you generated are listed. |
|
|
983
|
+
| **Next actions** | The prioritized backlog Cockpit derives from the open findings. |
|
|
984
|
+
|
|
985
|
+
Cockpit does not run checks or mutate anything — it renders the latest
|
|
986
|
+
`results.json`, Doctor report, and evidence pack you already produced, and
|
|
987
|
+
links out to Foundry / Azure Monitor for live runtime data.
|
|
965
988
|
|
|
966
989
|
## Completion checklist
|
|
967
990
|
|
{agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/tutorial-hosted-agent-quickstart.md
RENAMED
|
@@ -786,12 +786,13 @@ hosted-agent project.
|
|
|
786
786
|
|
|
787
787
|
Create or connect the GitHub repo if needed, set AGENTOPS_AGENT_ENDPOINT in the
|
|
788
788
|
`dev` environment to the deployed HTTPS endpoint, wire Azure OIDC and required
|
|
789
|
-
Actions variables in the `dev` environment,
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
789
|
+
Actions variables in the `dev` environment, verify AZURE_TENANT_ID is the tenant
|
|
790
|
+
that owns the Entra app registration and its federated credential, and set any
|
|
791
|
+
required endpoint token as a secret. The PR gate uses --doctor-gate critical so
|
|
792
|
+
the workflow blocks on critical Doctor findings (regressions or other strict
|
|
793
|
+
signals). Do not add scheduled Doctor, QA, or production workflows yet. Show me
|
|
794
|
+
the plan before changing GitHub or Azure, and call out anything that needs
|
|
795
|
+
owner/admin permission.
|
|
795
796
|
```
|
|
796
797
|
|
|
797
798
|
Open both Doctor outputs. The report explains the findings; the evidence pack
|
|
@@ -800,6 +801,13 @@ In a fresh tutorial workspace, warnings about production telemetry, CI history,
|
|
|
800
801
|
regression history are expected and useful: they show what remains before this
|
|
801
802
|
local endpoint becomes an operated service.
|
|
802
803
|
|
|
804
|
+
If production telemetry *does* carry enough live traffic to trip latency or
|
|
805
|
+
error criticals, those are honest signals. The thresholds that decide
|
|
806
|
+
critical-vs-warning live in `.agentops/agent.yaml`
|
|
807
|
+
(`checks.latency.p95_threshold_seconds`, `checks.errors.rate_threshold`) and are
|
|
808
|
+
separate from the `agentops.yaml` eval-gate thresholds; raise them only if you
|
|
809
|
+
deliberately want to relax the production gate for a demo.
|
|
810
|
+
|
|
803
811
|
If you later want a separate cadence outside PRs, generate the optional Doctor
|
|
804
812
|
workflow with `agentops workflow generate --kinds doctor --force`.
|
|
805
813
|
|
|
@@ -816,8 +824,32 @@ look self-contained inside AgentOps.
|
|
|
816
824
|
agentops cockpit --workspace .
|
|
817
825
|
```
|
|
818
826
|
|
|
819
|
-
Cockpit
|
|
820
|
-
|
|
827
|
+
Cockpit starts a read-only local web server and prints
|
|
828
|
+
`http://127.0.0.1:8090` (this is the Cockpit UI port, not your agent's
|
|
829
|
+
`:8000`). Open that URL in your browser; press `Ctrl+C` in the terminal to
|
|
830
|
+
stop it. It reflects the **active azd environment** (`sandbox`, from
|
|
831
|
+
`defaultEnvironment` in `.azure/config.json`) — there is no URL switch. To
|
|
832
|
+
inspect `dev`, stop Cockpit, point the active env at `dev` (set
|
|
833
|
+
`defaultEnvironment: dev` in `.azure/config.json`, or export
|
|
834
|
+
`AZURE_ENV_NAME=dev`), then rerun the command.
|
|
835
|
+
|
|
836
|
+
Read the page top to bottom and confirm each card:
|
|
837
|
+
|
|
838
|
+
| Section | What to confirm |
|
|
839
|
+
|---|---|
|
|
840
|
+
| **Foundry connection** | The Foundry project / tenant resolve, and the agent is your hosted endpoint URL. |
|
|
841
|
+
| **Open in Foundry** | The deep-links open your project in the correct tenant. |
|
|
842
|
+
| **Observability readiness** | Trace setup / sampling status from the latest Doctor analysis. |
|
|
843
|
+
| **AgentOps Doctor** | The same finding rollup from the Doctor / evidence-pack step (criticals first, then warnings). |
|
|
844
|
+
| **Local eval history** | Your `agentops eval run` baseline, regressed, and fixed reruns appear. |
|
|
845
|
+
| **Quality metrics** | Evaluator score trends from your runs. |
|
|
846
|
+
| **Production telemetry** | App Insights latency / error snapshot for the `travel-agent.chat` operation (or a "no live traffic" state in a fresh workspace). |
|
|
847
|
+
| **CI/CD Pipelines** | The PR and dev deploy workflows you generated are listed. |
|
|
848
|
+
| **Next actions** | The prioritized backlog Cockpit derives from the open findings. |
|
|
849
|
+
|
|
850
|
+
Cockpit does not run checks or mutate anything — it renders the latest
|
|
851
|
+
`results.json`, Doctor report, and evidence pack you already produced, and
|
|
852
|
+
links out to Foundry / Azure Monitor for live runtime data.
|
|
821
853
|
|
|
822
854
|
## Success criteria
|
|
823
855
|
|
{agentops_accelerator-0.3.20 → agentops_accelerator-0.3.22}/docs/tutorial-prompt-agent-quickstart.md
RENAMED
|
@@ -57,7 +57,7 @@ permission prompts.
|
|
|
57
57
|
| You can create **two** Foundry projects in the same Azure subscription (or have two existing projects you can use). | The tutorial uses a sandbox project for authoring and experimentation plus a shared dev project for the PR gate. You only need to publish the agent in sandbox — CI auto-bootstraps it in dev (and later qa / prod). |
|
|
58
58
|
| You can publish a prompt agent in the **sandbox** Foundry project. | The tutorial seeds `travel-agent:2` only in sandbox (Foundry portal typically numbers the first published version `:2`, not `:1`). Dev / qa / prod start empty; the prompt-agent deploy workflow creates the first version in those projects automatically using `prompt_agent_bootstrap` defaults plus `prompt_file`. |
|
|
59
59
|
| The **same model deployment name** (for example `gpt-4o-mini`) exists in every Foundry project you plan to deploy to. | `prompt_agent_bootstrap.model` is a single value reused for every environment. If dev does not have that deployment, the first auto-bootstrap fails. |
|
|
60
|
-
| You can create or attach Application Insights for at least the dev Foundry project. | Foundry Traces, the Operate dashboard, Doctor, and Cockpit need telemetry to tell the observability story. Sandbox observability is optional. |
|
|
60
|
+
| You can create or attach Application Insights for at least the dev Foundry project, and can grant Reader to the dev project's managed identity on that App Insights resource and its backing Log Analytics workspace when workspace-based. | Foundry Traces, the Operate dashboard, trace-to-dataset generation, Doctor, and Cockpit need telemetry to tell the observability story. Sandbox observability is optional. |
|
|
61
61
|
| You can push to the tutorial GitHub repository and run GitHub Actions. | The PR gate only runs after the repo is pushed. |
|
|
62
62
|
| GitHub CLI is authenticated with `gh auth login` if you use the PR commands in this tutorial. | The regression step opens PRs and sends the reader directly to the workflow run. |
|
|
63
63
|
| You can create a GitHub environment named `dev` and add Actions variables/secrets. | The generated workflow uses that environment for Azure auth and the dev Foundry project endpoint. |
|
|
@@ -336,6 +336,12 @@ For each project, please:
|
|
|
336
336
|
uses a single bootstrap model value for every environment.
|
|
337
337
|
- Attach or create an Application Insights resource for telemetry,
|
|
338
338
|
starting with the dev project.
|
|
339
|
+
- Grant or verify **Reader** on that Application Insights resource to the
|
|
340
|
+
**managed identity of the `travel-agent-dev` Foundry project**. Foundry's
|
|
341
|
+
trace-to-dataset flow runs as the project identity when it reads traces; the
|
|
342
|
+
Operate dashboard may still render for my signed-in user even when this
|
|
343
|
+
project identity permission is missing. If Application Insights is
|
|
344
|
+
workspace-based, also grant Reader on the backing Log Analytics workspace.
|
|
339
345
|
- Grant or verify `Foundry User` access for my signed-in user on the parent
|
|
340
346
|
Foundry / AI Services account so I can build agents in the
|
|
341
347
|
Foundry UI. Some portal screens still call this role `Azure AI User`.
|
|
@@ -610,7 +616,7 @@ build the prompt agent. One of two things will be true:
|
|
|
610
616
|
|
|
611
617
|
| What you see | What it means | What to do |
|
|
612
618
|
|---|---|---|
|
|
613
|
-
| An `appinsights` row with category `AppInsights` | The resource exists and is connected to the dev project. Auto-discovery will pick it up. |
|
|
619
|
+
| An `appinsights` row with category `AppInsights` | The resource exists and is connected to the dev project. Auto-discovery will pick it up. | Continue with the trace-to-dataset access check below. |
|
|
614
620
|
| No App Insights row in **Connected resources** | The resource was not connected in step 3. | Click **Add connection**, connect or create an Application Insights resource for the dev project, or paste a connection string manually. |
|
|
615
621
|
|
|
616
622
|
**If Connected resources does not show App Insights**, the fastest fix is
|
|
@@ -620,6 +626,28 @@ in the same resource group as the dev project. Once an `appinsights` row
|
|
|
620
626
|
appears under **Connected resources**, you can again skip the manual env
|
|
621
627
|
variable — auto-discovery will pick it up.
|
|
622
628
|
|
|
629
|
+
**Also verify trace-to-dataset access now.** For the step 18
|
|
630
|
+
trace-sampling flow, the **managed identity of the `travel-agent-dev`
|
|
631
|
+
Foundry project** needs **Reader** on the connected Application Insights
|
|
632
|
+
resource. If the App Insights component is workspace-based, grant the same
|
|
633
|
+
Reader role on the backing Log Analytics workspace too. This is separate from
|
|
634
|
+
your signed-in user's portal access and separate from GitHub OIDC. If you
|
|
635
|
+
connected App Insights manually, open the Application Insights resource in
|
|
636
|
+
Azure Portal → **Access control (IAM)** and add:
|
|
637
|
+
|
|
638
|
+
| Field | Value |
|
|
639
|
+
|---|---|
|
|
640
|
+
| **Role** | Reader |
|
|
641
|
+
| **Assign access to** | Managed identity |
|
|
642
|
+
| **Managed identity** | `travel-agent-dev` Foundry project |
|
|
643
|
+
|
|
644
|
+
Then open the Application Insights resource → **Properties** and check
|
|
645
|
+
**Workspace Resource ID**. If it points to a Log Analytics workspace, open that
|
|
646
|
+
workspace and repeat the same **Reader** assignment for the `travel-agent-dev`
|
|
647
|
+
managed identity.
|
|
648
|
+
|
|
649
|
+
Wait a few minutes for RBAC propagation before creating a dataset from traces.
|
|
650
|
+
|
|
623
651
|
**Only if you specifically want to override which resource telemetry
|
|
624
652
|
goes to** (advanced case, e.g. you have a dedicated observability
|
|
625
653
|
resource group), grab the connection string and paste it into
|
|
@@ -1080,11 +1108,13 @@ You have two ways to wire up ASSERT — pick whichever fits your workflow.
|
|
|
1080
1108
|
|
|
1081
1109
|
If you installed the AgentOps coding-agent skills in step 4
|
|
1082
1110
|
(`agentops skills install`), the `agentops-governance` skill knows the full
|
|
1083
|
-
recipe. In Copilot Chat (or Claude Code),
|
|
1111
|
+
recipe. In Copilot Chat (or Claude Code), paste this prompt:
|
|
1084
1112
|
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1113
|
+
```text
|
|
1114
|
+
Use the agentops-governance skill to scaffold ASSERT for this workspace.
|
|
1115
|
+
Target the gpt-4o-mini deployment, cover prompt_injection / pii_leak /
|
|
1116
|
+
jailbreak, 5 cases per dimension.
|
|
1117
|
+
```
|
|
1088
1118
|
|
|
1089
1119
|
Copilot will install `assert-ai`, create `./assert/eval_config.yaml`, and
|
|
1090
1120
|
append the `assert:` block to `agentops.yaml` for you. Skip to **Run it
|
|
@@ -1145,8 +1175,13 @@ Same pattern: Copilot can do it, or you can run the commands yourself.
|
|
|
1145
1175
|
|
|
1146
1176
|
#### Option A — Ask Copilot
|
|
1147
1177
|
|
|
1148
|
-
|
|
1149
|
-
|
|
1178
|
+
Paste this prompt into Copilot Chat (or Claude Code):
|
|
1179
|
+
|
|
1180
|
+
```text
|
|
1181
|
+
Use the agentops-governance skill to scaffold the Red Team runner for this
|
|
1182
|
+
workspace. Target the gpt-4o-mini deployment, fail when attack success rate
|
|
1183
|
+
exceeds 20%.
|
|
1184
|
+
```
|
|
1150
1185
|
|
|
1151
1186
|
#### Option B — Run the commands yourself
|
|
1152
1187
|
|
|
@@ -1313,14 +1348,17 @@ project.
|
|
|
1313
1348
|
|
|
1314
1349
|
This may be a brand-new folder with no Git repo or GitHub remote yet.
|
|
1315
1350
|
Keep the scope to the PR gate and dev deploy only: create or connect the
|
|
1316
|
-
GitHub repo if needed,
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1351
|
+
GitHub repo if needed, ensure local `main` tracks `origin/main` after the
|
|
1352
|
+
first push/connect, wire Azure OIDC and required Actions variables/secrets,
|
|
1353
|
+
create only the `dev` environment, verify the OIDC principal has **both**
|
|
1354
|
+
Foundry User access on the **dev** Foundry project **and** Cognitive Services
|
|
1355
|
+
OpenAI User on the underlying Azure AI Services account that hosts the
|
|
1356
|
+
evaluator model (both roles are required — without the OpenAI User role, the
|
|
1357
|
+
Foundry cloud graders fail with a 401 and every metric comes back null),
|
|
1358
|
+
verify `AZURE_TENANT_ID` is the tenant that owns the Entra app registration
|
|
1359
|
+
and its federated credential (not just a subscription `managedByTenants`
|
|
1360
|
+
value), and do not set up `qa`, `production`, scheduled Doctor, or hosted
|
|
1361
|
+
deployment workflows yet.
|
|
1324
1362
|
|
|
1325
1363
|
I am using trunk-based development with `main` as both my trunk and dev
|
|
1326
1364
|
branch. The generator's stock dev-deploy trigger is `push: branches:
|
|
@@ -1340,12 +1378,20 @@ that needs owner/admin permission.
|
|
|
1340
1378
|
The workflow skill will normally do the following, but call out anything
|
|
1341
1379
|
it skips:
|
|
1342
1380
|
|
|
1343
|
-
- Create/connect the GitHub remote
|
|
1381
|
+
- Create/connect the GitHub remote and ensure local `main` tracks
|
|
1382
|
+
`origin/main` (`git branch -vv` should show `[origin/main]`). If the skill
|
|
1383
|
+
skips this, run `git branch --set-upstream-to=origin/main main` before the
|
|
1384
|
+
later tutorial steps that use `git pull`.
|
|
1344
1385
|
- Create the `dev` GitHub environment.
|
|
1345
1386
|
- Configure OIDC federated credentials between GitHub and Entra ID.
|
|
1346
1387
|
- Set Actions variables `AZURE_TENANT_ID`, `AZURE_SUBSCRIPTION_ID`,
|
|
1347
1388
|
`AZURE_CLIENT_ID`, `AZURE_AI_FOUNDRY_PROJECT_ENDPOINT` (the dev
|
|
1348
1389
|
endpoint), and `APPLICATIONINSIGHTS_CONNECTION_STRING` if available.
|
|
1390
|
+
- Verify `AZURE_TENANT_ID` against the app registration / federated
|
|
1391
|
+
credential tenant before the first run. A subscription can be associated
|
|
1392
|
+
with another tenant through `managedByTenants`; do not copy that tenant id
|
|
1393
|
+
into the GitHub environment unless the app registration and federated
|
|
1394
|
+
credential are actually visible there.
|
|
1349
1395
|
- **Rewrite the dev deploy trigger to `main`.** The generator emits the
|
|
1350
1396
|
stock GitFlow defaults (`pull_request: branches: [develop, "release/**",
|
|
1351
1397
|
main]` on `agentops-pr.yml`, `push: branches: [develop]` on
|
|
@@ -1406,7 +1452,8 @@ If you want to wait on the first PR-workflow verification run from the
|
|
|
1406
1452
|
terminal instead of the Actions UI:
|
|
1407
1453
|
|
|
1408
1454
|
```powershell
|
|
1409
|
-
$
|
|
1455
|
+
$prBranch = gh pr view --json headRefName --jq '.headRefName'
|
|
1456
|
+
$runId = gh run list --workflow agentops-pr.yml --branch $prBranch --event pull_request --limit 1 --json databaseId --jq '.[0].databaseId'
|
|
1410
1457
|
gh run view $runId --web
|
|
1411
1458
|
gh run watch $runId --exit-status
|
|
1412
1459
|
```
|
|
@@ -1574,9 +1621,9 @@ thresholds are loose enough that a regression slips through, Doctor
|
|
|
1574
1621
|
still catches it.
|
|
1575
1622
|
|
|
1576
1623
|
```powershell
|
|
1577
|
-
git
|
|
1578
|
-
|
|
1579
|
-
git switch -c
|
|
1624
|
+
git fetch origin
|
|
1625
|
+
$branch = "feature/regress-travel-agent-step16-$((Get-Date).ToString('yyyyMMddHHmmss'))"
|
|
1626
|
+
git switch -c $branch origin/main
|
|
1580
1627
|
```
|
|
1581
1628
|
|
|
1582
1629
|
Edit `.agentops/prompts/travel-agent.md` to this intentionally vague
|
|
@@ -1592,8 +1639,8 @@ Commit and push:
|
|
|
1592
1639
|
```powershell
|
|
1593
1640
|
git add .agentops\prompts\travel-agent.md
|
|
1594
1641
|
git commit -m "Intentional regression: vague travel prompt"
|
|
1595
|
-
git push -u origin
|
|
1596
|
-
gh pr create --base main --head
|
|
1642
|
+
git push -u origin $branch
|
|
1643
|
+
gh pr create --base main --head $branch --title "Test AgentOps regression gate" --body "Evaluates an intentionally regressed travel-agent prompt."
|
|
1597
1644
|
```
|
|
1598
1645
|
|
|
1599
1646
|
Watch the PR check:
|
|
@@ -1673,34 +1720,111 @@ regressions that thresholds alone miss, and the merge promotes through
|
|
|
1673
1720
|
the deploy workflow. None of those gates require the developer to
|
|
1674
1721
|
remember to look at a dashboard.
|
|
1675
1722
|
|
|
1676
|
-
## 18.
|
|
1723
|
+
## 18. Observability checkout: traces into continuous evaluation
|
|
1677
1724
|
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1725
|
+
Take a short tour of the Foundry runtime view, then turn the same production
|
|
1726
|
+
signal into evaluation coverage. This is the bridge from "what happened in
|
|
1727
|
+
real traces" to "what should keep getting evaluated."
|
|
1681
1728
|
|
|
1682
1729
|
1. Open the `travel-agent-dev` project in the Foundry portal.
|
|
1683
1730
|
2. Open the `travel-agent` agent and switch to the **Traces** tab. If
|
|
1684
1731
|
Application Insights is not yet connected, connect or create the
|
|
1685
1732
|
resource now.
|
|
1686
|
-
3. Find
|
|
1733
|
+
3. Find a recent eval or playground run in **Conversations** or
|
|
1687
1734
|
**Responses** and click the **Trace ID**. Inspect spans, latency,
|
|
1688
|
-
model
|
|
1689
|
-
4. Switch to **Operate → Overview** and use **Ask AI** for a
|
|
1690
|
-
|
|
1735
|
+
model calls, and the input/output panes.
|
|
1736
|
+
4. Switch to **Operate → Overview** and use **Ask AI** for a dashboard-level
|
|
1737
|
+
summary. Example:
|
|
1691
1738
|
|
|
1692
1739
|
```text
|
|
1693
1740
|
Help me identify any issues or anomalies in my agent metrics for
|
|
1694
1741
|
the last 24 hours.
|
|
1695
1742
|
```
|
|
1696
1743
|
|
|
1697
|
-
5.
|
|
1698
|
-
|
|
1744
|
+
5. Now use the traces as evaluation signal. In the project, open
|
|
1745
|
+
**Data Generation**, then select **Create dataset → From traces**.
|
|
1746
|
+
6. In **Create dataset**, configure:
|
|
1699
1747
|
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1748
|
+
| Field | Value |
|
|
1749
|
+
|---|---|
|
|
1750
|
+
| **Dataset usage** | `Evaluation` |
|
|
1751
|
+
| **Name** | `travel-agent-traces-step18` |
|
|
1752
|
+
| **Agent** | `travel-agent` |
|
|
1753
|
+
| **Date range** | Last day or last 7 days |
|
|
1754
|
+
| **Maximum samples** | At least `15` |
|
|
1755
|
+
|
|
1756
|
+
Leave **Intelligent sampling** enabled when the time-range UI shows it.
|
|
1757
|
+
Foundry will filter noisy traces, deduplicate near-identical prompts, and
|
|
1758
|
+
select a representative sample instead of evaluating every request.
|
|
1759
|
+
|
|
1760
|
+
If the dialog shows **Setup incomplete: Assign the Foundry project's managed
|
|
1761
|
+
identity the Reader role on Application Insights**, click **Resolve** if you
|
|
1762
|
+
have permission. Otherwise ask an Azure admin to grant **Reader** on the
|
|
1763
|
+
connected Application Insights resource to the **managed identity of the
|
|
1764
|
+
`travel-agent-dev` Foundry project**. If Application Insights is
|
|
1765
|
+
workspace-based, grant Reader on its backing Log Analytics workspace too.
|
|
1766
|
+
Then wait a few minutes for RBAC to propagate and reopen the dialog.
|
|
1767
|
+
7. Select **Create** and track the background job on the **Data Generation**
|
|
1768
|
+
tab. When it finishes, open the generated dataset from the **Data** tab and
|
|
1769
|
+
preview the rows. This is the evaluation-ready sample created from real
|
|
1770
|
+
traces.
|
|
1771
|
+
8. If the portal offers to start an evaluation from the completed job, open it
|
|
1772
|
+
and confirm the generated dataset is selected. You do not need to finish a
|
|
1773
|
+
new eval for this tutorial step; the point is to see how Foundry turns
|
|
1774
|
+
traced behavior into a dataset you can evaluate continuously.
|
|
1775
|
+
|
|
1776
|
+
> **Public preview.** Trace-to-dataset generation and intelligent sampling are
|
|
1777
|
+
> currently preview Foundry features. If your region or project does not show
|
|
1778
|
+
> **Create dataset → From traces**, continue with step 19 and treat this section
|
|
1779
|
+
> as a product tour.
|
|
1780
|
+
|
|
1781
|
+
Optional KQL deep dive: query the evaluation metrics Foundry emits as
|
|
1782
|
+
`gen_ai.evaluation.result` events. These land in the **`AppEvents`** table, which
|
|
1783
|
+
only resolves in the **Log Analytics workspace** that backs your Application
|
|
1784
|
+
Insights resource — not in the App Insights *scoped* Logs blade. Open
|
|
1785
|
+
**Monitor → Logs** (or the connected Log Analytics workspace), set **Time range**
|
|
1786
|
+
to **Set in query** (the query below uses `ago(30d)`), and run:
|
|
1787
|
+
|
|
1788
|
+
```kusto
|
|
1789
|
+
AppEvents
|
|
1790
|
+
| where TimeGenerated > ago(30d)
|
|
1791
|
+
| where Name == "gen_ai.evaluation.result"
|
|
1792
|
+
| extend p = parse_json(tostring(Properties))
|
|
1793
|
+
| extend Conversation = tostring(p["gen_ai.conversation.id"]),
|
|
1794
|
+
Agent = tostring(p["gen_ai.agent.id"]),
|
|
1795
|
+
Evaluator = tostring(p["gen_ai.evaluation.name"]),
|
|
1796
|
+
Score = todouble(p["gen_ai.evaluation.score.value"])
|
|
1797
|
+
| summarize Time = max(TimeGenerated), AvgScore = round(avg(Score), 2),
|
|
1798
|
+
Metrics = make_bag(pack(Evaluator, Score))
|
|
1799
|
+
by Conversation, Agent
|
|
1800
|
+
| order by Time desc
|
|
1801
|
+
| take 20
|
|
1802
|
+
```
|
|
1803
|
+
|
|
1804
|
+
Each row is one conversation with its average score and a `Metrics` bag holding
|
|
1805
|
+
every evaluator score side by side. For a per-day rollup of average scores by
|
|
1806
|
+
evaluator, pivot instead:
|
|
1807
|
+
|
|
1808
|
+
```kusto
|
|
1809
|
+
AppEvents
|
|
1810
|
+
| where TimeGenerated > ago(30d)
|
|
1811
|
+
| where Name == "gen_ai.evaluation.result"
|
|
1812
|
+
| extend p = parse_json(tostring(Properties))
|
|
1813
|
+
| extend Evaluator = tostring(p["gen_ai.evaluation.name"]),
|
|
1814
|
+
Score = todouble(p["gen_ai.evaluation.score.value"])
|
|
1815
|
+
| summarize AvgScore = round(avg(Score), 2) by Day = bin(TimeGenerated, 1d), Evaluator
|
|
1816
|
+
| evaluate pivot(Evaluator, any(AvgScore))
|
|
1817
|
+
| order by Day desc
|
|
1818
|
+
```
|
|
1819
|
+
|
|
1820
|
+
> **Empty results?** Telemetry can be sparse, so `Last 24 hours` / `Last 7 days`
|
|
1821
|
+
> may return nothing. Widen the time range (`ago(30d)` with **Set in query**, or
|
|
1822
|
+
> **Last 30 days**) and confirm you are in the **Log Analytics workspace**, where
|
|
1823
|
+
> `AppEvents` resolves.
|
|
1824
|
+
|
|
1825
|
+
Foundry gives you the runtime trace view and trace-sampled evaluation datasets;
|
|
1826
|
+
AgentOps Doctor checks that telemetry and release evidence are wired into the
|
|
1827
|
+
readiness story.
|
|
1704
1828
|
|
|
1705
1829
|
## 19. Sync local evidence and create the release evidence pack
|
|
1706
1830
|
|
|
@@ -1737,6 +1861,23 @@ deploys, explicit thresholds, or red-team/governance evidence. Treat those as th
|
|
|
1737
1861
|
hardening backlog. The eval gates and the dev deploy loop are
|
|
1738
1862
|
production-ready.
|
|
1739
1863
|
|
|
1864
|
+
You will likely also see **two critical findings** here, and that is expected
|
|
1865
|
+
in this tutorial:
|
|
1866
|
+
|
|
1867
|
+
| Critical finding | Why it shows up |
|
|
1868
|
+
|---|---|
|
|
1869
|
+
| `latency.p95_production` | App Insights p95 latency exceeds the 5s default (a prompt agent reasoning over each request runs ~9–12s). |
|
|
1870
|
+
| `errors.production_rate` | Your own tutorial traffic (including the earlier `az login` / token retries) pushed the production error rate above the 5% default. |
|
|
1871
|
+
|
|
1872
|
+
These criticals come from **real production telemetry of your own test
|
|
1873
|
+
traffic**, not from the release candidate's eval gate (which passed). They are
|
|
1874
|
+
honest signals: a real release would investigate latency and errors before
|
|
1875
|
+
promoting. For the tutorial they simply demonstrate that Doctor reads live
|
|
1876
|
+
runtime data. If you want to relax them for a demo, raise the Doctor thresholds
|
|
1877
|
+
in `.agentops/agent.yaml` (`checks.latency.p95_threshold_seconds` and
|
|
1878
|
+
`checks.errors.rate_threshold`) — these are separate from the `agentops.yaml`
|
|
1879
|
+
eval-gate thresholds.
|
|
1880
|
+
|
|
1740
1881
|
If you want to show the governance evidence path in the video, keep it as a
|
|
1741
1882
|
short optional callout:
|
|
1742
1883
|
|
|
@@ -1756,10 +1897,31 @@ Guardrail setup, and red-team scans still happen in their owning tools.
|
|
|
1756
1897
|
agentops cockpit --workspace .
|
|
1757
1898
|
```
|
|
1758
1899
|
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1900
|
+
Cockpit starts a read-only local web server and prints
|
|
1901
|
+
`http://127.0.0.1:8090`. Open that URL in your browser; press `Ctrl+C`
|
|
1902
|
+
in the terminal to stop it. It reflects the **active azd environment**
|
|
1903
|
+
(`sandbox`, from `defaultEnvironment` in `.azure/config.json`) — there is
|
|
1904
|
+
no URL switch. To inspect `dev` instead, stop Cockpit, point the active
|
|
1905
|
+
env at `dev` (set `defaultEnvironment: dev` in `.azure/config.json`, or
|
|
1906
|
+
export `AZURE_ENV_NAME=dev`), then rerun the command.
|
|
1907
|
+
|
|
1908
|
+
Read the page top to bottom and confirm each card against what you built:
|
|
1909
|
+
|
|
1910
|
+
| Section | What to confirm in this run |
|
|
1911
|
+
|---|---|
|
|
1912
|
+
| **Foundry connection** | Foundry project = `travel-agent-sandbox`, your Azure tenant is resolved (`az login`), and Agent = `travel-agent:2`. |
|
|
1913
|
+
| **Open in Foundry** | The deep-links open your sandbox project in the correct tenant. |
|
|
1914
|
+
| **Observability readiness** | Trace setup / sampling status pulled from the latest Doctor analysis. |
|
|
1915
|
+
| **AgentOps Doctor** | The same finding rollup you saw in step 19 — **2 critical** (`latency.p95_production`, `errors.production_rate`), plus warnings. |
|
|
1916
|
+
| **Local eval history** | Your `agentops eval run` from step 19 appears as the latest entry. |
|
|
1917
|
+
| **Quality metrics** | coherence / fluency / similarity / response_completeness trend cards from your runs. |
|
|
1918
|
+
| **Production telemetry** | App Insights p95 latency (~11.7s) and error rate (~12%) — the source of the two criticals. |
|
|
1919
|
+
| **CI/CD Pipelines** | The `pr` and `dev` workflows you generated are listed; `qa`/`prod`/scheduled are absent (expected). |
|
|
1920
|
+
| **Next actions** | The prioritized backlog Cockpit derives from the open findings. |
|
|
1921
|
+
|
|
1922
|
+
Cockpit does not run checks or mutate anything — it renders the latest
|
|
1923
|
+
`results.json`, Doctor report, and evidence pack you already produced, and
|
|
1924
|
+
links out to Foundry / Azure Monitor for live runtime data.
|
|
1763
1925
|
|
|
1764
1926
|
## Success criteria
|
|
1765
1927
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "agentops-accelerator",
|
|
3
3
|
"displayName": "AgentOps Accelerator — Skills for GitHub Copilot",
|
|
4
4
|
"description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Accelerator and Microsoft Foundry agents.",
|
|
5
|
-
"version": "0.3.
|
|
5
|
+
"version": "0.3.22",
|
|
6
6
|
"publisher": "AgentOpsAccelerator",
|
|
7
7
|
"icon": "icon.png",
|
|
8
8
|
"license": "MIT",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentops-accelerator",
|
|
3
3
|
"description": "Copilot agent skills for running standardized evaluation workflows with AgentOps Accelerator and Microsoft Foundry agents.",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.22",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "AgentOps Accelerator",
|
|
7
7
|
"url": "https://github.com/Azure/agentops"
|