can1357/oh-my-pi · error · ToolError

agent() received invalid arguments

Error message

agent() received invalid arguments: ${result.summary}

What it means

The eval agent() bridge validates its arguments with an ArkType schema (agentArgsSchema). When the supplied args fail validation, the schema's error summary is wrapped in a ToolError naming the agent() call so eval authors know which tool rejected their input.

Solutions

  1. Read result.summary in the message to see each failing field and expected type
  2. Fix the argument names/types to match agentArgsSchema
  3. Check the current package version's schema for renamed/added required args
  4. Validate args with the schema before the call in a test harness

Example fix

// before
agent({ promt: 'do the thing', isolated: 'yes' })
// after
agent({ prompt: 'do the thing', isolated: true })
Defensive patterns

Strategy: validation

Validate before calling

const res = agentArgsSchema(args);
if (res instanceof type.errors) console.error(res.summary); else proceed(res);

Type guard

function isValidAgentArgs(a: unknown): a is EvalAgentArgs { return !(agentArgsSchema(a) instanceof type.errors); }

Try / catch

try { await runEvalAgent(args, opts) } catch (e) { if (/agent\(\) received invalid arguments/.test(e.message)) { fixArgsFromSummary(e.message); } else throw e }

Prevention

When it happens

Trigger: Calling agent() in an eval cell with missing required fields, wrong types (e.g. prompt as number), unknown properties, or malformed isolation flags (isolated/apply/merge) that the schema rejects.

Common situations: Typo'd argument names in eval frontmatter/cells; passing an object where a string is expected; schema evolution after a version upgrade added a required field; JSON-derived args with null where undefined was expected.

Understand the failure class

Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.

Related errors


AI-assisted analysis of can1357/oh-my-pi@9690622007 (2026-08-31). Data as JSON: /api/errors/8933d63c0ea3781b. Report an issue: GitHub.

Appendix: source

Thrown at packages/coding-agent/src/eval/agent-bridge.ts:78

		id: string;
		model?: string | string[];
		structured: boolean;
		schemaSource?: "caller" | "agent" | "session";
		schemaMode?: StructuredSubagentSchemaMode;
		schemaStatus?: "valid" | "invalid";
		isolated?: boolean;
		patchPath?: string;
		branchName?: string;
		nestedPatches?: NestedRepoPatch[];
		changesApplied?: boolean | null;
		isolationSummary?: string;
	};
}

function parseAgentArgs(args: unknown): EvalAgentArgs {
	const result = agentArgsSchema(args);
	if (result instanceof type.errors) {
		throw new ToolError(`agent() received invalid arguments: ${result.summary}`);
	}
	return result;
}

function trimToUndefined(value: string | undefined): string | undefined {
	const trimmed = value?.trim();
	return trimmed ? trimmed : undefined;
}

function emitProgressStatus(emitStatus: ((event: JsStatusEvent) => void) | undefined, progress: AgentProgress): void {
	if (!emitStatus) return;
	const preview = (progress.assignment ?? progress.task ?? "").split("\n")[0]?.slice(0, 120);
	emitStatus({
		op: "agent",
		id: progress.id,
		agent: progress.agent,
		status: progress.status,
		lastIntent: progress.lastIntent,

View on GitHub (pinned to 9690622007)