找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3486

积分

0

好友

484

主题
发表于 18 小时前 | 查看: 1| 回复: 0

上篇文章聊了用纯 C 写一个 146KB 的 AI Agent,不少人评论说:“体积这么小,能不能跑在手机上?”

我试了,还真的行!经过一番修改和踩坑,最终成功在手机的 Termux 环境中运行起来。整个过程安装极其简单,从开始到运行完毕全程不到 2 分钟。

c-agent在Termux中的交互界面截图,展示对话与功能列表

在一台普通的 Android 手机上,使用 Termux 终端,完成编译和运行,全程耗时不到 30 秒。 不需要 root 权限,不需要刷机,不需要 Docker,也不需要任何云服务器。你的手机,就是你的 AI 编程工作站。

c-agent v0.1.0在Termux中启动,显示为基于DeepSeek API的纯C CLI Agent

为什么要在手机上跑 AI Agent?

你可能会觉得这只是在“炫技”,但仔细想想以下几个实际场景,或许会改变你的看法:

1. 随时随地的代码助手
在地铁上突然想到一个 bug 的解决方案?掏出手机,打开 Termux,直接让 Agent 帮你修改代码。无需等待回家打开电脑。

2. 最便宜的“服务器”
一台闲置的旧 Android 手机,插上充电线,开启 c-agent 的 Telegram bot 模式,它就变成了一台 7×24 小时在线的 AI 助手服务器。无需支付任何云服务器费用。

3. 离线开发环境
Termux 本身就是一个完整的 Linux 环境。配合上 c-agent,你便拥有了 bash、文件编辑、代码搜索和 AI 对话能力——一个真正的口袋里的开发工作站。

4. 应急运维工具
服务器半夜挂了,而你人在外面没带电脑。这时掏出手机,在 Termux 里 SSH 连接到服务器,然后让 c-agent 帮你排查问题。它能读取日志、搜索代码、执行命令,效率远高于手动输入。


30 秒快速上手

相信我,你大概率不需要看第二遍教程:

# 1. 安装 Termux(从 F-Droid 或 GitHub Releases 下载)

# 2. 安装依赖并编译
pkg update && pkg upgrade
pkg install clang libcurl libedit make git
git clone https://github.com/coder-brzhang/c-agent.git
cd c-agent
make

# 3. 运行
export DEEPSEEK_API_KEY=sk-your-key
./c-agent

就这么简单。没有复杂的环境变量配置,没有依赖冲突,也没有版本兼容性问题。pkg install 安装四个包,执行一次 make,就完成了。编译耗时?在手机上,不到 2 秒。

c-agent在Termux中执行pwd命令,返回工作目录路径

移植踩坑实录(你不用再踩)

将一个 C 项目移植到 Android 的 Termux 环境,听起来简单,实际有几个典型的坑。这里记录下来,也算是为想做类似移植的朋友提供一份参考。

坑 1:/bin/sh 路径不存在

这是 Termux 环境最经典的坑。在标准 Linux 系统中,shell 通常位于 /bin/sh,但在 Termux 里,路径完全不同:

~ $ which sh
/data/data/com.termux/files/usr/bin/sh

所有系统路径都在 /data/data/com.termux/files/usr/ 下面。如果你的代码硬编码了 /bin/sh,程序会直接崩溃。

我的解决方案:编写一个 get_shell_path() 函数,按优先级进行探测:

const char *get_shell_path(void)
{
// 1. 优先使用 $SHELL 环境变量
const char *env_shell = getenv(“SHELL”);
if (env_shell && access(env_shell, X_OK) == 0)
return env_shell;

// 2. 检测 Termux 的 $PREFIX 环境变量
const char *prefix = getenv(“PREFIX”);
if (prefix) {
// 尝试 $PREFIX/bin/sh
        ...
    }

// 3. 常规路径兜底
// 顺序:/bin/sh → /system/bin/sh → 依赖PATH查找“sh”
}

不硬编码任何路径,也不使用 #ifdef ANDROID 这类条件编译。完全在运行时自动适配环境。

坑 2:HOME 目录路径差异

标准 Linux 上的 HOME 目录一般是 /home/username,而 Termux 上是 /data/data/com.termux/files/home
如果你的代码在获取 HOME 失败时回退到 /tmp 目录,那么配置文件可能会被写到意想不到的地方。

解决方案:统一使用一个 get_home_dir() 函数来处理:

const char *get_home_dir(void)
{
// 查找顺序:$HOME → getpwuid() → $PREFIX/home → /tmp
}

设置四级回退机制,覆盖所有可能的场景。在 Termux 环境下,$HOME 环境变量一定存在,因此第一级就会命中。

坑 3:编译和链接路径

Termux 的头文件和库文件不在 /usr/include/usr/lib,而是在 $PREFIX/include$PREFIX/lib

解决方案:在 Makefile 中加入自动检测逻辑:

ifdef PREFIX
CFLAGS  += -I$(PREFIX)/include
LDFLAGS := -L$(PREFIX)/lib $(LDFLAGS)
endif

在 Termux 环境下,$PREFIX 环境变量天然存在,因此不需要任何手动配置。而在普通的 Linux 或 macOS 上,这段代码不会生效,做到了零影响。

三个坑,总共增加了不到 50 行代码。 没有条件编译,没有平台宏,没有单独的 Termux 分支。真正实现了同一份代码,一个 make 命令,随处可编译运行。

手机变身 Telegram Bot:你的口袋 AI 管家

这是我认为最具实用价值的玩法。将一台旧手机变成全天候在线的 Telegram AI 助手服务器:

# 在 Termux 中执行
export DEEPSEEK_API_KEY=sk-your-key
export TELEGRAM_BOT_TOKEN=your-bot-token
nohup ./c-agent --telegram &

之后,你可以在任何设备的 Telegram 上给这个 bot 发送消息:

你:帮我检查一下 ~/projects/myapp 目录下是否有内存泄漏的代码
Bot:我来检查一下…

[Agent 自动执行 grep、read 等工具命令]

Bot:发现 src/parser.c 第 47 行,malloc 之后没有对应的 free…

你的旧手机,就此成为一台免费、7×24 小时在线的 AI 助手。 而且由于 c-agent 运行时仅占用约 2MB 内存,手机不会发热或卡顿。只需将它放在角落插着电,它就会安安静静地等待你的召唤。

不仅仅是手机:真正的“一次编写,随处编译”

这次在 Termux 上的成功实践验证了一个事实:c-agent 是真正的 “write once, compile anywhere”

同一份代码,目前已经在以下平台成功运行:

  • macOS (x86_64 / Apple Silicon)
  • Ubuntu / Debian (x86_64 / aarch64)
  • Android / Termux (aarch64)

下一步,它或许可以运行在:

  • 树莓派(本身就是 Linux aarch64,理论上直接 make 即可)
  • 刷了 OpenWrt 的路由器(可能需要交叉编译)
  • 任何提供 libcurl 的 POSIX 系统

一个仅 146KB 的二进制文件,通过 scp 传输过去就能使用。 这或许就是 C 语言程序员的浪漫。

最后想说的

上一篇文章中,我提到 c-agent 证明了“很多‘必须’的复杂度其实是可选的”。
现在我想补充一句:当你把那些不必要的复杂度剥离之后,软件就能到达许多以前无法触及的地方。

  • 146KB,去除了运行时的沉重包袱,于是它能跑在手机上。
  • 2MB 内存占用,避免了框架的臃肿,于是它能跑在旧设备上。
  • 零配置,简化了构建系统的复杂,于是它能在 30 秒内从源码变为可运行的程序。

这不是技术上的复古,而是一次回归本质的探索。代码已在开发者小圈内开源,Termux 环境实测可用。不妨拿出你吃灰的旧手机,赋予它一个全新的使命。

c-agent — 可能是世界上最小的全功能 AI Agent。现在,它可以运行在你的口袋里。如果你想了解更多关于在移动端或嵌入式环境进行 C/C++ 开发的技巧与讨论,欢迎来云栈社区与其他开发者交流分享。




上一篇:用自然语言描述生成视频:基于 Remotion 与 Claude AI 的实战开发指南
下一篇:干货分享:详解以太网100米传输限制与10种超距组网方案
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 19:29 , Processed in 0.412927 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表