Las aplicaciones agentes modernas rara vez hablan con un solo maniquí o una sola aparejo, entonces, ¿cómo se puede perseverar esa pila mantenible cuando los proveedores, modelos y herramientas cambian cada pocas semanas? IA de disparo a la reflejo kosong aborda este problema como una capa de inducción LLM para aplicaciones de agentes. Kosong unifica estructuras de mensajes, orquestación de herramientas asincrónicas y proveedores de chat conectables para que los equipos puedan crear agentes sin conectar la método empresarial a una única API. Además es la capa que impulsa Kimi CLI de Moonshot.
¿Qué ofrece Kosong?
Kosong es una biblioteca de Python que se encuentra entre la método de su agente y los proveedores de LLM. Es una capa de inducción LLM para aplicaciones de agentes modernas y muestra código de ejemplo que utiliza un Kimi proveedor de chat yuxtapuesto con funciones de ayuda de stop nivel generate y step.
La superficie de la API pública se mantiene pequeña intencionalmente. En el nivel superior importas kosong.generate, kosong.step y los tipos de resultados GenerateResult y StepResult. Los módulos de soporte definen chat_provider, message, toolingy tooling.simple. Estos módulos envuelven formatos de transmisión específicos del proveedor, contabilidad de tokens y llamadas de herramientas detrás de una interfaz consistente.
ChatProvider y maniquí de mensajes
El punto central de integración es el ChatProvider inducción. El equipo de Moonshot muestra una implementación de proveedor para Kimi en kosong.chat_provider.kimi. A Kimi El objeto se inicializa con base_url, api_key y el nombre del maniquí, por ejemplo kimi-k2-turbo-preview. Este proveedor luego se pasa a kosong.generate o kosong.step yuxtapuesto con un mensaje del sistema, herramientas y un historial de mensajes.
Los mensajes están representados por el Message clase de kosong.message. En los ejemplos, un mensaje se construye con un rol, como "user"y un content argumento. el tipo de content está documentado como una prisión o una inventario de partes de contenido, lo que permite que la biblioteca admita cargas enseres multimodales más ricas y al mismo tiempo mantenga el ejemplo de chat sustancial simple para los nuevos usuarios.
Kosong todavía expone una dispositivo de streaming StreamedMessagePart a través de kosong.chat_provider. Las implementaciones del proveedor emiten estas partes durante la reproducción y la biblioteca las fusiona en la lectura final. Message. el opcional TokenUsage La estructura rastrea el recuento de tokens de forma independiente del proveedor, que luego se adjunta a los objetos de resultado para su registro y monitoreo.
Herramientas, conjunto de herramientas y conjunto de herramientas simple
La mayoría de las pilas de agentes necesitan herramientas como búsqueda, ejecución de código o llamadas a bases de datos. Kosong modela esto a través del tooling módulo. El ejemplo en el repositorio de GitHub define una aparejo mediante subclases CallableTool2 con un maniquí de parámetros Pydantic. el ejemplo AddTool conjuntos name, description y paramse implementos __call__ para devolver un ToolOk valía que es válido ToolReturnType.
Las herramientas están registradas en un SimpleToolset de kosong.tooling.simple. En el ejemplo, un SimpleToolset se crea una instancia y luego se aumenta con el AddTool instancia utilizando el += cirujano. Este conjunto de herramientas se pasa a kosong.stepno en generate. El conjunto de herramientas es responsable de resolver las llamadas a herramientas del maniquí y enrutarlas a la función asíncrona correcta, mientras step gestiona la orquestación en torno a un único turno conversacional.
generate para completar un solo disparo
El generate La función es el punto de entrada para completar el chat simple. Tú proporcionas el chat_providera system_promptuna inventario explícita de herramientas, que pueden estar vacías, y un historial de Message objetos. El ejemplo de Kimi muestra un patrón de uso intrascendente en el que un único mensaje de afortunado se pasa como historial y tools=().
generate admite transmisión a través de un on_message_part gustar de reverso. En el repositorio de GitHub, el equipo de investigación ilustra esto definiendo un simple output función que imprime cada StreamedMessagePart. Una vez completada la transmisión, generate devuelve un GenerateResult que contiene el mensaje del asistente fusionado y un mensaje opcional usage estructura con recuentos de tokens. Este patrón permite que las aplicaciones muestren resultados incrementales y sigan funcionando con un objeto de mensaje final noble.
step para herramientas que utilizan agentes
Para los agentes que utilizan herramientas, Kosong expone la step función. El ejemplo en Git Repo muestra kosong.step siendo llamado con un Kimi proveedor, un SimpleToolset que contiene AddToolun mensaje del sistema y un historial de afortunado que indica al maniquí que llame al add aparejo.
step devuelve un StepResult. El ejemplo imprime result.message y luego dilación result.tool_results(). Este método recopila todos los resultados de la aparejo producidos durante el paso y los devuelve a la persona que pasión. La orquestación de llamadas a herramientas, incluido el disección de argumentos en el maniquí de parámetros de Pydantic y la conversión a ToolReturnType Los resultados se manejan internamente de Kosong, por lo que los autores de agentes no tienen que implementar su propio ciclo de despacho para cada proveedor.
Demostración integrada y relación con Kimi CLI
Kosong se envía con un agente de demostración integrado que se puede ejecutar localmente. El archivo README de Git documenta las variables de entorno. KIMI_BASE_URL y KIMI_API_KEYy muestra un comando de inicio usando uv run python -m kosong kimi --with-bash. Esta demostración utiliza a Kimi como proveedor de chat y expone un agente terminal que puede gustar a herramientas, incluidos comandos de shell cuando la opción con bash está habilitada.
Conclusiones esencia
- Kosong es una capa de inducción LLM de Moonshot AI que unifica estructuras de mensajes, orquestación de herramientas asincrónicas y proveedores de chat conectables para aplicaciones de agentes.
- La biblioteca expone una pequeña API central,
generatepara charlar simple ysteppara herramientas que utilizan agentes, respaldados por abstracciones comoChatProvider,Message,Tool,ToolsetySimpleToolset. - Kosong actualmente envía un
Kimiproveedor de chat dirigido a la API Moonshot AI y define elChatProviderinterfaz para que los equipos puedan conectar backends adicionales sin cambiar la método del agente. - Las definiciones de herramientas utilizan modelos de parámetros de Pydantic y
ToolReturnTyperesultados, lo que permite a Kosong manejar el disección de argumentos, la garra y la orquestación de llamadas a herramientas internamentestep. - Kosong potencia la CLI Kimi de Moonshot, proporcionando la capa de inducción LLM subyacente, mientras que Kimi CLI se centra en la experiencia del agente de raya de comandos que puede apuntar a Kimi y otros backends.
Kosong parece un movimiento pragmático de Moonshot AI, separa claramente la método del agente del LLM y los backends de las herramientas, al tiempo que mantiene la superficie pequeña para los primeros desarrolladores. Al centrar todo en ChatProvider, Message y Toolsetle brinda a Kimi CLI y otras pilas una forma consistente de desarrollar modelos y herramientas sin reescribir la orquestación. Para los equipos que crean sistemas de agentes a generoso plazo, Kosong podría ser el tipo adecuado de infraestructura mínima.
Mira el repositorio y Documentos. No dudes en consultar nuestra Página de GitHub para tutoriales, códigos y cuadernos. Encima, no dudes en seguirnos en Gorjeo y no olvides unirte a nuestro SubReddit de más de 100.000 ml y suscríbete a nuestro boletín. ¡Esperar! estas en telegrama? Ahora todavía puedes unirte a nosotros en Telegram.
