UNPKG

@autobe/agent

Version:

AI backend server code generator

128 lines (121 loc) 5.74 kB
import OpenAI from "openai"; /** * Interface representing AI vendor configuration for the AutoBeAgent. * * Defines the connection parameters and settings required to integrate with AI * service providers that power the vibe coding pipeline. While utilizing the * OpenAI SDK as the connection interface, this configuration supports various * LLM vendors beyond OpenAI through flexible endpoint and authentication * configuration, enabling integration with Claude, DeepSeek, Meta Llama, and * other providers that follow OpenAI-compatible API patterns. * * The vendor configuration determines the AI capabilities available throughout * the entire automated development workflow, from requirements analysis and * database design through API specification, testing, and final implementation. * Different vendors may offer varying performance characteristics, cost * structures, and feature support that can be optimized for specific vibe * coding needs. * * Concurrent request management is built-in to prevent API rate limiting and * optimize resource utilization across multiple development phases and parallel * operations within the vibe coding pipeline. * * @author Samchon */ export interface IAutoBeVendor { /** * OpenAI SDK instance configured for the target AI vendor. * * Provides the API connection interface used by the AutoBeAgent to * communicate with AI services. While this uses the OpenAI SDK, it can be * configured to connect with various LLM providers by setting the appropriate * `baseURL` and authentication credentials. The SDK serves as a universal * connector that abstracts the underlying API communication protocols. * * For non-OpenAI vendors, configure the SDK with the vendor's API endpoint * and authentication requirements to enable seamless integration with the * vibe coding system. */ api: OpenAI; /** * Specific model identifier to use for AI operations. * * Specifies the exact model name or identifier that should be used for vibe * coding tasks. Supports both official OpenAI chat models and custom model * identifiers for third-party hosting services, cloud providers, or * alternative LLM vendors. The model choice significantly impacts the * quality, performance, and cost of the automated development process. * * Examples include "gpt-4", "gpt-3.5-turbo" for OpenAI, or vendor-specific * identifiers like "claude-3-sonnet", "deepseek-chat-v3", "llama3.3-70b" when * using alternative providers through compatible APIs. */ model: OpenAI.ChatModel | ({} & string); /** * Optional human-readable label for this vendor/model configuration. * * This is a display or grouping name that is distinct from the underlying * `model` identifier, and is intended for use in logs, UIs, selection menus, * or archive views where a more descriptive name is helpful (for example, * "Primary GPT-4", "Fast Drafting Model", or "Internal Llama Cluster"). * * When omitted, callers should fall back to displaying or logging the `model` * value itself, or another sensible default derived from the model * identifier. */ label?: string | undefined; /** * Optional request configuration for API calls. * * Additional request options that will be applied to all API calls made * through the OpenAI SDK. This can include custom headers, timeouts, retry * policies, or other HTTP client configuration that may be required for * specific vendor integrations or enterprise environments. * * These options provide fine-grained control over the API communication * behavior and can be used to optimize performance or meet specific * infrastructure requirements. */ options?: OpenAI.RequestOptions | undefined; /** * Maximum number of concurrent API requests allowed. * * Controls the concurrency level for AI API calls to prevent rate limiting, * manage resource consumption, and optimize system performance. The vibe * coding pipeline may make multiple parallel requests during development * phases, and this setting ensures controlled resource utilization. * * A reasonable default provides balanced performance while respecting typical * API rate limits. Lower values reduce resource consumption but may slow * development progress, while higher values can improve performance but risk * hitting rate limits or overwhelming the AI service. * * Set to undefined to disable concurrency limiting, allowing unlimited * parallel requests (use with caution based on your API limits and * infrastructure capacity). * * @default 16 */ semaphore?: number | undefined; /** * Indicates whether this vendor/model supports explicit tool choice control. * * When set to `true`, the agent may pass the `tool_choice` parameter with a * value of `"required"` (or other explicit values) for models that implement * OpenAI-style tool calling. This allows the agent to force the model to call * one of the provided tools when appropriate. * * When set to `false`, the agent will avoid sending `tool_choice` in a way * that forces tool invocation, and will instead rely on the model's default * behavior or omit tool-choice configuration entirely. This should be used * for vendors or models that do not understand, partially implement, or are * unstable with the `tool_choice` parameter. * * This flag is necessary so that a single agent implementation can work * across multiple vendors and models with differing levels of tool-calling * support, without causing API errors or unexpected behavior. * * @default true */ useToolChoice?: boolean; }