Tuesday, November 11, 2025
HomeArtificial IntelligenceMoonshot AI Releases Kosong: The LLM Abstraction Layer that Powers Kimi CLI

Moonshot AI Releases Kosong: The LLM Abstraction Layer that Powers Kimi CLI

Fashionable agentic purposes hardly ever discuss to a single mannequin or a single software, so how do you retain that stack maintainable when suppliers, fashions and instruments preserve altering each few weeks. Moonshot AI’s Kosong targets this drawback as an LLM abstraction layer for agent purposes. Kosong unifies message buildings, asynchronous software orchestration and pluggable chat suppliers so groups can construct brokers with out laborious wiring enterprise logic to a single API. It is usually the layer that powers Moonshot’s Kimi CLI.

What Kosong gives?

Kosong is a Python library that sits between your agent logic and LLM suppliers. It as an LLM abstraction layer for contemporary agent purposes and exhibits instance code that makes use of a Kimi chat supplier along with excessive stage helper capabilities generate and step.

The general public API floor is deliberately stored small. On the high stage you import kosong.generate, kosong.step and the outcome sorts GenerateResult and StepResult. Supporting modules outline chat_provider, message, tooling, and tooling.easy. These modules wrap supplier particular streaming codecs, token accounting and power calls behind one constant interface.

ChatProvider and message mannequin

The core integration level is the ChatProvider abstraction. Moonshot group exhibits a supplier implementation for Kimi in kosong.chat_provider.kimi. A Kimi object is initialized with base_url, api_key and the mannequin identify, for instance kimi-k2-turbo-preview. This supplier is then handed into kosong.generate or kosong.step along with a system immediate, instruments and a message historical past.

Messages are represented by the Message class from kosong.message. Within the examples, a message is constructed with a task, reminiscent of "consumer", and a content material argument. The kind of content material is documented as both a string or an inventory of content material components, which lets the library assist richer multimodal payloads whereas holding the essential chat instance easy for brand new customers.

Kosong additionally exposes a streaming unit StreamedMessagePart through kosong.chat_provider. Supplier implementations emit these components throughout technology, and the library merges them into the ultimate Message. The non-obligatory TokenUsage construction tracks token counts in a supplier unbiased means, which is then connected to the outcome objects for logging and monitoring.

Tooling, Toolset and SimpleToolset

Most agent stacks want instruments reminiscent of search, code execution or database calls. Kosong fashions this by means of the tooling module. The instance within the GitHub repo defines a software by subclassing CallableTool2 with a Pydantic parameter mannequin. The instance AddTool units identify, description and params, and implements __call__ to return a ToolOk worth which is a sound ToolReturnType.

Instruments are registered in a SimpleToolset from kosong.tooling.easy. Within the instance, a SimpleToolset is instantiated after which augmented with the AddTool occasion utilizing the += operator. This toolset is handed into kosong.step, not into generate. The toolset is liable for resolving software calls from the mannequin and routing them to the proper async perform, whereas step manages the orchestration round a single conversational flip.

generate for single shot completion

The generate perform is the entry level for plain chat completion. You present the chat_provider, a system_prompt, an express record of instruments, which may be empty, and a historical past of Message objects. The Kimi instance exhibits a minimal utilization sample the place a single consumer message is handed as historical past and instruments=[].

generate helps streaming by means of an on_message_part callback. Within the GitHub repo, the analysis group illustrates this by defining a easy output perform that prints every StreamedMessagePart. After streaming is full, generate returns a GenerateResult that comprises the merged assistant message and an non-obligatory utilization construction with token counts. This sample lets purposes each show incremental output and nonetheless work with a clear closing message object.

step for software utilizing brokers

For software utilizing brokers, Kosong exposes the step perform. The instance within the Git Repo exhibits kosong.step being referred to as with a Kimi supplier, a SimpleToolset that comprises AddTool, a system immediate and consumer historical past that instructs the mannequin to name the add software.

step returns a StepResult. The instance prints outcome.message after which awaits outcome.tool_results(). This methodology collects all software outputs produced in the course of the step and returns them to the caller. The orchestration of software calls, together with argument parsing into the Pydantic parameter mannequin and conversion into ToolReturnType outcomes, is dealt with inside Kosong so agent authors don’t have to implement their very own dispatch loop for every supplier.

Inbuilt demo and relationship with Kimi CLI

Kosong ships with a in-built demo agent that may be run regionally. The Git README paperwork surroundings variables KIMI_BASE_URL and KIMI_API_KEY, and exhibits a launch command utilizing uv run python -m kosong kimi --with-bash. This demo makes use of Kimi because the chat supplier and exposes a terminal agent that may name instruments, together with shell instructions when the choice with bash is enabled.

Key Takeaways

  1. Kosong is an LLM abstraction layer from Moonshot AI that unifies message buildings, asynchronous software orchestration and pluggable chat suppliers for agent purposes.
  2. The library exposes a small core API, generate for plain chat and step for software utilizing brokers, backed by abstractions reminiscent of ChatProvider, Message, Instrument, Toolset and SimpleToolset.
  3. Kosong at present ships a Kimi chat supplier focusing on the Moonshot AI API, and defines the ChatProvider interface so groups can plug in extra backends with out altering agent logic.
  4. Instrument definitions use Pydantic parameter fashions and ToolReturnType outcomes, which lets Kosong deal with argument parsing, validation and orchestration of software calls inside step.
  5. Kosong powers Moonshot’s Kimi CLI, offering the underlying LLM abstraction layer whereas Kimi CLI focuses on the command line agent expertise that may goal Kimi and different backends.

Kosong appears to be like like a practical transfer from Moonshot AI, it cleanly separates agent logic from LLM and power backends whereas holding the floor space small for early builders. By centering all the pieces on ChatProvider, Message and Toolset, it offers Kimi CLI and different stacks a constant technique to evolve fashions and tooling with out rewriting orchestration. For groups constructing long run agent techniques, Kosong could possibly be the correct of minimal infrastructure.


Try the Repo and Docs. Be happy to take a look at our GitHub Web page for Tutorials, Codes and Notebooks. Additionally, be happy to comply with us on Twitter and don’t overlook to hitch our 100k+ ML SubReddit and Subscribe to our E-newsletter. Wait! are you on telegram? now you may be a part of us on telegram as properly.


Michal Sutter is a knowledge science skilled with a Grasp of Science in Knowledge Science from the College of Padova. With a stable basis in statistical evaluation, machine studying, and information engineering, Michal excels at remodeling complicated datasets into actionable insights.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments