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.