Trendy agentic purposes not often discuss to a single mannequin or a single device, 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 constructions, asynchronous device orchestration and pluggable chat suppliers so groups can construct brokers with out laborious wiring enterprise logic to a single API. Additionally it is the layer that powers Moonshot’s Kimi CLI.
What Kosong supplies?
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 reveals instance code that makes use of a Kimi chat supplier along with excessive degree helper capabilities generate and step.
The general public API floor is deliberately stored small. On the prime degree you import kosong.generate, kosong.step and the consequence 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 reveals 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 job, resembling "consumer", and a content material argument. The kind of content material is documented as both a string or a listing of content material elements, which lets the library assist richer multimodal payloads whereas retaining the essential chat instance easy for brand spanking new customers.
Kosong additionally exposes a streaming unit StreamedMessagePart by way of kosong.chat_provider. Supplier implementations emit these elements throughout technology, and the library merges them into the ultimate Message. The elective TokenUsage construction tracks token counts in a supplier unbiased means, which is then hooked up to the consequence objects for logging and monitoring.
Tooling, Toolset and SimpleToolset
Most agent stacks want instruments resembling search, code execution or database calls. Kosong fashions this by way of the tooling module. The instance within the GitHub repo defines a device 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 answerable for resolving device 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 might be empty, and a historical past of Message objects. The Kimi instance reveals a minimal utilization sample the place a single consumer message is handed as historical past and instruments=[].
generate helps streaming by way 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 accommodates the merged assistant message and an elective utilization construction with token counts. This sample lets purposes each show incremental output and nonetheless work with a clear ultimate message object.
step for device utilizing brokers
For device utilizing brokers, Kosong exposes the step perform. The instance within the Git Repo reveals kosong.step being referred to as with a Kimi supplier, a SimpleToolset that accommodates AddTool, a system immediate and consumer historical past that instructs the mannequin to name the add device.
step returns a StepResult. The instance prints consequence.message after which awaits consequence.tool_results(). This methodology collects all device outputs produced through the step and returns them to the caller. The orchestration of device calls, together with argument parsing into the Pydantic parameter mannequin and conversion into ToolReturnType outcomes, is dealt with inside Kosong so agent authors would not have to implement their very own dispatch loop for every supplier.
Inbuilt demo and relationship with Kimi CLI
Kosong ships with a inbuilt demo agent that may be run regionally. The Git README paperwork setting variables KIMI_BASE_URL and KIMI_API_KEY, and reveals 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
- Kosong is an LLM abstraction layer from Moonshot AI that unifies message constructions, asynchronous device orchestration and pluggable chat suppliers for agent purposes.
- The library exposes a small core API,
generatefor plain chat andstepfor device utilizing brokers, backed by abstractions resemblingChatProvider,Message,Software,ToolsetandSimpleToolset. - Kosong at present ships a
Kimichat supplier focusing on the Moonshot AI API, and defines theChatProviderinterface so groups can plug in extra backends with out altering agent logic. - Software definitions use Pydantic parameter fashions and
ToolReturnTypeoutcomes, which lets Kosong deal with argument parsing, validation and orchestration of device calls insidestep. - 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 seems to be like a realistic transfer from Moonshot AI, it cleanly separates agent logic from LLM and power backends whereas retaining the floor space small for early builders. By centering the whole lot on ChatProvider, Message and Toolset, it offers Kimi CLI and different stacks a constant solution to evolve fashions and tooling with out rewriting orchestration. For groups constructing long run agent methods, Kosong could possibly be the proper of minimal infrastructure.
Take a look at the Repo and Docs. Be at liberty to take a look at our GitHub Web page for Tutorials, Codes and Notebooks. Additionally, be happy to observe us on Twitter and don’t neglect to hitch our 100k+ ML SubReddit and Subscribe to our E-newsletter. Wait! are you on telegram? now you possibly can be a part of us on telegram as properly.
Michal Sutter is an information science skilled with a Grasp of Science in Knowledge Science from the College of Padova. With a strong basis in statistical evaluation, machine studying, and information engineering, Michal excels at reworking complicated datasets into actionable insights.
Elevate your perspective with NextTech Information, the place innovation meets perception.
Uncover the newest breakthroughs, get unique updates, and join with a worldwide community of future-focused thinkers.
Unlock tomorrow’s traits right this moment: learn extra, subscribe to our e-newsletter, and grow to be a part of the NextTech neighborhood at NextTech-news.com

