You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Give agents an installable Skillware bundle for bounded browser automation on everyday web tasks — portals, forms, dashboards, pricing pages, using the open-source browser-use library (Playwright under the hood, MIT license).
Core behavior (v1)
Accept a natural-language task, optional start URL, and safety knobs (max steps, timeout, allowed domains, headless).
Optionally run compliance/tos_evaluator when start_url is set before launching the browser.
Execute a capped browser-use session inside skill.py and return structured JSON: status, steps taken, result text/extract, errors, optional artifact references.
Ship instructions.md so models know when to use this skill vs HTTP-only tools, static scrapers, or human handoff.
Category office/, same productivity lane as pdf_form_filler (mundane web/office workflows, not generic “automation”).
Rationale
Agents often need to interact with websites, not just read static pages; prompt-only or one-off Playwright scripts are hard to audit, reuse, and govern across models.
browser-use is a mature open stack for LLM-controlled browsers; Skillware adds manifest, constitution, deterministic JSON contract, and multi-model tool adapters.
Complements compliance/tos_evaluator (policy pre-check) without duplicating it; complements office/pdf_form_filler (local documents vs live web portals).
Self-hosted open stack, no vendor marketplace or proprietary operator runtime required.
LLM credentials for the browser-use agent (document in manifest env_vars + docs/usage/api_keys.md): e.g. OPENAI_API_KEY, GOOGLE_API_KEY, ANTHROPIC_API_KEY.
Optional env for defaults: provider/model selection for browser-use (exact names TBD in implementation).
Heavy deps stay isolated to this skill; contributors install via skill manifest + local Playwright setup.
Constitution & safety
Enforce allowed_domains when provided; fail closed on navigation outside the list.
Cap max_steps and timeout_seconds; no unbounded agent loops from a single execute().
Default run_tos_check: true for public start_url; include evaluator verdict in output.
Never return raw cookies, session tokens, or passwords in JSON.
No scraping behind auth unless an explicit flag (e.g. assume_authenticated_session) is true and documented.
Constitution text: no credential harvesting, no circumventing login or paywalls, lawful use only, operators responsible for site terms.
Implementation notes
Path: skills/office/browser_use/ from templates/python_skill/.
skill.py: sync wrapper around async browser-use Agent; stable error mapping to manifest output schema.
Optional pre-flight: load or call compliance/tos_evaluator logic when run_tos_check is true (mock in CI).
test_skill.py: dry_run, missing deps, domain violation, schema compliance — no live browser in default CI (optional integration marker if needed).
Docs: docs/skills/browser_use.md, row in docs/skills/README.md, usage examples for at least one provider loop per skill template.
Issuer: real name + email per CONTRIBUTING; contributor with browser-use / Playwright experience preferred.
Acceptance criteria
Maintainer approval of skill proposal
Full bundle per Skill Package Standard (manifest.yaml, skill.py, instructions.md, test_skill.py, card.json, docs, catalog row)
Skill Name
office/browser_use
What should this skill do?
Give agents an installable Skillware bundle for bounded browser automation on everyday web tasks — portals, forms, dashboards, pricing pages, using the open-source browser-use library (Playwright under the hood, MIT license).
Core behavior (v1)
compliance/tos_evaluatorwhenstart_urlis set before launching the browser.skill.pyand return structured JSON: status, steps taken, result text/extract, errors, optional artifact references.instructions.mdso models know when to use this skill vs HTTP-only tools, static scrapers, or human handoff.office/, same productivity lane aspdf_form_filler(mundane web/office workflows, not generic “automation”).Rationale
compliance/tos_evaluator(policy pre-check) without duplicating it; complementsoffice/pdf_form_filler(local documents vs live web portals).Dependencies
requirements, not coreskillwaredeps):browser-use, Playwright browser runtime (playwright install chromium).env_vars+docs/usage/api_keys.md): e.g.OPENAI_API_KEY,GOOGLE_API_KEY,ANTHROPIC_API_KEY.Constitution & safety
allowed_domainswhen provided; fail closed on navigation outside the list.max_stepsandtimeout_seconds; no unbounded agent loops from a singleexecute().run_tos_check: truefor publicstart_url; include evaluator verdict in output.assume_authenticated_session) is true and documented.Implementation notes
skills/office/browser_use/fromtemplates/python_skill/.skill.py: sync wrapper around async browser-useAgent; stable error mapping to manifest output schema.compliance/tos_evaluatorlogic whenrun_tos_checkis true (mock in CI).test_skill.py: dry_run, missing deps, domain violation, schema compliance — no live browser in default CI (optional integration marker if needed).docs/skills/browser_use.md, row indocs/skills/README.md, usage examples for at least one provider loop per skill template.Acceptance criteria
manifest.yaml,skill.py,instructions.md,test_skill.py,card.json, docs, catalog row)pytestfor dry_run, missing API key/deps, domain violation, output schemaCHANGELOG.mdentry under[Unreleased]when mergedpython -m flake8 .and relevant tests passOut of scope (v1)
SkillLoaderor core frameworkpyproject.tomldependenciesIdeal Inputs & Outputs
Input
{ "task": "Find the latest pricing page and return the three plan names and monthly prices.", "start_url": "https://example.com", "max_steps": 25, "timeout_seconds": 120, "allowed_domains": ["example.com"], "headless": true, "run_tos_check": true, "dry_run": false }Output
{ "status": "completed", "task": "...", "result_text": "Basic $9/mo, Pro $29/mo, Enterprise contact sales", "steps_used": 14, "start_url": "https://example.com", "tos_check": { "is_safe_to_proceed": true, "confidence_score": 0.88 }, "errors": [] }Targeted Models (if applicable)
Model Agnostic (All)