Search and order products online. Compares prices across Polish marketplaces (Allegro, Ceneo, Google Shopping), presents options in a comparison table, and assists with checkout. Handles the full flow: priority selection, research, comparison, cart, and checkout handoff. Triggers on: "order", "buy", "find product", "compare prices", "cheapest", "zamow", "kup", "znajdz produkt", "porownaj ceny", "najtaniej".
Online Order: Product Research & Purchase Assistant
Search, compare, and order products across Polish online marketplaces.
Web Interaction Rules (MANDATORY — applies to ALL phases)
These rules override any other instinct. Follow them for EVERY web interaction:
ALWAYS use web_capture before clicking or typing. Never guess CSS selectors. web_capture returns a screenshot with numbered element markers AND their exact CSS selectors. Use ONLY those selectors.
Never guess selectors. If web_click fails, do NOT try another guessed selector. Instead call web_capture again to get the current page state and correct selectors.
Verify state after every action. After adding to cart, use web_capture or web_read_text to confirm:
Did the cart count increase?
Did a confirmation popup appear?
Am I on the expected page?
相关技能
Never repeat a failed action. If a click/selector fails twice, STOP and rethink. Use web_capture to see the current state.
One add-to-cart click only. After clicking "add to cart", verify the cart count. If it shows 1, you're done. Do NOT click again.
Maximum 3 retries per step. If you fail 3 times at any step (e.g., finding a button, loading a page), inform the user and ask for guidance.
CSS selectors only. Never use Playwright-style selectors like text=.... Only standard CSS selectors work with web_click and web_type_input.
Phase 1 — Clarify Requirements (MANDATORY — DO NOT SKIP)
STOP. Before doing ANYTHING else, you MUST complete this phase.
If the product description ($ARGUMENTS) is vague, ask the user for specifics:
Brand, model, version
Size, color, capacity
Any other relevant attributes
Ask the user about their priority:
Fast delivery — prioritize shortest delivery time
Lowest price — prioritize cheapest option
Compromise — best value (balance of price and delivery speed)
Store the priority for decision-making in Phase 4.
Wait for the user's response before proceeding to Phase 2.
Phase 2 — Load Owner Profile
Call get_owner_profile to read the owner's personal data.
If the profile is missing, create it yourself:
Ask the user for their details one by one:
Full name
Email address
Phone number
Delivery address (street, city, postal code)
Preferred payment method (BLIK / card / transfer)
Any delivery notes (e.g., preferred parcel locker, delivery hours)
Once you have all the data, use write_text_file to create the owner profile file at the path returned by get_owner_profile. Use this format:
Confirm to the user that the profile has been saved.
Note the owner's payment preference and delivery notes for later use.
Phase 3 — Research Products
Search across multiple Polish marketplaces using run_sub_task for each source.
You MUST use run_sub_task for each marketplace — do NOT search manually in the main conversation.
Sources to search (in priority order):
Allegro.pl — largest Polish marketplace
Ceneo.pl — price comparison aggregator
Google Shopping (google.pl → Shopping tab)
Sub-task instructions for each marketplace:
Search [marketplace] for: [product description]
Steps:
1. Open [marketplace URL] with web_open
2. Use web_capture to see the page and find the search box
3. Type the product query using web_type_input with the selector from web_capture
4. Press Enter with web_press_key to submit search
5. Use web_capture to see search results
6. Extract the TOP 5 results with these details:
- Product name (full, with brand/model)
- Price (in PLN, including shipping if visible)
- Delivery time (e.g., "tomorrow", "2-3 days", "5-7 days")
- Seller rating (if available)
- Product URL
7. Save results as markdown to /tmp/order-research/[marketplace].md
8. Close the browser widget with close_widget
IMPORTANT: Use web_capture BEFORE every click or type action to get correct CSS selectors.
Extract ONLY the key data listed above. Do NOT save full page text.
Format each result as a numbered list with the fields on separate lines.
Marketplace-specific URLs:
Allegro: https://allegro.pl
Ceneo: https://www.ceneo.pl
Google Shopping: https://www.google.pl/search?tbm=shop&q=[encoded query]
Phase 4 — Compare & Recommend
Read all sub-task output files from /tmp/order-research/.
Recommend the best option based on the user's stated priority:
Fast delivery: pick the option with shortest delivery time (break ties by price)
Lowest price: pick the cheapest option (break ties by delivery time)
Compromise: balance price and delivery — e.g., if option A is 10 PLN cheaper but takes 4 days longer, option B might be better value
Explain your reasoning briefly (e.g., "Option 2 is 15 PLN cheaper but takes 3 days longer than option 1").
Ask the user to confirm your recommendation or pick a different option.
Wait for user confirmation before proceeding.
Phase 5 — Purchase
Open the chosen product URL with web_open.
Use web_capture to see the product page and identify the add-to-cart button.
Add to cart:
Click the add-to-cart button using the CSS selector from web_capture
Verify: Use web_capture to confirm the item was added (check cart count or confirmation message)
If cart count did NOT change, try once more. If still fails, inform the user.
Navigate to checkout:
Use web_capture to find the checkout/cart link
Click through to the checkout/order form
Fill in owner details from the profile:
Use web_capture at each form step to identify input fields
Email address
Full name (first name + last name)
Phone number
Delivery address (street, city, postal code)
Select payment method matching the owner's preference from profile (e.g., BLIK, card).
Apply delivery preferences from the owner's Notes field if applicable (e.g., select InPost parcel locker if noted).
Phase 6 — Handoff to User
STOP before the final payment/order confirmation button.
Tell the user clearly:
I've added [product name] to cart at [shop name] for [price] PLN and filled in your details.
Please review the order in browser widget [widget_id] and complete payment yourself.
I will NOT click the payment button — this is for your safety.
Do NOT close the checkout browser widget — the user needs it.
Clean up:
Close any remaining research browser widgets with close_widget
Delete research files: use term_run_command to run rm -rf /tmp/order-research/
Safety Rules (CRITICAL)
NEVER click "Pay", "Confirm order", "Zaplac", "Zamawiam i place", "Potwierdz zamowienie", or any equivalent payment/confirmation button.
NEVER enter credit card numbers, CVV codes, BLIK codes, or banking credentials.
NEVER complete a payment transaction on behalf of the user.
If a CAPTCHA appears, tell the user to solve it manually in the browser widget, then continue.
If login is required, tell the user to log in first in the browser widget, then continue.
If a marketplace blocks automated browsing, inform the user and try the next marketplace.
If no results found on any marketplace, inform the user and suggest alternative search terms.
02
Web Interaction Rules (MANDATORY — applies to ALL phases)