{"record":{"id":"c982838ca7dc3dea","repo":"vercel/ai","slug":"not-implemented","errorCode":null,"errorMessage":"Not implemented","messagePattern":"Not implemented","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/workflow/src/workflow-agent.ts","lineNumber":1338,"sourceCode":"    this.generationSettings = {\n      maxOutputTokens: options.maxOutputTokens,\n      temperature: options.temperature,\n      topP: options.topP,\n      topK: options.topK,\n      presencePenalty: options.presencePenalty,\n      frequencyPenalty: options.frequencyPenalty,\n      stopSequences: options.stopSequences,\n      seed: options.seed,\n      maxRetries: options.maxRetries,\n      abortSignal: options.abortSignal,\n      headers: options.headers,\n      reasoning: options.reasoning,\n      providerOptions: options.providerOptions,\n    };\n  }\n\n  generate() {\n    throw new Error('Not implemented');\n  }\n\n  async stream<\n    TTools extends TBaseTools = TBaseTools,\n    OUTPUT = never,\n    PARTIAL_OUTPUT = never,\n  >(\n    options: WorkflowAgentStreamOptions<\n      TTools,\n      TRuntimeContext,\n      OUTPUT,\n      PARTIAL_OUTPUT\n    >,\n  ): Promise<WorkflowAgentStreamResult<TTools, OUTPUT>> {\n    const { onFinish, onEnd = onFinish } = options;\n\n    // Call prepareCall to transform parameters before the agent loop\n    let effectiveModel: LanguageModel = this.model;","sourceCodeStart":1320,"sourceCodeEnd":1356,"githubUrl":"https://github.com/vercel/ai/blob/69428b1f8b037e4d118fb4853428d5c4e620493c/packages/workflow/src/workflow-agent.ts#L1320-L1356","documentation":"WorkflowAgent.generate() is a stub that intentionally throws 'Not implemented'. The WorkflowAgent class only supports token streaming via stream(); synchronous generation was never implemented for workflow-based agents. Calling generate() instead of stream() always throws.","triggerScenarios":"Calling agent.generate(...) (or an API like generateText that routes to the WorkflowAgent's language model) on a WorkflowAgent instance, which only implements stream().","commonSituations":"Developers porting code written for standard language models to WorkflowAgent; using a generic helper that calls generate(); copy-pasting examples meant for regular providers.","solutions":["Call agent.stream(...) (or streamText) instead of generate(...).","Buffer the stream manually if a single string result is needed.","Check whether a newer version of @workflow/ai implements generate() before assuming it exists."],"exampleFix":"// before\nconst result = await agent.generate({ prompt });\n// after\nlet text = '';\nfor await (const part of agent.stream({ prompt })) {\n  if (part.type === 'text-delta') text += part.delta;\n}","handlingStrategy":"try-catch","validationCode":"if (typeof agent.generate === 'function' && !agent.constructor.name.includes('Workflow')) {\n  await agent.generate(opts);\n} else {\n  // use stream\n}","typeGuard":"function supportsGenerate(a: unknown): a is { generate: Function } {\n  return !!a && typeof (a as any).generate === 'function' &&\n    !(a instanceof WorkflowAgent);\n}","tryCatchPattern":"try {\n  await agent.generate(opts);\n} catch (e) {\n  if (e instanceof Error && e.message === 'Not implemented') {\n    for await (const part of agent.stream(opts)) { /* consume */ }\n  } else throw e;\n}","preventionTips":["Prefer stream() with WorkflowAgent; reserve generate() for standard language models.","Check the class/API docs before switching between streaming and generation APIs.","Add a unit test that exercises your agent helper against WorkflowAgent early."],"tags":["unimplemented","workflow","agent"],"backgroundTag":"not-implemented","analyzedSha":"69428b1f8b037e4d118fb4853428d5c4e620493c","analyzedAt":"2026-08-30T12:32:21.016Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}