Skip to content

feat: Return task input verbatim and align task tools with the API - #1293

Open
jirispilka wants to merge 1 commit into
masterfrom
feat/task-input-api-parity
Open

feat: Return task input verbatim and align task tools with the API#1293
jirispilka wants to merge 1 commit into
masterfrom
feat/task-input-api-parity

Conversation

@jirispilka

@jirispilka jirispilka commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Task tools now return the stored task input verbatim, under the same key the API, CLI, and apify-client use. Everything in this PR came out of the task-tool workflow evals (#1294): agents could not answer "what input is my task configured with?", could not verify their own updates, and hallucinated values from the field-name list.

Not obvious from the code:

  • Returning the input is safe. The platform encrypts input fields declared isSecret: true server-side on save. Verified empirically: a task created via the raw API with a plaintext secret returns ENCRYPTED_VALUE:... from both GET actor-task and GET actor-task/input; the plaintext never comes back. Non-secret values are already returned by every other Apify surface.
  • seoDescription is required to publish, which no docs state — discovered via API probing after eval agents got stuck. Descriptions now list the full requirements, and the schema declares the SEO length limits (60/160) the API enforces.
  • Contract change: the task tools' structuredContent replaces inputFields (names only) with input.
  • Tool errors append the machine-readable API error type, e.g. (API error type: actor-task-name-not-unique).

Return the stored task input under the API's `input` key, matching
API, CLI, and apify-client. The platform encrypts input-schema fields
declared isSecret server-side on save, so reads only ever see
ENCRYPTED_VALUE placeholders (verified empirically); non-secret values
are the token owner's own data and are already returned on every other
Apify surface.

Document the full publish requirements (including seoDescription),
declare the SEO title/description length limits (60/160) in the
publicConfig schema, steer agents to resolve loose Actor references
with search-actors instead of asking, and align descriptions with
Apify docs vocabulary and style.

Tool errors now append the machine-readable Apify API error type, e.g.
"(API error type: actor-task-name-not-unique)", so callers can branch
on the exact error instead of parsing messages.
@github-actions github-actions Bot added t-ai Issues owned by the AI team. tested Temporary label used only programatically for some analytics. labels Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t-ai Issues owned by the AI team. tested Temporary label used only programatically for some analytics.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants