HyphenHyphen
HomeConsole
  • Get Started
  • Connect your coding agent
  • Build with Hyphen
  • Chat UIs & automation
  • Recipes
  • Guides
  • API Reference
OverviewLangChain & LangGraphLlamaIndexPydantic AICrewAIInstructorDSPyVercel AI SDKMastraOpenAI Node SDK
powered by Zudoku
Build with Hyphen

Build with Hyphen

These pages are for developers writing their own applications, not for people wiring up a coding agent. If you want the latter, start at Connect your coding agent.

Two values, every time

Almost every Python and TypeScript LLM framework is built on top of the official OpenAI SDK, or on a client that copies its interface. That means pointing them at Hyphen is the same two-line change:

Code
Base URL https://api.hyphen-solution.com/v1 API key sk-...

Set those, put a real model ID in the model field, and the rest of the framework carries on as if it were talking to OpenAI. There is no shim to install and no fork to maintain.

The framework pages below are setup guides built from each framework's official documentation. They have not been run end to end against the gateway.

Code
# The shape underneath all of it from openai import OpenAI client = OpenAI( base_url="https://api.hyphen-solution.com/v1", api_key="sk-...", )

The cap is the point

Here is the part that matters for this audience specifically.

Every Hyphen key carries a hard monthly budget. When it is spent, requests return HTTP 429. They do not run over and bill you. There is no overage line, no burst pricing, no surprise invoice on the first of the month.

An unattended agent loop cannot run up a bill. A retry storm in production cannot run up a bill. A while True you forgot to break out of cannot run up a bill. The worst case is a 429 and a phone call from a user, not a five-figure statement.

That is a different risk profile from metered frontier APIs, and it is why building on a flat-rate gateway is worth the config change. See Rate limits & caps for how the budget works, and Handling the 429 cap for detecting it in code.

Pick your framework

Python

  • LangChain & LangGraph: the biggest ecosystem, and graph-based agents.
  • LlamaIndex: retrieval and document workflows.
  • Pydantic AI: typed agents with validated outputs.
  • CrewAI: multi-agent crews with roles and tasks.
  • Instructor: structured output from a Pydantic model.
  • DSPy: programmatic prompting and optimisation.

TypeScript

  • Vercel AI SDK: the standard for React and Next.js apps.
  • Mastra: agents, workflows and memory on top of the AI SDK.
  • OpenAI Node SDK: no framework at all.

Three things that apply to all of them

Use a real model ID. minimax-m3 for the hard work, minimax-m2.5 for cheap and fast, minimax-text-01 for very large documents. There are no aliases. Anything else returns an error. See Choosing a model.

Give it output headroom. The M-series are reasoning models. They spend tokens thinking before they answer, out of the same max_tokens budget. Set it to 2000 or more for chat and 4000 or more for tool calling, or you will get empty strings back and wonder why. Every framework exposes this under a slightly different name, and the pages below point at the right one.

Do not use response_format. JSON mode and strict JSON schema are not supported on the M-series. Tool calling is, and it constrains output properly. Frameworks that default to response_format for structured output need to be switched to their tool-calling mode. See Structured JSON output.

Not supported

The catalog is text in, text out. No embedding models, no image models, no audio models. If your pipeline needs embeddings for a vector store, generate them elsewhere and send the text results here.

Last modified on July 28, 2026
LangChain & LangGraph
On this page
  • Two values, every time
  • The cap is the point
  • Pick your framework
  • Three things that apply to all of them
  • Not supported