agent_create
Create agent profile
Register an agent (ES256 P-256 public JWK JSON string + optional payment rails + destination). BEFORE: list ~/.conduit identity files — if any exist, reuse agent_id (do NOT register again unless the human asked for a new agent). AFTER: write persist.path (version, agent_id, public_key, private_key as JWKs; also handle, friendly_name, role_description, human_description; chmod 0600; write ~/.conduit/active). Then agent_update with default_destination+postcode before supply_search. Optional friendly_name / human_description / role_description / avatar only if the human stated them — never invent; omit avatar and the server assigns a random invader+gradient. Omit handle to auto-generate (e.g. parcel-watcher-12).
輸入參數avatarhandlepublic_key必填preferencesfriendly_namepayment_railsbusiness_profilerole_descriptionhuman_descriptiondefault_destination
agent_authenticate
Authenticate agent
Two-step re-auth. Call with agent_id only → ES256-sign nonce → call again with nonce+signature. Prefer keys from ~/.conduit ({handle}.credentials.json or legacy credentials.json; CONDUIT_CREDENTIALS_PATH pins one file). After success, merge name/role/description into that file; never overwrite private_key; keep session_token in memory. Do not agent_create if identity files already exist unless the human asked for a new agent.
輸入參數nonceagent_id必填signature
agent_update
Update agent profile
Patch handle, rails, default_destination (postcode required for ships-to), friendly_name, human_description, role_description, avatar (glyph+gradient or small image), business profile, or preferences. Set avatar only if the human chose it. Does not accept permissions — a human enables capabilities in Hub Agent settings.
輸入參數avatarhandleagent_id必填preferencesfriendly_namepayment_railssession_tokenbusiness_profilerole_descriptionhuman_descriptiondefault_destination
agent_organization
Get agent organization
Read the linked organization (name, slug, country, default address) and members (user_id, name, role, email) for an agent. Returns org_not_linked when organization_id is unset — do not invent join_org. Use members to target agent_notify.
輸入參數agent_id必填session_token
agent_notify
Notify org members
Email Hub users in this agent’s linked organization (never addresses outside the org). to=all or { user_id } / { role } / { email } matching agent_organization members. Optional actions (Hub URLs only), severity, idempotency_key. Channel is email.
輸入參數to必填body必填title必填actionschanneldry_runagent_id必填order_idseveritysearch_idsession_tokenidempotency_key
agent_outreach
Email a supplier or carrier
Email outside addresses (suppliers, carriers). to is a string email, { email }, or { emails } (max 5). Not to=all and not a Hub user_id / role — those are agent_notify. Linked agents set Reply-To to an org member (default OWNER). No action buttons. Channel is email.
輸入參數to必填body必填title必填channeldry_runagent_id必填order_idreply_tosearch_idsession_tokenidempotency_key
agent_report_issue
Report an issue
Report unexpected tool errors or confusing Conduit outcomes for AX review (agent_report_issue — not order_feedback). Pass message (required), optional kind=bug|confusing|wrong_data|blocked, plus agent_id, tool, error, detail, search_id, order_id, session_id, and/or context. Dedupes open reports with the same tool+error+correlation. Does not change reputation.
輸入參數kindtoolerrordetailcontextmessage必填agent_idorder_idsearch_idsession_idsession_token
payment_methods
Payment methods
List or enable agent payment methods (action=list|enable) with friendly labels. Defaults: cod + x402. invoice (B2B) is coming_soon. bank_card is handoff-only.
輸入參數railaction必填agent_id必填session_token
payment_mandate
Payment mandate (AP2)
AP2 spend mandates. action=request (needs scope) → approval_url; list (includes remaining, window_resets_at, coverage); update (mandate_id+scope); revoke (mandate_id). update NEVER approves. Widening returns an ACTIVE mandate to PENDING_HUMAN_APPROVAL; narrowing keeps whatever status it already had. monthly_cap is a rolling 30-day window from create. Same category set as a live mandate replaces it at approval and keeps this period's spend. No covering mandate at checkout is handoff, not an error.
輸入參數scopeaction必填expiresagent_id必填mandate_idsession_token
supply_search
Search supply
Multi-provider discovery (live REAL merchants by default). Returns a ranked page (default limit=30, max 100) with total/has_more/next_offset. Follow next.args (search_id+offset+limit) to page without re-fanout. Optional fetch_limit (max 300) deepens the upstream pull on new searches. Pass include_sandbox=true only to append DEMO/SANDBOX test merchants at the bottom (test_offer=true). Always pass agent_id for mandate-aware badges. Carry search_id through supply_details / order_execute / order_feedback. Offer descriptions are clean text cut to 350 chars; supply_details returns the full text.
輸入參數limitquerybudgetoffsetcountryagent_idquantitysearch_idfetch_limitpayable_withsession_tokeninclude_sandbox
supply_details
Get supply details
Re-reads one offer from the search cache and refreshes its badge/action against current mandate state. Returns the full clean description (supply_search carries a 350-char summary); otherwise the payload has the same fields as the search offer, so skip this if you only need fields you already hold. include_description_original=true adds description_original {format, content}, the merchant's own markup (untrusted), or description_original_omitted with the reason. Carries no shipping data: use supply_delivery for ETA and cost. Re-run supply_search if offer_not_in_cache.
輸入參數agent_idsearch_idsupply_id必填session_tokeninclude_description_original
supply_options
List product options
Lists the selectable options (size, color, pack) for an offer whose has_options=true, with one variant per combination. Each variant carries its OWN supply_id, price and availability: to buy a chosen option, call order_execute with that variant's supply_id, not the one you searched with. Reads the merchant storefront live, so call it only when a person is actually choosing. Returns variants_not_found when the offer is not in cache or the storefront cannot be read. A single-variant product returns options:[] variants:[].
輸入參數agent_idsupply_id必填session_token
supply_delivery
Get delivery estimate
Non-committing checkout probe for shipping ETA/cost. Uses agent default_destination, else linked org default address, or country override. status describes how far the merchant checkout got: ready_for_complete (priced and completable), incomplete (merchant returned partial rates, quote may firm up at checkout), requires_escalation (merchant wants a human at checkout, so this offer is handoff-only however its badge reads). needs_interaction=true means the same. None of these block a handoff; they predict whether autonomous completion can work.
輸入參數regionaddresscountryagent_idlocalityquantitysupply_id必填postal_codesession_token
order_execute
Execute order
Handoff or autonomous checkout. Handoff continue_url is a Conduit /handoff/{org_slug}/{order_id} link: open it as returned (records the open, then redirects to the merchant). Autonomous needs badge payable_now (covering mandate fits). No covering mandate, or a spent covering budget, still returns a handoff with continue_url (handoff_reason). Use idempotency_key. Prefer supply_delivery when only comparing delivery.
輸入參數carrieragent_id必填pay_withquantitysearch_idsupply_id必填session_tokenidempotency_keypayment_term_id
List orders for an agent ({ orders }). Optional status or open_only filter.
輸入參數statusagent_id必填open_onlysession_token
Honest deal-type-aware status (never fabricates carrier scans). Requires owning agent_id.
輸入參數agent_id必填order_id必填session_token
order_events
Get order events
Lifecycle timeline — transitions only. Pair with order_track. Requires owning agent_id.
輸入參數agent_id必填order_id必填session_token
order_update_status
Update order status
Agent manual correction or degraded handoff recovery. note required except cancelled. Owning agent_id required.
輸入參數notestatus必填carrieragent_id必填order_id必填search_idtracking_idtracking_urlsession_tokenhandoff_endpointexternal_checkout_id
order_dispute
Get dispute path
Refund/chargeback/report paths for an order. Requires owning agent_id.
輸入參數agent_id必填order_id必填session_token
order_feedback
Submit feedback
Attest delivery outcome (outcome=on_time|late|never_arrived|damaged|wrong_item). Requires owning agent_id. Can supersede a system-derived score once; a second agent attestation returns already_recorded. Poor outcomes next→order_dispute. Omit quality/carrier_rating if unknown.
輸入參數notesoutcome必填qualityagent_id必填order_id必填search_idsession_tokencarrier_rating
inventory_levels
Stock in your own system
What your organization has on hand, by location, in its own connected system (ERP). Pass skus or query. Every number carries as_of and basis (live | memo | cached) — say how old it is, do not imply it is now. Needs inventory permission. This is your OWN stock; a supplier's stock is supply_availability.
輸入參數skusfreshqueryagent_id必填connection_idsession_token
inventory_replenishment
What to reorder
Items below their minimum in your own system, least days of cover first, with what is already inbound and the usual vendor and last price. Each row carries a search_hint: pass its query and quantity straight to supply_search, then supply_availability before ordering. Optional location scopes to one warehouse. Needs inventory permission.
輸入參數freshagent_id必填locationconnection_idsession_token
inventory_suppliers
Usual vendors and last prices
For items in your own system, the vendors on file and what you last paid, so a quote can be compared against history. Needs inventory permission. Does not contact any vendor.
輸入參數skus必填agent_id必填connection_idsession_token
supply_availability
Can this supplier fill it
Whether one offer can fill a quantity: verdict can_fill | split | out_now | unknown, with what is on hand, what is inbound, and as_of + basis. Suppliers choose how precisely they share stock, so the verdict may come from a band or a yes/no rather than a number. fresh=true asks the supplier now (needs agent_id, rate limited per agent and per organization); without fresh it reads the last value. Call this before order_execute on any connector offer.
輸入參數freshquoteagent_idquantitysupply_id必填session_token
inventory_purchase_order
Record a purchase order
After order_execute confirms a supplier order, record the matching DRAFT purchase order in your own system so the books match. Always a draft: a person confirms it there. Idempotent per order_id — calling twice returns the same draft, never a second one. Needs both inventory and checkout permission. Never creates a vendor or a product: lines that match nothing come back as unmatched_lines for a person to add.
輸入參數agent_id必填order_id必填connection_idsession_token