不到 1 MB 的编码 Agent:agentc 如何用 freestanding C23 做到可嵌入
大多数 AI 编码 Agent 依赖 Node.js、Python 或完整的桌面运行时。它们功能丰富,但在启动速度、部署体积和嵌入式场景上并不轻量。agentc 走的是另一条路线:用 freestanding C23 编写一个可扩展的编码 Agent,目标是静态链接、零 libc,并提供 C 与 Rust 扩展接口。
它的核心取舍
agentc 的 GitHub README 将项目定位为 minimal、extensible coding agent。README 当前列出的发布二进制约 916 KiB(带调试信息约 1.9 MiB),启动基准为 0.3 ms;仓库还提供 make bench,让使用者在本机测量启动时间、空闲 RSS 和二进制大小,而不是把这些数字当成所有机器上的保证。
“没有 libc”并不意味着没有网络和 TLS。项目使用自己的启动入口、分配器和文件/网络抽象;Linux 发行版包含 freestanding mbedTLS,macOS 和 Windows 则使用各自的平台安全栈。这样做牺牲了部分通用库便利,却换来了可预测的静态部署边界。
它也不是把 Agent 循环硬编码成一个不可修改的 CLI。扩展可以通过版本化 C ABI 接入工具、Provider、技能和主题;C 与 Rust 都有扩展示例。MCP 服务器仍是主要扩展方式,除了工具,服务器提供的 prompts 和 resources 也可以被发现和读取。
安装与第一次运行
README 给出的安装方式会下载对应平台的发行包、校验 SHA-256,然后安装到 ~/.local/bin:
curl -fsSL https://raw.githubusercontent.com/abird-ai/agentc/master/install.sh | sh agentc setup agentc "summarise this repository"
agentc setup 用于选择 Provider、保存凭据和选择模型。若只想先试本地模型,可以使用 Ollama 的 OpenAI 兼容端点:
agentc --provider ollama --model llama3.2
云端 Provider 则可以通过环境变量保存密钥,再显式指定模型,避免把凭据写进 shell 历史:
export XAI_API_KEY="your-key" agentc --provider xai --model grok-4 --api-key "$XAI_API_KEY"
项目还支持 agentc --list-models [filter] 查看模型,以及 agentc --refresh-models 忽略 24 小时发现缓存重新探测。配置和认证文件位于 ~/.config/agentc/,README 说明认证文件权限为 0600。
Provider、MCP 与资源边界
agentc 内置支持 Anthropic、OpenAI、原生 Gemini、Ollama,以及多个 OpenAI-compatible Provider。Provider 扩展可以注册自己的请求格式、SSE 映射和静态模型元数据。对需要在企业内网运行的团队来说,这种设计比把 Provider 逻辑散落在脚本里更容易维护。
MCP 部分值得单独注意。除了常见工具调用,agentc 会把服务器暴露的 prompt 映射成 /mcp__ 命令,并提供 mcp_list_resources、mcp_list_resource_templates 和 mcp_read_resource 三个只读工具。文本大小、服务器数量和 prompt 注册数都有上限;超过限制时调用失败,而不是静默截断内容。这种“明确失败”对调试 Agent 工作流很重要。
适合谁,不适合谁
agentc 适合希望把编码 Agent 放进受控工具链、CI 辅助环境、轻量开发容器或自有产品中的团队。静态二进制、跨平台构建和 C ABI 能减少运行时依赖,也便于将工具能力编译进一个发行物。
但它目前更像一个快速发展的工程项目,而不是成熟桌面 IDE。README 的平台表格明确区分了“构建通过”“测试通过”和“人工使用验证”:Linux 的端到端验证最完整,macOS 和 Windows 的部分场景仍需要真实用户测试。部署前应先运行 make check 和对应平台测试,不要只因为能交叉编译就宣称所有平台体验等价。
如果你正在做一个必须快速启动、体积可控、还能接入 MCP 的编码 Agent,agentc 提供了一个很有启发性的基线:把模型调用、工具协议和扩展 ABI 保留下来,把传统运行时依赖尽可能移出核心。它未必适合每个应用,却清楚展示了“Agent 不一定要很重”这条工程路线。