Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 36 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,42 @@ The [`workspace`](skills/workspace/SKILL.md) skill lets users see and save the a

To run a benchmark, see [Demo](https://github.com/allenai/agent-baselines/tree/main/solvers/inspect-swe#demo), which runs the [`astabench`](https://github.com/allenai/asta-bench) science-agent suite with default skills. For your own edits, use [Swapping in local skills](https://github.com/allenai/agent-baselines/tree/main/solvers/inspect-swe#swapping-in-local-skills) (run `make build-plugins` first, then point at the regenerated tree).

For measuring the effect of a skill change, run a paired comparison via [Comparing two configurations](https://github.com/allenai/agent-baselines/tree/main/solvers/inspect-swe#comparing-two-configurations). See [#60](https://github.com/allenai/asta-plugins/pull/60) for a worked example against existing cases, and [#63](https://github.com/allenai/asta-plugins/pull/63) for a worked example of adding new per-skill cases.
For measuring the effect of a skill change, run a paired comparison via [Comparing two configurations](https://github.com/allenai/agent-baselines/tree/main/solvers/inspect-swe#comparing-two-configurations). Both arms must end up with the same `-S version=<cc-ver>` and same `ASTA_IMAGE=…@sha256:…`, so a typical flow is: run baseline with defaults, capture what resolved, pin the PR arm to match.

```bash
# 1. Run baseline arm — defaults (`:latest`, `version=auto`) are fine.
# See the linked recipe above for the full `astabench eval` command;
# swap in `-S skills=…/asta-plugins-baseline/…` and a baseline log dir.

# 2. Capture what resolved (these get reused in step 3):
eval "$(inspect log dump logs/baseline/*.eval | jq -er '.samples[0].metadata
| "ASTA_IMAGE=\(.asta_image)\nAGENT_VERSION=\(.agent_version)"')"
export ASTA_IMAGE AGENT_VERSION

# 3. Run the PR arm. ASTA_IMAGE is read from the env (already exported), so
# no flag is needed for the image. Add `-S version="$AGENT_VERSION"` and
# the PR branch's `-S skills=…/asta-plugins/…`, into a different log dir.

# 4. Map the @sha256:… digest in $ASTA_IMAGE to a readable release tag
# by matching the eval timestamp against this repo's release tags:
git tag --sort=-creatordate -l 'v*' | head
```

Record the pins in the PR description like `claude_code 2.1.142 · sonnet-4-6 · ghcr.io/allenai/asta:v0.17.2` (`@sha256:bf92d6a2…`) — tag for readability, digest for strict reproducibility.

See [#60](https://github.com/allenai/asta-plugins/pull/60) for a worked example against existing cases, and [#63](https://github.com/allenai/asta-plugins/pull/63) for a worked example of adding new per-skill cases.

When a comparison includes a configuration that isn't a regular commit on a PR branch (an ablation, an A/B variant, etc.), preserve it as an annotated git tag under `experiments/PR-<num>/<description>` so reviewers can check it out and reproduce. Tag after the PR is open so the number is known:

```bash
git tag -a experiments/PR-123/workspace-ablate-artifacts-tightening \
-m "PR #123's workspace branch with skills/artifacts/SKILL.md reverted to main. Used to measure view_agent_output routing dependency on the artifacts tightening."
git push origin experiments/PR-123/workspace-ablate-artifacts-tightening
```

Tags survive branch deletion. Listable per-PR with `git tag -l 'experiments/PR-123/*'`. Link the tag from the PR description.

External contributors push the tag to their fork (no write access here) and link to the fork's tag URL — same convention, different remote.

## Development

Expand Down
2 changes: 1 addition & 1 deletion plugins/asta-preview/skills/artifacts/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: artifacts
description: Use this skill when the user asks to view, export, or open agent output artifacts — "show me the artifacts", "export the results", "open the report", "convert the task output to HTML", "what did the agent produce", or wants to work with structured outputs from an A2A agent task.
description: Use this skill to export and open A2A agent task outputs — "export the task results", "convert the task output to HTML", or work with the structured artifacts produced by an A2A agent task run.
metadata:
internal: true
allowed-tools: Bash(asta * task *) Bash(asta artifacts *) Bash(asta documents *) Bash(open *)
Expand Down
8 changes: 5 additions & 3 deletions plugins/asta-preview/skills/workspace/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Add components only when needed; don't proactively offer.
|---|---|
| **Quarto build tool** | Always — it's the project structure. |
| **GitHub Pages deploy** | When you have no user-reachable port, or the user asks for a deployed URL. |
| **Dev container** | When the user wants to avoid installing Quarto/dependencies on the host — their own machine or anyone else's (e.g., for collaborator access without local setup). |
| **Dev container** | User wants to avoid installing host dependencies, or wants browser-only access from another machine. See subsection for the two flows. |

Before writing any file in the steps below, check whether the target path already exists. If it does, ask the user before overwriting, or merge the asset's contents into the existing file.

Expand All @@ -63,5 +63,7 @@ Before writing any file in the steps below, check whether the target path alread

### Dev container

1. Copy `assets/devcontainer.json` to `.devcontainer/devcontainer.json`.
2. Tell the user how to open it (Codespaces or VS Code "Reopen in Container") and authenticate Asta tools — see `DEVELOPER.md`.
Copy `assets/devcontainer.json` to `.devcontainer/devcontainer.json`, then pick the flow that matches the user's intent:

- **Local container** (working on their machine without installs): run `make dev` to open VS Code attached to the local container.
- **Codespaces** (browser-based access from anywhere): commit, push to a GitHub remote (creating one if needed), then `gh codespace create` and give the user the URL.
2 changes: 1 addition & 1 deletion plugins/asta-preview/skills/workspace/assets/DEVELOPER.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ With [Quarto](https://quarto.org) on the host: `make preview`, open `http://loca
Based on `ghcr.io/allenai/asta:latest` — Quarto and [Asta](https://asta.allen.ai) pre-installed.

- **VS Code locally:** `make dev`, or open folder → Command Palette → **Reopen in Container**. Needs [Docker Desktop](https://www.docker.com/products/docker-desktop/) and the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers).
- **Codespaces:** green **`<> Code`** button → **Codespaces** tab → **Create codespace on main**. Port 4848 auto-forwards.
- **Codespaces:** green **`<> Code`** button → **Codespaces** tab → **Create codespace on main**, or `gh codespace create --web` from the CLI. Port 4848 auto-forwards.

Asta auth: set `ASTA_TOKEN` env var locally before launching, or `asta auth login` in the container. For Codespaces: add `ASTA_TOKEN` as a secret.

Expand Down
8 changes: 5 additions & 3 deletions plugins/asta/skills/workspace/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Add components only when needed; don't proactively offer.
|---|---|
| **Quarto build tool** | Always — it's the project structure. |
| **GitHub Pages deploy** | When you have no user-reachable port, or the user asks for a deployed URL. |
| **Dev container** | When the user wants to avoid installing Quarto/dependencies on the host — their own machine or anyone else's (e.g., for collaborator access without local setup). |
| **Dev container** | User wants to avoid installing host dependencies, or wants browser-only access from another machine. See subsection for the two flows. |

Before writing any file in the steps below, check whether the target path already exists. If it does, ask the user before overwriting, or merge the asset's contents into the existing file.

Expand All @@ -63,5 +63,7 @@ Before writing any file in the steps below, check whether the target path alread

### Dev container

1. Copy `assets/devcontainer.json` to `.devcontainer/devcontainer.json`.
2. Tell the user how to open it (Codespaces or VS Code "Reopen in Container") and authenticate Asta tools — see `DEVELOPER.md`.
Copy `assets/devcontainer.json` to `.devcontainer/devcontainer.json`, then pick the flow that matches the user's intent:

- **Local container** (working on their machine without installs): run `make dev` to open VS Code attached to the local container.
- **Codespaces** (browser-based access from anywhere): commit, push to a GitHub remote (creating one if needed), then `gh codespace create` and give the user the URL.
2 changes: 1 addition & 1 deletion plugins/asta/skills/workspace/assets/DEVELOPER.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ With [Quarto](https://quarto.org) on the host: `make preview`, open `http://loca
Based on `ghcr.io/allenai/asta:latest` — Quarto and [Asta](https://asta.allen.ai) pre-installed.

- **VS Code locally:** `make dev`, or open folder → Command Palette → **Reopen in Container**. Needs [Docker Desktop](https://www.docker.com/products/docker-desktop/) and the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers).
- **Codespaces:** green **`<> Code`** button → **Codespaces** tab → **Create codespace on main**. Port 4848 auto-forwards.
- **Codespaces:** green **`<> Code`** button → **Codespaces** tab → **Create codespace on main**, or `gh codespace create --web` from the CLI. Port 4848 auto-forwards.

Asta auth: set `ASTA_TOKEN` env var locally before launching, or `asta auth login` in the container. For Codespaces: add `ASTA_TOKEN` as a secret.

Expand Down
2 changes: 1 addition & 1 deletion skills/artifacts/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: artifacts
description: Use this skill when the user asks to view, export, or open agent output artifacts — "show me the artifacts", "export the results", "open the report", "convert the task output to HTML", "what did the agent produce", or wants to work with structured outputs from an A2A agent task.
description: Use this skill to export and open A2A agent task outputs — "export the task results", "convert the task output to HTML", or work with the structured artifacts produced by an A2A agent task run.
metadata:
internal: true
allowed-tools: Bash(asta * task *) Bash(asta artifacts *) Bash(asta documents *) Bash(open *)
Expand Down
8 changes: 5 additions & 3 deletions skills/workspace/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Add components only when needed; don't proactively offer.
|---|---|
| **Quarto build tool** | Always — it's the project structure. |
| **GitHub Pages deploy** | When you have no user-reachable port, or the user asks for a deployed URL. |
| **Dev container** | When the user wants to avoid installing Quarto/dependencies on the host — their own machine or anyone else's (e.g., for collaborator access without local setup). |
| **Dev container** | User wants to avoid installing host dependencies, or wants browser-only access from another machine. See subsection for the two flows. |

Before writing any file in the steps below, check whether the target path already exists. If it does, ask the user before overwriting, or merge the asset's contents into the existing file.

Expand All @@ -63,5 +63,7 @@ Before writing any file in the steps below, check whether the target path alread

### Dev container

1. Copy `assets/devcontainer.json` to `.devcontainer/devcontainer.json`.
2. Tell the user how to open it (Codespaces or VS Code "Reopen in Container") and authenticate Asta tools — see `DEVELOPER.md`.
Copy `assets/devcontainer.json` to `.devcontainer/devcontainer.json`, then pick the flow that matches the user's intent:

- **Local container** (working on their machine without installs): run `make dev` to open VS Code attached to the local container.
- **Codespaces** (browser-based access from anywhere): commit, push to a GitHub remote (creating one if needed), then `gh codespace create` and give the user the URL.
2 changes: 1 addition & 1 deletion skills/workspace/assets/DEVELOPER.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ With [Quarto](https://quarto.org) on the host: `make preview`, open `http://loca
Based on `ghcr.io/allenai/asta:latest` — Quarto and [Asta](https://asta.allen.ai) pre-installed.

- **VS Code locally:** `make dev`, or open folder → Command Palette → **Reopen in Container**. Needs [Docker Desktop](https://www.docker.com/products/docker-desktop/) and the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers).
- **Codespaces:** green **`<> Code`** button → **Codespaces** tab → **Create codespace on main**. Port 4848 auto-forwards.
- **Codespaces:** green **`<> Code`** button → **Codespaces** tab → **Create codespace on main**, or `gh codespace create --web` from the CLI. Port 4848 auto-forwards.

Asta auth: set `ASTA_TOKEN` env var locally before launching, or `asta auth login` in the container. For Codespaces: add `ASTA_TOKEN` as a secret.

Expand Down
Loading