Skip to content

Agent runtime qualification

Status: qualification in progress, 2026-10-16. This reference records approved first-trial requirements for AGPIPE-1; it does not certify a provider, account, watchlist or release. See the pilot design and BACKLOG.md for the implementation boundary and open work.

Context and decision boundary

The user selected public, logged-out Hong Kong prices and requested a proposed watchlist for review, then selected the four candidates below on 2026-10-16. No provider credentials are configured through the approved external secret source for this work. No provider runs, account-capability checks or live HK browser trials were made. The evidence below is official documentation, published SDK inspection and public product-page snapshots; it establishes no measured accuracy or cost.

On 2026-10-16 the user approved public single-item offers, including unconditional discounts. Member, coupon, multi-buy, exchange and checkout-dependent prices remain excluded. Match the exact seller, variant, package and public HK context; reference/list/comparison prices cannot substitute for an offered price. Preserve an observed discount as promotional; never relabel it ordinary.

The existing version 0.1.0 examples remain ordinary-only historical contracts. The additive version 0.2.0 examples distinguish the target's requested offer policy from the observed price category, role and conditions. Opting into 0.2.0 changes the record contract; it does not rewrite retained 0.1.0 identities. See the contract reference for migration and the limits of synthetic validation. No runtime is supplied by these examples.

No candidate is qualified. On 2026-10-16 the user selected TinyFish as the first hosted candidate. Controlled Stagehand v4 extraction is the baseline, and Browser Use Cloud v4 is an alternative. Reject a binding that cannot enforce mandatory permissions, limits or required evidence; prompting and a domain allowlist are insufficient.

Candidate assessment

Boundary TinyFish Agent Controlled Stagehand v4 Browser Use Cloud v4
Execution Async run ID, status and cancellation APIs Caller-owned browser and discrete extraction calls Run/session IDs, status and cancellation APIs
Effects No verified action/effect enforcement Restrict application calls; verify the resulting boundary No verified action/effect enforcement
HK context Agent proxy documentation conflicts Browserbase HK routing is best effort Request schema accepts hk; actual exit unverified
Limits Duration setting; step limit beta-gated Bound calls and browser lifetime; dollar bound unverified Cost field; all-in cost and duration bounds unverified
Evidence Capture account-gated; authenticated byte retrieval Capture directly; hosted replay policy unverified Recording opt-in; finalizes after browser stop
Submission recovery Search is not unique-key lookup Session labels are not deduplicated creation Run/session listing is not deduplicated creation

TinyFish's Agent reference documents custom-proxy fields, beta-gated max_steps, optional max_duration_seconds and account-gated captures. The run-async schema instead closes proxy configuration to enabled/country selection and excludes HK from its seven-country enum. Python SDK 0.9.0 has that same restricted Agent proxy model. Reconcile the prose/API/SDK mismatch before claiming HK routing; separate Browser API proxy support does not establish Agent support.

TinyFish Python 0.9.0 defaults to two retries. Its generic HTTP transport retries timeouts, network errors and selected HTTP failures for POST as well as GET. Disable creation retries before integrating non-idempotent submission; a lost response can otherwise create duplicates. These findings come from the published wheel linked by PyPI release metadata. The npm SDK version checked was 0.8.0. Registry.

Use TinyFish async execution, retain the ID and inspect actual terminal status. Cancellation can race with completion; an acknowledged request does not imply the run was cancelled. Synchronous runs cannot be cancelled. Lifecycle. Required captures need authenticated screenshot or HTML bytes; browser-session URLs and expiring video links are not durable evidence.

TinyFish's schema subset requires an object root, size at most 64KB and depth at most 10. It rejects additionalProperties, const, type arrays and other unsupported constraints. Report translations and omitted rules by schema path, retain the original contract, and independently apply its full validation. Do not weaken contracts to fit the provider. Published per-step rates and a configured step limit are not measured cost or proof of an enforceable all-in spending cap. Pricing.

Stagehand v4 removed agent(); use a reviewed bounded extraction routine, not a replacement general agent loop. Migration. Published Python/npm versions checked were 4.2.1. Python registry, npm registry. Python extraction consumes a Pydantic model class; derive the provider shape from configuration and preserve independent canonical validation. Extraction.

Close both the Stagehand runtime and its caller-owned browser. Successful-call metrics omit calls that throw before returning and cannot establish total cost. Lifecycle and metrics. Browserbase supports HK proxies but documents nearby fallback; verify actual exit context. Session labels help reconciliation without guaranteeing unique submission. Proxies, metadata.

Browser Use's v4 creation API accepts outputSchema, maxCostUsd, HK proxy selection and recording settings. Published Python/npm SDKs checked were 3.11.3; structured-output documentation directs that version to REST because typed support arrives in a later release. Structured output, Python registry, npm registry.

A Browser Use run's totalCostUsd covers model and web-search charges only. Browser time/proxy charges belong to the session and can continue after the run; monthly key caps are soft, and BYOK adds separately billed provider costs. Billing. Inspect actual cancel status, stop the owned browser separately and bound recording retrieval. Viewer readOnly=true does not restrict CDP permissions; ZDR suppresses recording. Recording and preview.

Selected first-trial candidates

The user selected these four candidates on 2026-10-16. Their public sources identify products, not current accepted prices, availability or provider compatibility. No price observations are recorded.

Candidate Source SKU Snapshot identity and review concern
金象牌 頂上茉莉香米 H0888001_S_P10014683 15kg; sold by HKTVmall, under 金源米業 storefront; multiple price roles
櫻城牌 日本品種珍珠米 H0888001_S_10144832 3kg; sold by HKTVmall; special-price and exchange-offer interpretation
金鳳茉莉香米(15kg)【1件】 B0551001_S_R31-1 Title says 15kg; seller 四哥士多錚住買; packing field contains marketing text
Moonlight 台灣池上米 H5087004_S_30663 2kg; seller MOONLIGHT 月之光; English route, zh-Hant context unverified

All reviewed candidates show special-price labels. An unconditional public offer may meet the approved meaning, but the label alone does not prove eligibility. Store listings can describe different package SKUs; merchant storefronts need not identify the seller. Review exact SKU/seller/variant/package/context mappings before freezing target keys. No real unavailable or member-only case was verified; those benchmark cases remain missing. Navigation failure or an unresolved qualifying public offer must not be relabeled unavailable. Empty targets require no submission or publication.

Approved first-candidate gates

The user approved these requirements on 2026-10-16. They are acceptance gates, not measurements, provider guarantees or already-enforced runtime defaults.

Dimension Approved gate
Candidate TinyFish account first
Trial size 20 attempts; retries consume the same attempt and budget limits
Factual accuracy Zero accepted factual errors; review identities, price eligibility and unavailable claims against evidence
Publication coverage 100% of the frozen targets have current accepted outcomes before publication
Mean cost At most US$0.50 per accepted target, including failed attempts and retries in total trial cost
First-candidate budget US$20 total; no additional-candidate budget is approved
Evidence Bounded evidence retained for 30 days

The trial must record its attempt accounting, accepted-target denominator and all-in charges before a cost decision. A provider's model-only usage figure is insufficient. The approved budget cannot authorize submission unless the runtime can enforce the required bound and reconcile uncertain submissions.

The following remain proposals: four reviewed targets across five rounds; 95% acquisition coverage in comparison trials; 180-second provider attempt limit and 240-second application deadline; at most one safely reconciled retry; four-target publication p95 of 10 minutes; observation spread at most 30 minutes and oldest observation at most 60 minutes; p95 cost US\(1 per accepted target; at most one intervention in 20 evaluations; evidence at most 10MiB per attempt and operator-only access. None is an approved production default. Evidence also needs a run-wide byte cap covering retained retry history. Read roles, exact byte bounds, verified variant/context/availability mappings and account capabilities must be resolved before live execution. No US\)60 multi-candidate envelope is authorized.

Coding-assistant setup and PyCharter runtime

TinyFish's coding-assistant installer connects an MCP server and installs skills for a supported coding assistant. Tools available to that assistant can help inspect public pages or review provider behavior. Installing those tools does not add type: agent execution, credential resolution, a durable acquisition ledger or publication gates to PyCharter.

The server-side runtime needs a separately configured credential reference, qualified account capabilities and an adapter using the reviewed provider API. A browser task prompt becomes bounded instructions inside a future canonical Pipeline definition; it cannot replace typed targets, limits, permissions, evidence or independent evaluation. An ad hoc MCP result does not become a managed price observation or a runtime qualification result automatically.

Configure credentials through the approved external secret source. Never put secret values in contracts, evidence, run snapshots or documentation. Verify actual capture/limit entitlements, HK routing, schema acceptance and denied effects before allowing a live task.

Before a live decision, compare the same targets/meaning against a suitable API, deterministic browser routine, direct browser service plus validator and PyCharter. An equivalent public consumer-price API has not been established. Test lost submission responses, cancellation races, crashes, stale resume, inaccessible evidence and missing/duplicate targets. Persist uncertain submission state; partial-text search or an empty listing cannot authorize duplicate creation.

Offline prerequisite fixes and supplied-data validation can progress. Live agent execution remains gated by AGPIPE-1's reviewed boundaries; documentation and synthetic tests do not certify live execution or publication.