Kit:一个二进制搞定的AI编程Agent运行时

当编程Agent遇上运行时抽象
在AI编程工具层出不穷的今天,Speakeasy推出的Kit走了一条不同的路线。它的定位不是又一个AI代码补全插件,而是一个编程Agent运行时(coding agent runtime)。用官方的话说,Kit想成为「更快、更便宜、更精炼的Claude」。
编程Agent运行时的概念源于传统软件工程中的运行时系统(Runtime System)设计模式。在计算机科学中,运行时是指程序执行期间提供基础服务的软件层,它负责内存管理、线程调度、异常处理等底层操作。Java虚拟机(JVM)是最经典的运行时实现——它将Java字节码与底层操作系统解耦,使得同一份代码可以在不同平台上运行。容器编排领域的containerd也采用了类似思路,它作为容器运行时,将容器的生命周期管理、镜像拉取、网络配置等能力标准化,使得Kubernetes等上层编排系统可以专注于调度逻辑而不必关心底层实现细节。
在AI Agent领域引入运行时抽象,本质上是将软件工程中成熟的分层架构思想应用到新兴场景。传统AI编程助手(如GitHub Copilot、Cursor)采用的是单体架构——模型推理、工具执行、状态管理、UI交互全部耦合在一个应用中。这种设计在早期快速迭代时很高效,但随着AI能力的快速演进和应用场景的多样化,其局限性开始显现:模型升级需要整个应用重新发布、不同编辑器需要重复开发集成逻辑、成本优化和性能调优受限于整体架构。运行时抽象通过明确的接口边界,将这些关注点分离——模型层专注推理质量,运行时层专注执行效率和资源管理,客户端层专注用户体验。这种分层不仅降低了各层的复杂度,更重要的是建立了可替换性:开发者可以在同一个运行时上切换不同模型,或者在不同客户端中使用同一个运行时,就像Java程序可以在OpenJDK、Oracle JDK等不同JVM实现上运行一样。
这句Slogan背后透露出一个关键洞察:目前主流的AI编程助手往往把「模型」和「运行环境」深度耦合在一起,导致工具切换成本高、集成复杂、成本不可控。Kit试图把这层关系解耦,让开发者能在不同编辑器、不同模型之间自由组合。

核心设计:一个工具、一个二进制
极简的工具哲学
Kit最引人注目的设计理念是:只给模型一个工具——编写并运行程序。
这与当前很多Agent框架的思路截然相反。市面上不少Agent系统会为模型配备几十种专用工具(读文件、搜索、调用API、执行命令等),试图通过工具丰富度来提升能力。而Kit反其道而行,认为模型真正需要的其实只是「写代码并执行」这一个根本能力——毕竟大多数任务最终都能归约为程序的编写与运行。
理解这一设计选择,需要了解当前AI Agent框架在工具设计上的两大流派。一派以LangChain、AutoGPT为代表,倾向于为Agent配备尽可能多的专用工具(Tool),每个工具对应一种原子操作,模型通过function calling机制选择合适的工具来完成任务。
Function Calling是大语言模型与外部工具交互的核心机制,由OpenAI在2023年6月首次在GPT-3.5和GPT-4中引入。其工作原理是:开发者在调用模型时提供一组工具的结构化描述(包含函数名、参数类型、功能说明),模型根据用户输入判断是否需要调用工具,并生成符合JSON Schema的函数调用参数,然后由应用程序执行实际调用并将结果返回给模型。这一机制使得LLM从单纯的文本生成器进化为可以操作外部系统的智能体。
然而这种方式灵活但也带来了所谓的「工具爆炸」问题。Function Calling在实践中面临的挑战是:研究表明,当可选工具数量超过15-20个时,模型的工具选择准确率会显著下降——这是因为所有工具的描述信息都需要放入上下文窗口,占据了原本用于理解任务的token预算,同时过多选项也增加了模型的决策负担。例如,一个包含30个工具的Agent系统,仅工具描述就可能占用3000-5000个token。更严重的是,模型可能会错误理解工具用途或生成不符合参数规范的调用。
因此业界开始探索替代方案:一种是工具检索(Tool Retrieval),先通过向量检索筛选出最相关的3-5个工具再提供给模型;另一派则信奉「代码即万能工具」的理念,认为几乎所有操作都可以通过编写和执行代码来完成,这也是Kit所采用的策略。OpenAI的Code Interpreter和Anthropic的Computer Use在某种程度上也验证了这一方向的可行性。
这种极简主义带来的直接好处是:更少的工具意味着更短的上下文、更低的token消耗,以及更少的模型「选择困难」。这正好呼应了它「fast, cheap, concise」的宣传定位。
单一静态二进制部署
Kit把四大能力打包进一个静态二进制文件中:
- 终端客户端(Terminal Client):命令行交互入口
- ACP服务端(Agent Client Protocol Server):协议层的Agent运行时
- A2A端点(A2A Endpoint):Agent之间通信的接口
- 子Agent编排器(Subagent Orchestrator):多Agent协作调度
静态二进制编译是一种将程序及其所有依赖(包括标准库、运行时、第三方库)完全打包进单一可执行文件的技术。这与动态链接(Dynamic Linking)形成对比——后者是现代操作系统的默认方式,程序运行时从系统中加载共享库(如Linux的.so、Windows的.dll)。Go语言因其默认静态编译特性而在基础设施工具领域广受欢迎,Docker、Kubernetes、Terraform等云原生工具几乎都是Go编写的静态二进制。
静态编译的核心优势在于极致的可移植性和零依赖部署。一个静态编译的程序可以在任何兼容架构的机器上直接运行,无需安装运行时环境、配置环境变量或解决依赖冲突。这在CI/CD场景中尤为关键:在GitHub Actions或Jenkins流水线中使用Kit,只需curl下载二进制文件并执行,而如果Kit是Python项目,则需要安装Python解释器、创建虚拟环境、pip install依赖,每个步骤都可能因版本不兼容或网络问题失败。对于开发者工具而言,单二进制意味着一条命令即可安装,无需管理Python虚拟环境、Node.js版本或系统级依赖冲突。在CI/CD场景中,这一特性更显珍贵——流水线中的每个额外依赖都意味着更长的构建时间和更多的潜在故障点。
单二进制部署的价值在实际工程中不容小觑——无需复杂的依赖安装、环境配置,开箱即用,也更便于在CI/CD流水线、容器等环境中快速集成。
ACP协议:实现Agent解耦的关键
什么是Agent Client Protocol
Kit最具技术前瞻性的部分,是对Agent Client Protocol(ACP)的深度支持。ACP的核心思想是将Agent客户端与Agent运行时彻底分离。
这个设计思路让人联想到LSP(Language Server Protocol)为编辑器生态带来的变革。Language Server Protocol(LSP)是微软在2016年随VS Code一起推出的开放协议,它彻底改变了编程工具的生态格局。在LSP之前,每个代码编辑器要支持一门编程语言,都需要独立实现语法高亮、代码补全、跳转定义、查找引用等功能。这导致Vim、Emacs、Sublime Text、Atom等编辑器都在重复造轮子,而各语言社区也需要为每个主流编辑器单独开发插件。以Python为例,需要分别开发Vim-Python、Emacs-Python、Sublime-Python等多个插件,代码重复且难以维护。
LSP通过定义标准的JSON-RPC协议,将编辑器与语言分析能力解耦:编辑器作为LSP客户端发送请求(如"获取光标位置的补全建议"),语言服务器作为LSP服务端返回响应(如补全候选列表)。这样一来,任何编辑器只需实现一次LSP客户端,就能支持所有实现了LSP服务端的语言;任何语言只需实现一次LSP服务端,就能在所有支持LSP的编辑器中使用。TypeScript、Python、Rust、Go等主流语言都有官方或社区维护的Language Server实现。
LSP的成功证明了协议标准化的巨大价值:它将M×N的集成复杂度降低到M+N,极大降低了创新门槛——新编辑器无需从零实现语言支持,新语言也能快速获得工具链。这正是ACP试图在AI Agent领域复制的模式:让Agent运行时与客户端通过标准协议交互,从而实现自由组合。
ACP带来的实际价值
通过ACP协议,Kit可以实现两个关键能力:
- 在兼容的编辑器中运行——无需为每个编辑器单独开发插件
- 编排其他Agent框架(harness)——不需要定制集成就能调度不同的Agent系统
这意味着Kit不仅仅是一个孤立的工具,而是想成为Agent生态中的一个「协议节点」。它既能作为运行时被编辑器调用,也能作为编排器去指挥其他Agent。这种双向的灵活性,是它区别于封闭式AI编程工具的核心竞争力。
值得一提的是Kit同时支持的A2A(Agent-to-Agent)协议。Agent-to-Agent(A2A)协议是Google在2025年1月提出的开放标准,旨在解决AI Agent生态的碎片化问题。在A2A出现之前,AI Agent系统基本处于各自为战的状态:AutoGen构建的多Agent系统无法与CrewAI的Agent协作,LangGraph编排的工作流无法调用Semantic Kernel中的Agent。每个框架都有自己的Agent定义方式、通信机制和状态管理模型,跨框架集成需要编写大量胶水代码。
A2A协议定义了三个核心组件:(1)Agent Card——类似HTML中的meta标签,用JSON-LD格式声明Agent的能力、输入输出规范、安全策略等元信息,使得Agent可以被发现和理解;(2)Task Delegation——标准化的任务委派机制,定义了如何将任务描述、上下文数据、执行约束传递给另一个Agent;(3)Progress Streaming——实时状态同步协议,让委派方可以监控被委派Agent的执行进度、中间结果和资源消耗。
这一协议的意义在于建立了Agent之间的"互联网"。就像HTTP协议让不同网站可以相互链接,A2A让不同Agent可以相互调用。一个用Kit构建的代码生成Agent可以将测试任务委派给一个用pytest-ai构建的测试Agent,而无需两者使用相同的开发框架。这为构建大规模、跨组织的Agent协作网络奠定了基础,也使得Agent能力可以像微服务一样被组合复用。
定位分析:Kit为谁而生
从Product Hunt上126票、位列当日第7的表现看,Kit在开发者社区获得了不错的初期关注。它被归类于软件工程、开发者工具、人工智能与GitHub几个标签下,目标用户非常明确——追求效率与成本控制的专业开发者。
说个细节它「Claude but fast, cheap, concise」的措辞。这并非贬低Claude,而是暗示Kit可能在Claude等强大模型之上,通过运行时层面的优化(更少工具、更短上下文、更精准的编排)来降低使用成本、提升响应速度。换句话说,Kit解决的不是「模型不够强」的问题,而是「如何更经济高效地用好现有模型」的问题。
观察与思考
协议标准化是当前AI Agent领域一个正在兴起的重要趋势。从Anthropic的MCP(Model Context Protocol)到这里的ACP、A2A,业界正在从「各自造轮子」走向「协议互操作」。
理解当前AI Agent领域新兴的三大协议,需要从它们解决的问题边界入手。Model Context Protocol(MCP)由Anthropic在2024年11月推出,聚焦于"模型如何安全、标准化地访问外部资源"。它定义了资源(Resources)、工具(Tools)、提示词(Prompts)三种抽象,使得AI模型可以通过统一接口读取文件系统、查询数据库、调用API,而无需为每种数据源编写专门的集成代码。MCP服务器可以暴露本地文件、Notion数据库、Slack消息等资源,任何支持MCP的AI应用都能直接使用。
Agent Client Protocol(ACP)则处理更上层的交互:它定义了Agent客户端(如IDE插件、命令行工具)与Agent运行时(如Kit)之间的通信规范。ACP关注的是"用户如何与Agent交互"以及"客户端如何控制Agent的生命周期"。它规定了任务提交、执行控制(暂停/恢复/取消)、结果获取等操作的标准格式。可以类比Web架构:MCP类似数据访问层的ORM,ACP类似前后端之间的RESTful API。
A2A(Agent-to-Agent)协议位于最高层,解决"Agent之间如何发现、信任和协作"。当一个Agent需要将子任务委派给另一个专业Agent时,A2A定义了任务描述、能力匹配、结果验证等机制。三者的关系是互补而非竞争:一个完整的多Agent系统可能同时用到这三个协议——通过MCP访问数据源,通过ACP与用户交互,通过A2A编排子Agent。Kit的架构价值正在于它同时实现了ACP和A2A,并可通过MCP连接外部工具,成为这个新兴协议栈的一个完整实现。这类似于现代Web服务器既支持HTTP(通信协议)、又支持OAuth(认证协议)、还支持GraphQL(查询协议)。
Kit把这些协议能力集成在一个轻量二进制中,代表了一种务实的工程思路。
当然,Kit目前仍处于早期阶段,实际的性能优势、成本控制效果以及生态兼容性还有待更多真实场景的验证。它「一个工具打天下」的极简哲学也存在争议——在某些复杂任务中,缺乏专用工具是否会成为瓶颈,仍需持续观察。
但无论如何,Kit所代表的运行时抽象 + 协议解耦方向,很可能是AI编程工具走向成熟的必经之路。对于关注AI Agent架构演进的开发者来说,它是一个值得持续跟踪的项目。
核心要点
- Kit定位为编程Agent运行时,将模型推理与执行环境解耦,这种分层架构源自JVM、containerd等经典运行时系统的设计智慧
- 采用极简工具哲学,只提供"编写并运行程序"单一工具,以此规避Function Calling中的工具爆炸问题,降低上下文消耗和模型决策负担
- 以单一静态二进制形式发布,集成终端客户端、ACP服务端、A2A端点和子Agent编排器,实现零依赖部署和跨平台可移植性
- 深度支持ACP协议,复制LSP在编辑器生态的成功模式,将Agent客户端与运行时解耦,降低集成复杂度
- 同时实现MCP、ACP、A2A三大协议,形成完整的协议栈:MCP处理资源访问、ACP处理用户交互、A2A处理Agent协作
- 目标用户是追求效率与成本控制的专业开发者,通过运行时层优化实现"更快、更便宜、更精炼"的Claude替代方案
- 代表AI编程工具从单体架构向协议标准化演进的趋势,尽管仍处早期阶段,但其运行时抽象理念值得持续关注
相关推荐

让AI审查自己的文档:验证CLAUDE.md真伪的开源工具包
RAG Techniques仓库作者开源了一套工具,用于验证AI Agent读取的CLAUDE.md和项目文档中哪些是猜测、哪些被代码证伪。文章解析其置信度标注机制、与Claude Code /init的对比及局限性。

谷歌又一AI安全研究员离职:警告"我们可能都要死"
谷歌又一位AI安全研究员离职并发出"人类可能面临灭绝"的极端警告,本文解析此类离职背后的行业张力、存在性风险争论以及AI治理的深层挑战。

19.8MB的LLM:44M参数模型如何在CPU上跑出1900 tok/s
开发者QLNI从零训练出仅19.8MB、44M参数的量化语言模型SHADOW-50M,采用三元权重和冻结指纹词表,CPU上跑出约1900 tok/s。它把计算交给专用电路、记忆交给磁盘索引,在精确计算与可靠检索任务上超越同级模型。