Files
united-workforce/packages/workflow-agent-llm
xiaoju 2b587612d5 refactor: replace maxRounds with supervisor check interval
Removes maxRounds as a hard stop limit from the entire stack. The supervisor
(already configured via workflow.yaml supervisorInterval) is now the sole
termination authority.

Changes across 27 files in 11 packages:
- workflow-protocol: StartStep.meta is now empty, StartNodePayload drops maxRounds
- workflow-cas: isStartPayload no longer checks maxRounds
- workflow-execute: engine, worker, fork-thread all stripped of maxRounds plumbing
- cli-workflow: --max-rounds flag removed from CLI and HTTP API
- workflow-runtime: build-context and create-workflow no longer reference maxRounds
- workflow-dashboard: UI no longer sends maxRounds
- workflow-template-develop/solve-issue: moderator no longer checks rounds remaining
- All tests updated

Fixes #185
2026-05-11 08:51:35 +00:00
..

@uncaged/workflow-agent-llm

AgentFn adapter that calls an OpenAI-compatible POST /chat/completions endpoint using LlmProvider from @uncaged/workflow-runtime.

Single-turn: system text is the current role’s systemPrompt, user text is the thread’s initial prompt (ctx.start.content). Errors from HTTP, JSON, or empty choices are thrown as Error with a JSON payload string.

Install

bun add @uncaged/workflow-agent-llm @uncaged/workflow-runtime zod

In this monorepo: "@uncaged/workflow-agent-llm": "workspace:*", "@uncaged/workflow-runtime": "workspace:*" (and satisfy zod ^4 as required by @uncaged/workflow-runtime).

Usage

import { createLlmAdapter } from "@uncaged/workflow-agent-llm";

const agent = createLlmAdapter({
  baseUrl: "https://api.openai.com/v1",
  apiKey: process.env.OPENAI_API_KEY!,
  model: "gpt-4.1-mini",
});

API overview

Export Description
createLlmAdapter(provider) LlmProviderAgentFn
chatCompletionText({ provider, messages }) Low-level Result<string, LlmChatError> helper
LlmMessage { role: "system" | "user" | "assistant"; content: string }
LlmChatError Discriminated error kinds for failed completions