Agent Access tools
Sessions can read; actions need your grant. Connect an outside agent explains session setup.
How reads work
Reads return evidence and truncation metadata, with no model calls or saved recommendations.
- Scan first, then fetch. Each
scantool returns compact rows. UsegetTasks(up to 20 ids per call) or a context or detail tool to fetch full records. - Rows come newest first, except
listTurns, which lists oldest first. When more rows exist the answer includes an opaquenextCursor. Pass it back unchanged. A malformed cursor is refused, not restarted from the top. - Page size.
limitdefaults to 25, or 50 forscanApprovalsandgetTaskHistory, and is capped at 100. A limit outside the range is clamped, not refused.listTurnsrefuses a limit over 100 instead.scanTaskRuns,scanTaskApprovals,scanTaskEventsandscanVerdictsrefuse alimitover 50, andscanVerdictsa window over 72 hours. Each refusal names the cap. These reads andgetRunshare 40 calls an hour per session. An unknown or foreign id is an empty page. - Origin. The context tools can return an
originsection: who created a task, when its story, acceptance criteria and plan were written or approved, and how far the code has moved. - Ask the guide for words.
readGuideturns what the user sees into the name to call, and back.
Arguments are strict
Missing or undeclared arguments, wrong types and values outside closed lists are refused with the argument named. Nothing is coerced to a default, so a misspelled filter never silently returns an unfiltered set.
Request ids and the audit trail
Every action needs a requestId; reuse never runs it twice. Each attempt appears in the audit trail with one outcome:
denied: the call was not admitted: the grant did not cover it, therequestIdwas missing, a required reason was unusable, or an argument did not validate. A denied call does not spend itsrequestId.failed: the call was admitted, but the action refused it (an idea that already left Ideas, say) or failed. The reason is recorded.allowed: the action was carried out.
createIdea, setTaskPriority, editUnstartedIdea, proposeTaskChange, pullNextSprint, dismissProviderWarning and triggerBoardPass replay saved outcomes for the same id and normalized arguments: creation never files twice, edits preserve later text, proposals return the original review, rollover and warning dismissal preserve later work and holds, and board starts return the original run. Changed arguments conflict. _meta.operation carries id, state, replay flag and any work reference. Assistant receipts identify the run, and Timeline and self-audit show its work. Grants gate every retry. Saved refusals stay final; use a new id after fixing the cause. Historical ids stay reserved and may refuse replay when no result is kept.
Operator storage controls add seven days once per request or make files unavailable before cleanup. Expiry preserves running work. Inspect unconfirmed cleanup's original request; unavailable files cannot resume.
reportFeedback returns the first report when its requestId repeats, even if later text differs. New reports carry _meta.operation; historical ones replay without a receipt.
Read tools
| Tool | What it returns |
|---|---|
scanTasks | Compact task rows, filtered by text, steps, priorities and times, with excludeTerminal to hide finished work. |
getTasks | Full task records for up to 20 ids, in order. Missing or foreign ids come back unresolved. |
getRelationships | One task's neighborhood: its dependencies in both directions, parent and children, and where it came from or what it spawned. Each dependency says what it gates and how far the upstream task must get to clear it. |
getWorkspaceOverview | Task counts by lifecycle state and priority, open approvals and live work, for inspecting flow and bottlenecks. |
getTaskThroughput | A rolling, source-by-source comparison of tasks created and closed, in seven-day buckets, with the current state of each source's creation cohort. It breaks generated Breakdown and follow-up work down by origin step and root source. It defaults to 60 days, accepts up to 90, and can end at a supplied Unix-millisecond time. |
getFailurePatterns | Recent failure asks and failed runs, including runs that belong to no task, for finding recurring patterns. |
getImprovementSignals | Failure and guidance-gap evidence for spotting recurring trip-ups. |
scanGuidanceGaps | The workspace's guidance-gap ledger, by status, originating task, seat and dates. |
scanFeedback | Factory problems reported in the workspace, by status or task. Reported text is quoted evidence from whoever wrote it. |
scanApprovals | The open approval inbox as compact rows without proposal payloads, filtered by task, case, whether it blocks work, and request time. |
getApproval | One approval: its category, the decisions allowed, whether this session holds that category, and the fingerprint a response must echo. |
getApprovalContext | Selected full evidence sections for one approval. |
getTaskContext | Selected full evidence sections for one task, including origin. Relationship children reflect current parent membership; getRelationships reports creation provenance. |
getTaskHistory | One task's audit trail: step changes with their cause, open and answered approvals, and plan metadata. Events are paged; free text is bounded and redacted. |
scanRuns | Compact runs without verdicts or transcripts, filtered by task, liveness, status, phase and time. Verdicts come from scanTaskRuns, getRun or scanVerdicts. |
scanTaskRuns | One task's runs, newest first, with phase, trigger, status, times, verdict tag and verdict body. A body over 8 KiB is cut and marked verdictTrimmed: true. |
getRun | One run by id, as a one-row page in the scanTaskRuns shape. |
scanTaskApprovals | One task's open and answered approvals with the answer, up to 8 KiB. Needs approvals.read. |
scanTaskEvents | One task's history events in the getTaskHistory shape. Needs workspace.read. |
scanVerdicts | Verdicts of task runs that ended in a window of up to 72 hours (24 by default), by phase and verdict tag. Workspace passes are not included. |
getTurnExcerpt | One bounded, redacted excerpt of a turn transcript. |
listTurns | The turns of one run, or of one task's runs, oldest first: phase, timing, model, effort, account, tokens in and out, cost (absent if none was recorded) and outcome. Pages hold up to 100. No prompt or transcript text; getTurnExcerpt reads one transcript. |
getSafeSettings | Workspace settings without credentials or connection secrets. |
showPreview | A render-only preview intent for this workspace. An optional path must name a renderable page; Settings and account/admin paths are refused. |
readGuide | The ampm product guide, one piece at a time: the section index, one section, or one glossary term pairing the words on screen with the tool, field or key an agent uses. A response stays under 32 KiB; a longer section is cut at a line with a note. It reads no workspace data. |
Action tools
Each requires its grant and a requestId. Current limits are checked on every call. How permissions work explains the check.
| Tool | Grant label | What it does and what it refuses |
|---|---|---|
createIdea | Create ideas | Creates an item in Ideas, optionally under an existing parent in the same workspace; a parent that does not resolve refuses the call. A parent ampm closed itself reopens to take it. A parent a person closed files the item under the nearest open ancestor or at the top level, and the result says so. Reparenting is a task change. The result warns when the stored priority differs from the one requested. |
editUnstartedIdea | Edit unstarted ideas | Edits the title or body of an item still in Ideas, against the revision the agent last read; refused once it leaves Ideas. A concurrent edit returns a revision conflict. |
proposeTaskChange | Propose task changes | Files a change to a task's meaning for specialist and human review; it never applies it. A parent change naming a closed task is refused. |
setTaskPriority | Set task priority | Changes a task's priority. Only you can grant P0, so a P0 request comes back with the lower stored priority and a warning; the agent should report the stored priority. A refused immediate start leaves the previous priority intact. |
promoteIdea | Promote ideas | Moves one named idea into intake, with an optional recorded reason. |
scheduleFutureTask | Schedule future tasks | Places a task in the backlog, Soon or Next, with a required reason; never in the current sprint or a later stage. |
triggerBoardPass | Start board passes | Starts one of four board passes: groom, plan (sprint planning), promote or groom-ideas. If it cannot start, the answer says started: false with the reason. Admission records a run before replying; every proposal still arrives as an ordinary approval. |
pullNextSprint | Pull the next sprint | Advances the planned sprint window by one: every Next task enters planning and every Soon task moves to Next, best effort per task, from one snapshot. A reason is required. Tasks that dependency order holds back stay put and are listed under heldBack, unless the call sends Move anyway. It is the only way an agent moves work into planning. |
dismissProviderWarning | Dismiss provider warnings | Releases a warning-level provider limit hold so queued work resumes, with a required reason. A hold caused by a provider rejection is refused, even if its banner still shows an older warning; only you can resume past one. A failed release leaves the hold intact. |
runCodeExperiment | Run code experiments | Starts scratch work in a registered repository or resumes experimentId. Retries keep one turn. Undispatched turns interrupt after five minutes; new work needs a new request ID. Grants are rechecked before dispatch. Scratch work expires and has no publishing or repository write access. |
reportFeedback | Report factory problems | Records a problem the factory caused: a check the agent could not run, a worker that needed a restart, a wrong verdict. It takes a one-line summary and at least one piece of evidence (a run id, a command, error text or a file), and can link one task, run or approval in the workspace. The text is stored as quoted evidence, never becomes instructions, and never leaves the workspace. No default grant includes it. |
simulateCi | Start CI simulations | Queues a PR Ready task into CI Simulation, like the merge card's button. It starts once pause, readiness and capacity holds clear. Other stages return not-pr-ready; an existing simulation or missing pull request returns a reason. Reusing requestId retains the original request or refusal. It never merges or approves a merge. No default grant. |
respondToApproval | Per approval category | Answers an approval when the approval's rules and the session's category grant both allow it, with the fingerprint from getApproval. A dependency-order refusal comes back with its violations and fixes, and a fix or Move anyway can ride the response. Approval categories covers it in full. |
Move retries retain one receipt; each tool keeps its restrictions. No tool grants secret writes, broad settings changes, worker/access management, destructive recovery, or movement through build, QA and pull request stages.
Moving past a dependency-order warning
createIdea, promoteIdea, scheduleFutureTask and pullNextSprint accept overridePipelineOrder: true to land a move past a dependency-order warning. It needs the Move anyway permission next to the tool's own, or the call is refused and nothing is written. The task's history names the session. Autopilot is always refused. Without the flag, an order refusal comes back with JSON (pipeline_order_refused and pipelineOrder): each violation with its severity, and the fixes.