agentc Vibe 项目
不到 1MB 的极简可嵌入 C23 编程 Agent(MCP 原生支持)
agentc — 不到 1MB 的极简可嵌入 C23 编程 Agent
项目简介
agentc 是一个用 freestanding C23 编写的极简可扩展编程 Agent,仓库地址为 abird-ai/agentc。与主流编程 Agent 不同,它不依赖 libc、不带运行时、不需要解释器,编译产物是单一静态二进制。冷启动体积约 916 KiB(约为 codex 的 1/300、Claude Code 的 1/285),会话内存约 0.7 MB。它原生支持 MCP(Model Context Protocol)作为工具、提示词、资源的扩展点,并通过 include/agentc_ext.h 暴露版本化的 C ABI,让 C 与 Rust 扩展都能直接接入。
核心功能
- 极致轻量:~916 KiB 静态二进制、~2-4 MB 会话内存(取决于上下文长度),冷启动 <1ms
- 零 libc 依赖:直接做平台网络调用,自带 vendored mbedTLS,单文件即可运行
- MCP 优先:通过 MCP 暴露 tools、prompts、resources,工具发现与调用标准一致
- 双语言扩展:提供 C 与 Rust 扩展接口(
include/agentc_ext.h),并附带ext_harness验证流水线 - 跨平台:一份源码树产出 6 个目标——Linux x86-64 / aarch64 / riscv64、macOS arm64 / x86-64、Windows x86-64
- 完整 TUI:自带 PTY 终端 UI、续接对话
--continue、在线 mock provider 测试 - 可重现构建:Nix release matrix 在 Linux runner 上对每个 tag 构建并签名
技术实现
agentc 之所以能做到如此小的体积,关键在于它的运行时选择:项目刻意不引入解释器、不带 GC,从 main() 启动到第一帧 TUI 渲染只映射自己约 0.4 MB 的文本段、持有约 0.2 MB 的堆。相比之下,codex 启动后持有 85 MB、Claude Code 持有 188 MB、pi(基于 Node.js)持有 139 MB 的堆与共享内存——这些差距主要来自 runtime,而不是特性集。
网络栈方面,agentc 直接使用平台 socket API 而非 libc 包装,并 vendored 了 mbedTLS 以支持 TLS;这意味着 agentc 在嵌入式或裸金属环境下也能联网。MCP 集成通过 stdio 协议与 Python mock server 通信,make mcp.sh 已包含 round-trip 测试。Rust 扩展走 cdylib 动态库路径,与 C 扩展共用同一份 ABI 头文件,避免双协议并行维护。
快速上手
- 安装:
curl -fsSL https://raw.githubusercontent.com/abird-ai/agentc/master/install.sh | sh(Windows 用 PowerShell 的irm版本),默认装到~/.local/bin - 配置:
agentc setup选择 provider、写入凭据、挑选模型 - 使用:
agentc "summarise this repository"直接发起对话 - 自定义:
make编译、make check跑离线测试、make bench复现 README 中的性能数据 - 跨平台编译:
make windows在 Linux 上交叉编译 Windows exe(需 LLVM on PATH) - 验证:
make wine-check在 Wine 下跑 Windows golden 测试套件
适用人群
- 嵌入式 / 边缘计算开发者:希望在资源受限设备上跑编程 Agent
- 编程 Agent 研究者:想对比 runtime 开销对 Agent 体验的实际影响
- C / Rust 系统工程师:研究 MCP 在非 Node.js 运行时下的可行性
- DevOps / SRE:希望 CLI 工具在裸 Linux 容器里能直接跑而不需要 Node 运行时
出品方与开源
仓库归属 abird-ai/agentc,遵循主分支更新。安装脚本会校验发布包的 SHA-256,AGENTC_VERSION=0.5.0 可锁定版本。
评论与建议
登录 后参与评论或提建议