kit
轻量级知识推理 AI Agent,支持多工具调用与工作流编排
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
轻量级知识推理 AI Agent,支持多工具调用与工作流编排
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

凌晨两点,你正在为一个棘手的 bug 焦头烂额。代码逻辑清晰,测试却怎么都过不了——你需要在十几个文件之间来回跳转,grep 关键词,手动追踪调用链。这时候,你想起了桌面上那个刚装好还没来得及试的 CLI 工具:kit。
输入一行命令,Kit 开始工作。它读懂了你的代码库,理解了上下文,在数秒内定位到了那个被忽略的边界条件——一个数组越界问题,而罪魁祸首藏在一个名字叫 _compact 的不起眼的函数里。你盯着屏幕愣了两秒:它做到了你花了半小时没做到的事。
这不是科幻,而是 KIT(Knowledge Inference Tool) 正在做的事。
2024-2025 年,AI 辅助编程工具呈现爆发式增长——GitHub Copilot、Cursor、Windsurf……但大多数产品都有一个共同特点:它们是封闭的 GUI 平台。你想要 API?我不给你。你想要嵌入自己的应用?不好意思,这是付费功能。你想要透明地看到工具在做什么、怎么做的?门都没有。
KIT 正是冲着这个空白来的。
KIT 来自 mark3labs 团队,是一个完全开源、可编程嵌入的 AI 编程 Agent。与其说它是另一个 Copilot,不如说它是一套可以在任何 Go 应用里复现 Cursor/Windsurf 核心体验的开发框架。
KIT 最外层是一个功能丰富的 TUI(终端用户界面),但它的野心远不止于此:
KIT 支持 Anthropic Claude、OpenAI GPT、Google Gemini、Ollama(本地模型)、Azure OpenAI、AWS Bedrock、OpenRouter 等几乎所有主流 LLM 提供商。用户可以随时切换模型,不需要改变工作流。对于团队来说,这意味着可以在不同场景下使用性价比最高的模型。
KIT 不依赖 MCP(Model Context Protocol)中间层,而是自带一套经过精心设计的基础工具:
| 工具 | 功能 |
|---|---|
bash | 执行 shell 命令,支持交互式 sudo 密码提示 |
read / write / edit | 文件读写编辑 |
grep / find / ls | 代码库搜索导航 |
subagent | 启动命名子 Agent,处理复杂任务的分解 |
这意味着开箱即用,无需额外配置 MCP 服务器。工具执行效率高,延迟低,适合对响应速度有要求的开发场景。
KIT 提供了命名子 Agent 机制。开发者可以在配置文件中定义不同的子 Agent——比如「代码审查 Agent」「文档生成 Agent」「测试编写 Agent」——每个 Agent 都可以配置独立的大模型和工具白名单。这些命名 Agent 会主动向主模型宣告自己的能力,支持主 Agent 将复杂任务委托给最合适的子 Agent。
KIT 最独特的设计是其 Yaegi 驱动的扩展系统。开发者可以直接写 Go 源代码文件(带 //go:build ignore 标签),Kit 在运行时通过 Yaegi 解释执行这些扩展。这不是配置文件,不是 prompt 工程,而是真正的Go 代码级别的插件系统。
扩展可以注册:
项目仓库的 examples/extensions/ 目录提供了 50+ 扩展示例,涵盖从简单的「海盗翻译器」到复杂的「多 Agent 监控面板」。
KIT 提供树状会话历史,支持对话分支。你可以回到之前的思路分叉处,探索不同的解决路径,而不必在新开一个窗口从头开始。
kit daemon 允许在服务器上运行 Kit 实例,kit remote 支持客户端远程连接。KIT 还实现了 Agent Client Protocol (ACP),可以作为一个通过 stdio 通信的外部 Agent 集成到其他系统。
kit github install 可以一键生成 GitHub Actions 工作流,让 Kit 以自动化协作者/评审者的身份运行在 PR 和 Issue 上——相当于给仓库配备了一个永不休息的 AI 代码审查员。
KIT 的架构设计充分体现了 Go 社区的最佳实践:
核心依赖:
charm.land 的 LLM 提供商抽象层关键设计模式:
internal/agent/ — 核心 Agent 逻辑,独立于 UI 层internal/extensions/ — 扩展生命周期管理(13 个生命周期事件)pkg/kit/ — 公共 Go SDK,供外部应用嵌入 Kit 功能internal/ui/ — Bubble Tea TUI 实现,通过 cmd/root.go 中的桥接函数与扩展系统解耦代码遵循 ASD-STE100 简化技术英语 作为写作规范,错误处理统一使用 fmt.Errorf("context: %w", err) 包装,结构化日志使用 github.com/charmbracelet/log。
pkg/kit/ 是 KIT 项目最被低估的部分。它是一套完整的 Go 库,允许开发者在自己的应用里嵌入完整的 Kit Agent 能力:
host, err := kit.New(ctx, &kit.Options{
Model: "anthropic/claude-sonnet-4-5-20250929",
SystemPrompt: "You are a helpful coding assistant",
})
defer func() { _ = host.Close() }()
response, err := host.Prompt(ctx, "What is 2+2?")
fmt.Println(response)
SDK 遵循严格的依赖名称不泄露原则——导出的类型名使用 LLMMessage、LLMResponse 等通用术语,而非暴露底层库名。这确保了 SDK 层面的 API 稳定性。
SDK 的存在意味着 KIT 的定位根本不是「又一个 CLI」,而是一套可以构建任何类 Cursor 体验的底层引擎。
KIT 提供跨平台预编译二进制(Linux/macOS/Windows,amd64 + arm64),通过官方安装脚本一行命令完成部署。另有 Homebrew 和 npm 包 @mark3labs/kit。
重要限制: KIT 目前不支持 Docker。虽然项目提供了 deploy/sandbox/ 目录作为 workdir.dev 沙箱镜像的基础镜像,但这仅用于开发环境验证,并不构成通用容器化部署方案。对于希望在服务器上长期运行 Kit 作为后台 Agent 的场景,目前只能通过原生二进制部署。
KIT 并非没有短板:
pkg/kit/ SDK 的使用文档相对稀缺,外部开发者想要嵌入 SDK 需要阅读源码。KIT 的出现代表了一种**「透明优先」的 AI 编程工具哲学**。与将 AI 能力封闭在付费 SaaS 里的做法不同,KIT 选择了:
这种透明性在当前 AI 工具日益封闭的背景下尤为难得。它给社区提供了一个「如果 Copilot 是开源的,它应该长什么样」的参考实现。
安装(Linux/macOS):
curl -fsSL https://kit.go-kit.dev/ | sh
或通过 Homebrew:
brew install mark3labs/tap/kit
运行:
kit
查看帮助:
kit --help
在 Go 项目中嵌入 SDK:
go get github.com/mark3labs/kit