Agent Lightning
microsoft/agent-lightning
Provides the action space, tradeoffs, and evaluation context for improving an editable AI agent against a benchmark while preserving its deployment contract.
Synthesizes a canonical userworkload.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview.
$ npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ai-dynamo/dynamo synthesize-user-workload --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/synthesize-user-workload .claude/skills/synthesize-user-workload && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "synthesize-user-workload" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/synthesize-user-workload into .claude/skills/synthesize-user-workload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-user-workload", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/synthesize-user-workloadType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ai-dynamo/dynamo synthesize-user-workload --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/synthesize-user-workload .agents/skills/synthesize-user-workload && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "synthesize-user-workload" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/synthesize-user-workload into .agents/skills/synthesize-user-workload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-user-workload", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ai-dynamo/dynamo synthesize-user-workload --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/synthesize-user-workload .cursor/skills/synthesize-user-workload && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "synthesize-user-workload" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/synthesize-user-workload into .cursor/skills/synthesize-user-workload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-user-workload", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ai-dynamo/dynamo.git --path .agents/skills/synthesize-user-workload--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ai-dynamo/dynamo synthesize-user-workload --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/synthesize-user-workload .gemini/skills/synthesize-user-workload && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "synthesize-user-workload" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/synthesize-user-workload into .gemini/skills/synthesize-user-workload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-user-workload", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ai-dynamo/dynamo synthesize-user-workloadInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/synthesize-user-workload .github/skills/synthesize-user-workload && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "synthesize-user-workload" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/synthesize-user-workload into .github/skills/synthesize-user-workload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-user-workload", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ai-dynamo/dynamo synthesize-user-workload --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/synthesize-user-workload .opencode/skills/synthesize-user-workload && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "synthesize-user-workload" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/synthesize-user-workload into .opencode/skills/synthesize-user-workload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-user-workload", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
synthesize-user-workloadSynthesizes a canonical userworkload.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview.
Synthesize User Workload is an agent skill from ai-dynamo/dynamo. Synthesizes a canonical userworkload.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview. Use as the first skill in a new Dynamo recipe optimization run, or to validate supplied workload and DGD inputs before deployment or benchmarking.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in DevOps & Cloud. The repository describes itself as: A Datacenter Scale Distributed Inference Serving Framework. The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f54f2a4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Synthesize User Workload loads about 3k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 1,564 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ai-dynamo/dynamo at commit f54f2a4, republished under its Apache-2.0 licence (© ai-dynamo). 1,564 words, ~2,976 tokens.
.claude/skills/synthesize-user-workload/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.<!--
SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->
Create the durable workload contract and user-provided baseline DGD that every later optimization role receives. Do not search for or select a recipe, deploy, benchmark, or propose tuning changes.
Require:
user-interviewer with its confirmation record;EXP_ID or EXP_ROOT; anduser_workload.yaml only when the user is refining the interview before downstream work begins.Read agent-docs/rules/execution/user-workload.md, agent-docs/rules/execution/run-artifacts.md, and
agent-docs/references/definitions.md before interviewing or writing the file.
Build a fact table from the initial request and attachments. Record only facts the user supplied or that a referenced artifact proves. Keep the source of each fact while interviewing, but do not copy private conversation text into the final YAML.
Resolve these blocking fields:
DynamoGraphDeployment: either user-provided, or produced by the baseline-source ladder
(agents/user-interviewer/AGENTS.md) and explicitly confirmed by the user;Objectives, SLOs, framework, precision, topology, storage class, and exact token or load values may remain unspecified when the user explicitly has no constraint or preference. Represent those values with the schema's empty value; do not invent defaults.
Ask only for blocking facts that remain unknown or contradictory after reading all supplied context.
resources block. Ask about limits only when the run's scope makes them blocking
(for example, when architectural changes such as replica scaling or disaggregation are in scope and the ceiling
determines what may be proposed). Candidates run serially under the current iteration model; parallel candidate
execution is not supported.budgets block, and null for any limit the user declines to state (a null budget leaves that
limit ungated).Before writing the contract, enumerate every fact the downstream roles (deployer, benchmarker, hypothesis loop, analyzer) will require, and ask all still-missing ones in the single upfront batch: a question that first surfaces after the optimization loop has started is an interview defect. Record any fact the user defers as an explicit assumption in the contract so the loop can proceed non-blockingly.
If blocking facts remain, return the questions to the parent and stop without handing work to a downstream role.
Use the exact caller-supplied EXP_ROOT when present. Otherwise create one unused directory under runs/ using a
stable, filesystem-safe EXP_ID derived from the UTC creation timestamp and workload profile slug. Never reuse or
overwrite an existing experiment directory.
The user interviewer owns creation of EXP_ROOT; downstream roles must receive its exact path rather than infer it
from directory order or modification time. Create <EXP_ROOT>/manifest.yaml alongside it with the session
metadata run-artifacts.md defines (timestamps, repo commit, cluster context name, agent versions when known).
Create the canonical baseline input:
<EXP_ROOT>/inputs/user_provided_dgd.yamlorigin and origin_source.kind is
DynamoGraphDeployment; reject a file containing zero or multiple such documents, since a multi-DGD file leaves
recipe-deployer without a deterministic baseline.Secret resources; references to pre-existing Secret names are allowed.deployment.origin (user, recipe-confirmed, or agent-authored) and deployment.origin_source
per the schema.Never overwrite the canonical DGD after it is captured. A changed user DGD starts a new experiment.
Write exactly:
<EXP_ROOT>/user_workload.yamlFollow the schema and rules in agent-docs/rules/execution/user-workload.md.
Before finalizing:
deployment, plus origin and origin_source
(provenance of the confirmed baseline).
2a. Record the user's stated budgets (GPU-hours, wall clock, failed-deploy limit) under budgets, verbatim;
leave each null when the user declined to state one.null, "", or [] according to the schema.Do not overwrite the contract after handoff to recipe-deployer. A different performance question may use a new
benchmark series within this contract; a material change to the user workload requires a new experiment root.
A correction of fact is the user fixing a misreported description of the same workload (a wrong traffic number, a fleet-level figure that should have been per-replica, a mistaken SLO value).
Before handoff to recipe-deployer: the contract is still this skill's working file; amend it, note the
correction inline, and recompute its SHA256.
After handoff: the contract and its hash are frozen and historical artifacts reference them; do not mutate either. Instead:
<OLD_EXP_ROOT>/SUPERSEDED, recording the corrected
field(s), the reason, the timestamp, and the new EXP_ROOT. Do not edit or delete any other artifact in the old
root: its runs remain valid evidence about the conditions they actually measured.This makes a post-handoff correction operationally identical to a material workload change (both open a new root); the distinction is recorded by the SUPERSEDED marker, not by editing frozen files.
Return:
EXP_ID and EXP_ROOT;user_workload.yaml path and SHA256;user_provided_dgd.yaml path and SHA256;The user interviewer hands both path-and-hash pairs directly to recipe-deployer. The workload path and hash remain
supporting context for perf-analyzer, hypothesis-generator, and hypothesis-challenger.
End with an operator handoff line before any deployment starts: state that the interview is complete, give the contract path, and tell the operator that the engagement now runs a long unattended loop — without goal mode the session pauses for input at every turn end — and that this is the moment to arm it (AGENTS.md, Long-Running Runs, has the condition template; fill in the budget).
© ai-dynamo, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/synthesize-user-workload of ai-dynamo/dynamo.
Open the folder on GitHubat commit f54f2a4
Synthesize User Workload next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Synthesize User Workload this skillai-dynamo/dynamo | 8.3k | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Agent Lightningmicrosoft/agent-lightning | 19k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Megatron-LM Base Image BumpNVIDIA/Megatron-LM | 18k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Caveman Gateway SetupJuliusBrussee/caveman | 111k | 1 repos | ~2.6k | Automated safety check: Warn | Apache-2.0 | |
| SageMaker Production Defaultshuggingface/skills | 11k | 1 repos | ~6.9k | Automated safety check: Pass | Apache-2.0 | |
| Opik Local Dev Environmentcomet-ml/opik | 22k | — | ~734 | Automated safety check: Pass | Apache-2.0 |
microsoft/agent-lightning
Provides the action space, tradeoffs, and evaluation context for improving an editable AI agent against a benchmark while preserving its deployment contract.
NVIDIA/Megatron-LM
Moves Megatron-LM CI to a newer NVIDIA PyTorch base image, updating both the GitHub and GitLab pins together and handling the CI follow-up.
JuliusBrussee/caveman
Routes every LLM call in a repository through the Caveman Cloud gateway in record mode, so requests and costs are measured without changing behavior.
huggingface/skills
Deploys SageMaker endpoints with autoscaling, CloudWatch alarms and tags on by default, using scripts for real-time, scale-to-zero and async setups.
comet-ml/opik
Starts, rebuilds, and troubleshoots the Opik local dev stack, including an optional Comet Platform integration mode for the Opik team.
vivekchand/clawmetry
Give the human an off switch and a cost meter for the coding agents on this machine, using ClawMetry.
ai-dynamo/dynamo
Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores…
ai-dynamo/dynamo
Knowledge of Fern's built-in MDX component library (accordions, callouts, cards, steps, tabs, code blocks, API-reference snippets, and more) for authoring docs pages.
ai-dynamo/dynamo
Knowledge of Fern's site-level navigation and structure configuration — how a docs site is organized in docs.yml (and product/version .yml files) using sections, pages, folders, tabs, tab variants…
ai-dynamo/dynamo
Drives persistent Claude Code, Codex, or OpenCode agent sessions through a Dynamo OpenAI/Anthropic-compatible endpoint over Agent Client Protocol (ACP).
ai-dynamo/dynamo
Benchmark and profile the Dynamo frontend (dynamo.frontend HTTP + tokenizer + KV router) against mock workers (dynamo.mocker).
ai-dynamo/dynamo
Selects and freezes a question-driven AIPerf workload, objective, load policy, and Kubernetes execution manifest for a successfully deployed Dynamo candidate.
Categories
Synthesizes a canonical userworkload.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview. Synthesize User Workload is an agent skill from ai-dynamo/dynamo.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview.
Synthesize User Workload fits situations like: devOps & Cloud work in your project.
Run `npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a claude-code`. Or copy the skill folder (.agents/skills/synthesize-user-workload in ai-dynamo/dynamo) into .claude/skills/synthesize-user-workload in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a codex`. Or copy the skill folder (.agents/skills/synthesize-user-workload in ai-dynamo/dynamo) into .agents/skills/synthesize-user-workload in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/synthesize-user-workload, .gemini/skills/synthesize-user-workload, .github/skills/synthesize-user-workload and .opencode/skills/synthesize-user-workload in your project.
SKILL.md names no scripts, command-line tools or credentials: Synthesize User Workload is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Synthesize User Workload is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Synthesize User Workload: Agent Lightning (microsoft/agent-lightning, 19k stars), Megatron-LM Base Image Bump (NVIDIA/Megatron-LM, 18k stars), Caveman Gateway Setup (JuliusBrussee/caveman, 111k stars) and SageMaker Production Defaults (huggingface/skills, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ai-dynamo (a GitHub organization) maintains it in ai-dynamo/dynamo, which has 8,250 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 9, 2026.
Source: ai-dynamo/dynamo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.