09. LLM集成对比:Crush vs Kimi Code CLI
9.1 LLM抽象层
Crush: Fantasy
charm.land/fantasy
- fantasy.Generate()
- fantasy.Stream()
- fantasy.AgentTool
Kimi Code CLI: Kosong
packages/kosong/
- ChatProvider Protocol
- step()
- generate()
- Toolset
9.2 支持的Provider
Crush (10+)
Kimi Code CLI (7+)
9.3 流式处理
Crush: 回调函数
fantasy.Stream(ctx, fantasy.AgentStreamCall{
OnTextDelta: func(delta string) { ... },
OnToolCall: func(tc ToolCall) { ... },
OnReasoningDelta: func(delta string) { ... },
})
Kimi Code CLI: 异步迭代器
async for part in result:
if part.text:
wire_send(ContentPart(part=part))
if part.tool_call:
result = await toolset.handle(part.tool_call)
9.4 上下文压缩
Crush: 自动摘要
func (a *sessionAgent) Summarize(...) {
// 使用小模型生成摘要
// 保留最后N条消息
// 替换历史为摘要
}
Kimi Code CLI: compact + checkpoint
async def compact_context(self):
summary = await self._summarize(history)
self._context._history = [
Message(content=f"[Summary]\n{summary}"),
last_msg,
]
9.5 对比总结