Azure / Azure/azure-dev

Add azure.ai.loom CLI support for Foundry experiment tracking APIs

Open
#9,796 0 comments 0 reactions 0 assignees View on GitHub
bug customer-reported
Dominant language
Go
Stars
569
Forks
364
Avg merge
2d 19h
Merged PRs (30d)
136

Description

Add a standalone first-party `azure.ai.loom` extension for the Microsoft Foundry experiment-tracking data plane. The extension keeps the established `azure.ai.projects` surface unchanged and exposes all experiment operations under `azd ai loom run`.

## CLI surfaces

### Run inspection

- [x] `azd ai loom run list`
- [x] `azd ai loom run history-keys --run-id `
- [x] `azd ai loom run summary --run-id `
- [x] `azd ai loom run metrics --run-id `
- [x] `azd ai loom run system-metrics --run-id --name `
- [x] `azd ai loom run logs --run-id `
- [x] `azd ai loom run log-records --run-id `
- [x] `azd ai loom run compare --run-id --run-id --metric `

### Traces and spans

- [x] `azd ai loom run trace list --run-id `
- [x] `azd ai loom run trace show --run-id --trace-id `
- [x] `azd ai loom run trace chat --run-id --trace-id `
- [x] `azd ai loom run span query --run-id `

Span queries support inline filters (`--filter`), filter files (`--filter-file`), complete request bodies (`--request-file`), detailed results (`--include-details`), and result limits (`--limit`).

### OpenTelemetry ingestion

- [x] `azd ai loom run ingest metrics --run-id --file `
- [x] `azd ai loom run ingest logs --run-id --file `
- [x] `azd ai loom run ingest traces --run-id --file `
- [x] `azd ai loom run ingest agent-traces --run-id --file `

OTLP metrics, logs, and traces accept protobuf payloads. Agent traces accept JSON. All ingestion commands support `--file -` for stdin and reject empty payloads.

### W&B compatibility

- [x] `azd ai loom run wandb graphql --file `
- [x] `azd ai loom run wandb file-stream --run-id --file `

## Shared behavior

- [x] Resolve the project endpoint from `--project-endpoint`, the active azd environment, compatible `azure.ai.projects` context, or host environment variables.
- [x] Allow Loom to run independently of the `azure.ai.projects` extension.
- [x] Derive the project ID from `/api/projects/{projectId}`, with `--project-id` override support.
- [x] Default to Microsoft Entra bearer authentication using `https://ai.azure.com/.default`.
- [x] Support `AZURE_AI_PROJECT_API_KEY` as an explicit project data-plane authentication override.
- [x] Support `--api-version` overrides.
- [x] Emit complete JSON responses for automation.
- [x] Preserve escaped path identifiers and large JSON numbers in request files.
- [x] Include unit tests, extension build/release wiring, and usage documentation.

Implemented by #9795. Official extension-registry publication will follow the normal release handoff.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the implementation referenced in #9795 and compare it with the listed `azd ai loom run` command surfaces and shared behaviors. Verify the mentioned unit tests, extension build and release wiring, and usage documentation; completion is represented by the checked CLI, ingestion, compatibility, authentication, and response requirements.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, go
Domain
ai, api, cli, cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.