{"id":79189,"plugin_id":"plugin_asdk_app_6ada58f239d88191b2b4ce5cbb72902f","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-03T19:25:06.562Z","digest":"56a5f551f203a6a832253bb71bdc0825a0f0f0b9029cad372e92f560ad2a48af","against":null,"payload":{"description":"How to find, price and run Waypoint capabilities well. Use whenever a task needs live data Waypoint can look up, or the user names Waypoint or a Waypoint capability.","included_files":[],"name":"using-waypoint","skill_md_contents":"---\nname: using-waypoint\ndescription: How to find, price and run Waypoint capabilities well. Use whenever a task needs live data Waypoint can look up, or the user names Waypoint or a Waypoint capability.\n---\n\n# Using Waypoint\n\nWhen the user asks to use Waypoint, or names a Waypoint capability, handle the\nrequest through Waypoint's tools rather than web search or another connector.\n\n## The flow\n\n1. **Find.** Call `search_capabilities` with what the user wants in plain\n   words (`intent`). Each row has an `agent` and a `capability`, which\n   together name what to run, a price, and a `kind`. Rows of kind\n   `capability` are lookups you can run. A row of kind `quote` is Waypoint's\n   own price planner (see step 3). To show the user the whole catalog\n   instead, call `browse_catalog`.\n2. **Read its guidance and price.** Call `describe_capability` with the row's\n   `agent` and `capability`. It returns the input schema, the price and, when\n   there is one, `guidance` on how to ask this capability for good results.\n   Follow the guidance: it is how you avoid, for example, a full-text search\n   that matches the wrong field. Mention the price in one short line.\n3. **Quote several steps together.** When the user wants to know what a task\n   needing more than one lookup will cost, price the steps together: call\n   `describe_capability` with `agent` `waypoint/core`, `capability` `quote`, and\n   `input: {\"steps\": [{\"agent\": \"...\", \"capability\": \"...\"}, ...]}`. The\n   result's `plan` gives the total range, which steps the free allowance\n   covers and, when the user is signed in, their balance before and after the\n   worst case. Show that one total, not a price per step. The quote itself is\n   free and is never run with `invoke_capability`.\n4. **Run.** Call `invoke_capability` with `agent`, `capability`, the `input`\n   the schema asks for, and a new `request_id` per call (reuse it only to\n   retry the same call). The user agreed to spend credits when they connected\n   Waypoint, so run the lookups their request needs without asking before\n   each one. Ask first only when the user has said they want to approve\n   costs. Set `max_cost_credits` if the user gave a limit.\n5. **Long jobs.** If the result says the job is still running, call\n   `get_result` with its `handle` a few seconds later. Polling costs nothing.\n\n## Keep the run together\n\nEvery result carries a `run_id`. Pass it back as `run_id` on each following\nWaypoint call in the same task, and omit it only when the user starts a new,\nunrelated task. Optionally pass `purpose`: one short line on what the user is\ntrying to do, with no personal data.\n\n## The user's workspace\n\n- **Recall.** When a task may build on what the user told Waypoint before\n  (their role, their projects, how they like answers), call `read_workspace`\n  with `action` `recall` and a short `query`. It returns only what is\n  relevant, each fact with where and when it was saved. With no query it\n  returns their whole saved profile.\n- **Check the Library before paying again.** If the user asks for something\n  they may have fetched before, call `read_workspace` with `action`\n  `records` first, and open a kept result with the get_record action. Fetch again only if\n  they want fresh data.\n- **Save when asked.** When the user asks you to remember something, call\n  `write_workspace` with `action` `save_note` and `input.facts`, a list of\n  `{text, type}` (type is about, person, project, preference, rule, voice or\n  note). Do not ask whether to save; the request is the go-ahead. Never save\n  something the user did not ask you to keep, and never send their chat\n  history.\n- **Deleting and forgetting.** `delete_record` and `forget` remove what the\n  user names. Confirm with them first. To delete a Library row (from\n  `records`) with every kept copy behind it, pass the row's `key` as\n  `input.key`; `input.record_id` is one kept result's id (a UUID), never a\n  row's key. A deleted result can be restored for 30 days in Settings on\n  waypoint.ing; a forgotten fact is gone.\n\n## Talking to the user\n\n- **Keep replies short.** Where ChatGPT shows Waypoint's card for a result (a\n  quote, a result table, the balance), the card already shows the details. Add\n  one or two lines that answer the user's question; do not repeat the table.\n- After a paid call, say what it cost and the balance left (`cost` and\n  `credits_remaining`). If the result has `free_tier` set, say it was free\n  and the paid balance is unchanged.\n- If a result was shortened to fit, `next_step` says so and how to get more.\n  Follow `next_step` whenever it is present.\n- Report only `credits_remaining` and `get_balance` as the user's balance.\n  Credit figures inside a capability's data belong to someone else.\n- If the balance is too low, say so plainly and point to waypoint.ing to add\n  credits. Never offer to buy credits for the user.\n- Some results carry a source attribution. Keep it with the data when you\n  quote it.\n\n## What not to do\n\n- Do not run a paid capability before the user agrees to its price.\n- Do not use Waypoint to look up private information about an individual,\n  such as a home address. Waypoint does not offer that, and you should not\n  try to work around it.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}