Skip to content

Latest commit

 

History

History
168 lines (124 loc) · 8.06 KB

File metadata and controls

168 lines (124 loc) · 8.06 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Changelog entries are grouped by type, with the following types:

  • Added for new features.
  • Changed for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Removed for now removed features.
  • Fixed for any bug fixes.
  • Security in case of vulnerabilities.

Unreleased - ReleaseDate

Added

  • Added support for SubAgents
  • Added support for custom HTTP headers in LanguageModelRequest, allowing request header injection and overriding provider default headers. by @gaki2
  • Added support for custom HTTP headers in EmbeddingModelRequest, allowing request header injection and overriding provider default headers.
  • Add grok-4-20-beta as a model in xAI provider.
  • Added support for custom HTTP request body for LanguageModelRequest and all providers, allowing request body injection and overriding provider default body. by @gaki2
  • Added support for custom HTTP request body for EmbeddingModelRequest, and for all providers, allowing request body injection and overriding provider default body.
  • Added Provider level HTTP headers to LanguageModelRequest and EmbeddingModelRequest. allowing request header injection on provider intialization.
  • Added async tool executor support through ToolExecute::from_async(...).
  • Added support for #[tool] pub async fn ... tool bodies.
  • Added ToolContext for tools, enabling runtime-aware execution and access to LanguageModelOptions.
  • Added optional tool stream sender support in ToolContext, allowing tools to emit LanguageModelStreamChunkType from the tool body.
  • Added new LanguageModelStreamChunkType chunk types: ReasoningStart, ReasoningDelta, ReasoningEnd, ToolCallStart, ToolCallDelta, ToolCallAvailable, and ToolCallEnd
  • Added ToolCall progress stream support for vercel-ai-sdk-ui integration.

Changed

  • ToolExecute now uses a trait-based executor abstraction internally, allowing both synchronous and asynchronous tool executors behind the same Tool API.
  • ToolExecute::call(...) is now async and must be awaited. This is a breaking change for direct callers of the tool executor API.
  • ToolList::execute(...) and ToolExecute::call(...) is now async, takes ToolContext as the first parameter as the first parameter for runtime-aware execution.
  • Removed ToolExecute::new(...) in favor of the explicit from_sync(...) and from_async(...) constructors.
  • Start and End language model stream chunk types are now TextStart and TextEnd.

0.5.2 - 2026-02-25

Fixed

  • Fixed DynamicModel builder bug where .model_name(...) was overwritten on .build(), causing empty model IDs.

Added

  • Added optional jitter feature flag for backoff jitter (pulls in fastrand)
  • Added separate shared connection pools
  • Added retry logic for transport-level errors (timeout, connection refused)

Changed

  • Switched TLS backend from native-tls to rustls (removes OpenSSL dependency)
  • Reduced default max_retries from 5 to 3, initial_wait from 1s to 500ms and reduced default max_wait from 30s to 20s

0.5.1 - 2026-02-16

0.5.0 - 2026-02-16

Added

  • Added EmbeddingModel trait and EmbeddingModelRequest for embedding support across providers
  • Added embedding support to OpenAI provider
  • Added embedding support to Google provider
  • Added embedding support to OpenRouter provider (delegates to OpenAI)
  • Added embedding support to TogetherAI provider (delegates to OpenAI)
  • Added embedding support to Vercel provider (delegates to OpenAI)
  • Added openai_compatible provider.
  • Added 68 new OpenAI-compatible providers:
    • 302ai, abacus, aihubmix, alibaba, alibaba-cn, amazon_bedrock, bailing, baseten, berget, chutes
    • cloudflare-ai-gateway, cloudflare-workers-ai, cortecs, deepseek, fastrouter, fireworks-ai, firmware, friendli, github-copilot, github-models
    • groq, helicone, huggingface, iflowcn, inception, inference, io-net, jiekou, kuae-cloud-coding-plan, llama, lmstudio
    • lucidquery, mistral, moark, modelscope, moonshotai, moonshotai-cn, morph, nano-gpt, nebius, nova
    • novita-ai, nvidia, ollama-cloud, opencode, openrouter, ovhcloud, poe, requesty, scaleway, siliconflow
    • siliconflow-cn, stackit, stepfun, submodel, synthetic, togetherai, upstage, vercel, vultr, wandb
    • xai, xiaomi, zai, zai-coding-plan, zenmux, zhipuai, zhipuai-coding-plan

0.4.0 - 2026-01-24

Added

  • Added DynamicModel, model_name() methods to set model name dynamically
  • Added Vercel AI Gateway provider
  • Added OpenRouter provider
  • Added DeepSeek provider
  • Added Amazon Bedrock provider
  • Added TogetherAI provider
  • Added XAI provider

Changed

  • Changed Groq provider to use OpenAI's ChatCompletions API

0.3.0 - 2025-12-29

Added

  • Added Messages type alias for Vec<Message>.
  • Added seamless integration to work with vercel's ai-sdk-ui.
  • Added seamless integration to work with axum + vercel's ai-sdk ui.
  • Added Google provider
  • Added Extensions struct for attaching provider-specific metadata to core SDK structures
  • Async accessor methods to StreamTextResponse for thread-safe data retrieval (messages(), steps(), usage(), etc.)
  • Added builder() method for Tool for easier construction
  • tool macro is now re-exported from the main aisdk crate for easier access
  • Automatic retry logic with exponential backoff for rate limit errors (429)

Changed

  • Model capabilities are now enforced at compile time via marker traits, preventing invalid feature usage (e.g., tool calls on unsupported models).
  • Updated tool macro to require a return type of Tool
  • User does not need to import aisdk::core::tools::ToolExecute anymore to work with the tool macro
  • LanguageModel trait now requires Clone + 'static bounds (all providers must implement Clone)
  • Streaming implementation now uses tokio::sync::mpsc instead of std::sync::mpsc
  • Import path for tool macro has changed from use aisdk_macros::tool to use aisdk::macros::tool
  • Error::ApiError now uses a struct with status_code: Option<StatusCode> and details: String fields
  • LanguageModelResponseContentType::Reasoning now includes an extensions field for provider-specific metadata

Removed

  • Removed the tool macro re-export from src/core/mod.rs. User should use aisdk_macros::tool directly
  • Removed async-openai dependency
  • Clone implementation from LanguageModelRequest<M>
  • Deref implementation from StreamTextResponse (direct field access no longer works)

Fixed

  • aisdk-macros #[tool] function unused variable warning even though it is used
  • Anthropic provider API endpoint path corrected from /messages to /v1/messages
  • Anthropic provider serialization/deserialization issues with tool calls
  • Stream reliability issues that caused premature termination

0.2.1 - 2025-12-02

Added

  • OpenAI provider add verbosity option to default value

0.2.0 - 2025-12-02

Added

  • Tooll Call Support
  • Hooks (StopWhen, OnStepStart, OnStepFinish) for Language Model Requests
  • Reasoning message and configuration options
  • Anthropic provider
  • Groq provider

Changed

  • Changed standalone (generate_text,stream_text) functions to methods on LanguageModelRequest struct
  • Rebranded to aisdk