44 Commits

Author SHA1 Message Date
Demi Wang bc26750af3 Add Web Skill Factory: self-evolving library of verified, code-native web skills (#62)
The Skill Factory turns Webwright's solve trajectories into a growing library of
reusable, parameterized skills that are plain Python + Playwright — code you can
run without a model and compose into the next task instead of re-exploring a site.

The loop is solve -> gate -> group by template -> distil -> replay-verify ->
library -> reuse, with two independent gates. An input gate keeps untrustworthy
solves out (gold answers, or a self-verify shape/non-empty/agent-report check);
an output gate replays each distilled skill standalone, with no model, and admits
it only if it reproduces its own training answers. That second gate is what lets
a landed skill carry a real grade — executable (replay ran and reproduced),
reference (replay ran and failed; kept as a labelled prior the agent reads), or
unverified (replay skipped).

Commands:
- init  — a one-line need becomes a skill.yaml skeleton you fill with ground truth
- build — solve N instances of a spec, then learn from them (parallel, resumable)
- learn — distil trajectories you already have into the library
- update/skill_use — the manual manifest path and the solve-time library query

Includes the flight-schedule example end to end (spec, trajectories, and a
verified executable skill), docs (quickstart in the module README, plus reference
and manual mode), a demo video and pipeline diagram, and a test suite covering
the gates, distillation, replay comparison, and config wiring.
2026-08-03 15:00:26 -07:00
Subramanya L 4a46f282ec Add webwright doctor setup validation command (#23)
- add environment validation checks
    - add screenshot runtime validation
    - improve onboarding diagnostics
    - add doctor CLI command
    - add automated tests
2026-06-03 15:29:25 -07:00
Theodore Lee 734bc60ea7 add trajectory comparison tool and figures (#24) 2026-05-29 16:41:31 -07:00
Matrix a923fdfb78 docs: clarify report.json requires task_showcase.yaml (#12) (#14) 2026-05-27 17:14:51 -07:00
Adam 7dc7442482 fix(local_browser): drop final_script.py workflow and bound ARIA history (#16)
local_browser.yaml's prompts were copy-pasted from base.yaml's
bash_command-driven workspace flow, which doesn't fit a live persistent
Playwright session. The agent was told to launch its own browser inside
final_script.py while also being told never to import or launch
Playwright; and it was told to shell out via `run_command(...)`, a
helper that does not exist anywhere in the codebase.

Reframe the live-browser mode around its actual capabilities:

- Drop final_script.py, plan.md, self_reflect_config.json, final_runs/,
  image_qa, and self_reflection from the prompts. There is no workspace
  directory in this mode; the agent drives the live `page` and reports
  its answer in `final_response` when done.
- Override `agent.require_self_reflection_success: false` so the
  completion gate (which checks for `final_runs/run_<id>/self_reflect_result.json`)
  does not block `done: true` in this mode.
- Override `agent.summary_user_prompt` to talk about live browser
  state (URL, controls, selectors) instead of workspace artifacts
  (`plan.md`, `final_script.py`, `final_runs/`) that don't exist.
- Document in the yaml header what each step's observation contains
  (URL / title / stdout / ARIA snapshot / screenshot path) and note
  that the screenshot is NOT visually attached by default — flipping
  `model.attach_observation_screenshot: true` enables multimodal image
  input.

Add a context-bounding knob in `AgentConfig`:

- `keep_last_n_observations` (default -1, disabled) strips the ARIA
  snapshot payload from observation messages older than the most
  recent N, both in the rendered text content and the `extra`
  observation dict. URL / title / printed stdout are preserved so the
  agent still knows what it did. local_browser.yaml opts in with N=1.

Validated end-to-end against "Search for flights from SEA to JFK on
2026-08-15 to 2026-08-20" via base.yaml + local_browser.yaml + model_openai.yaml:
the agent reached the Google Flights results page (round trip,
SEA -> JFK, Aug 15 -> Aug 20) in 7 steps with N=1 pruning (vs 9 steps
without), and the saved trajectory shows ARIA stripped from the first
6 observations and preserved on the 7th.
2026-05-27 17:14:03 -07:00
Adam 0be73c18ce refactor: dedupe inner-tool model routing into a single helper (#10)
Follow-up to #5. Consolidates duplicated model-config helpers, drops legacy OpenAI HTTP code paths, and simplifies model_claude.yaml. Net -477 lines.
2026-05-26 18:48:37 -07:00
Matt Van Horn c03b7ff4cf fix: route image_qa and self_reflection through the configured model (#5)
Closes #3.

The image_qa and self_reflection inner tools now route through the configured model registry instead of hardcoding the OpenAI Responses API. Anthropic-only runs (`webwright -c base.yaml -c model_claude.yaml`) work end-to-end with only `ANTHROPIC_API_KEY` set.

Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>
2026-05-26 18:33:12 -07:00
adamlu123 29fc4b46c2 add persistent local browser tool; typo fix 2026-05-26 12:00:48 -07:00
Adam d06666e1a6 Merge pull request #4 from Luckz/rename-msweba
rename
2026-05-26 11:06:16 -07:00
Luckz f2d012337e rename mini-swe-webagent to Webwright
Signed-off-by: Luckz <224748+Luckz@users.noreply.github.com>
2026-05-26 07:05:24 +02:00
adamlu123 1236f4d311 fix typo 2026-05-12 21:34:50 +00:00
Adam 044acc82b2 Merge pull request #2 from xlrrrr/feat/task-showcase-runtime-yaml
Add task showcase runtime config
2026-05-12 11:38:56 -07:00
xlrrrr 325b0cf429 Refine task showcase YAML configuration 2026-05-13 01:32:14 +08:00
xlrrrr 78e21293e1 add task showcase runtime config 2026-05-12 23:34:53 +08:00
adamlu123 b92a6a52dc add tasks 2026-05-12 06:39:40 +00:00
adamlu123 ed82823360 add ui gen 2026-05-12 06:37:56 +00:00
adamlu123 f05cbca6de minor typo 2026-05-07 17:28:42 -07:00
adamlu123 38b6047fb1 add readme 2026-05-07 00:56:21 -07:00
adamlu123 b2252a017f add diff in readme 2026-05-07 00:48:00 -07:00
adamlu123 c9646c58e3 add diff in readme 2026-05-07 00:45:46 -07:00
adamlu123 2caefb76d1 docs: add comparison table with other browser-agent repos 2026-05-07 00:39:03 -07:00
Adam 1dbd152027 Clean up README by removing empty lines and URL
Removed unnecessary lines and a URL from README.
2026-05-07 00:28:05 -07:00
Adam 3a7440b357 Update README with new demo and asset links
Added demo and asset links to README.
2026-05-07 00:27:17 -07:00
Adam 7edde0d83b Replace demo video with a link
Updated demo video link and removed inline video element.
2026-05-07 00:25:47 -07:00
adamlu123 42e2f33520 add plugin 2026-05-07 00:17:34 -07:00
adamlu123 9f46031bfd Use github source type in plugin marketplace 2026-05-06 22:48:11 -07:00
adamlu123 79003db528 Add Claude Code plugin manifest 2026-05-06 22:45:33 -07:00
adamlu123 17db0c8f2e readme 2026-05-06 19:09:23 -07:00
adamlu123 7dbedaf955 readme 2026-05-06 19:08:49 -07:00
adamlu123 574b769eea readme 2026-05-06 19:06:57 -07:00
adamlu123 22b7c9d408 add demo 2026-05-06 19:00:02 -07:00
adamlu123 16469127ce add claude skill 2026-05-05 22:06:41 -07:00
adamlu123 2ba16cd454 minor 2026-05-04 17:51:18 -07:00
adamlu123 e6c8fc9e84 update readme 2026-05-04 17:47:16 -07:00
adamlu123 018dd98463 readme 2026-05-04 14:52:52 -07:00
adamlu123 a32a3d913a readme 2026-05-04 13:16:58 -07:00
adamlu123 948990f148 build 2026-04-30 15:00:34 -07:00
adamlu123 5b3ef55c5d 1st test 2026-04-24 03:43:43 +00:00
Microsoft Open Source 6b65322ea1 SUPPORT.md committed 2026-04-07 18:48:17 -07:00
Microsoft Open Source 84146e6510 LICENSE committed 2026-04-07 18:48:16 -07:00
Microsoft Open Source d0a9f568fa SECURITY.md committed 2026-04-07 18:48:15 -07:00
Microsoft Open Source 93e7e43fc7 README.md committed 2026-04-07 18:48:14 -07:00
Microsoft Open Source 299b07f707 CODE_OF_CONDUCT.md committed 2026-04-07 18:48:14 -07:00
microsoft-github-operations[bot] d366deb88a Initial commit 2026-04-08 01:48:09 +00:00