跳转到主内容

为什么我们做了 AIMA:一个用 AI 管理 AI 推理的开源项目(播客版)

一台 AI 服务器买回来调好,三个月后价值可能只剩一半。我们开源了 AIMA——一个 Go 二进制、五十七个 MCP 工具,用 YAML 知识库驱动异构硬件上的 AI 推理部署。

时长: 00:09:14

这一期从《为什么我们做了 AIMA》展开,聊为什么我们做了一个"用 AI 管理 AI 推理"的开源项目——以及它跟 Ollama、LM Studio 这些路数不一样在哪里。

原文:/zh/blog/why-we-built-aima

本期要点

  • AI 服务器三个月价值蒸发一半——硬件没坏,但模型、引擎都在飞速迭代。
  • Ollama / LM Studio 易用但中庸,降低 TCO 同时也牺牲了 SOTA 性能。
  • AIMA 是一个薄的基础设施层:一个 Go 二进制,三条命令从裸机到推理跑通。
  • "知识胜于代码"——硬件、引擎、模型、参数都在 YAML 知识库里,扩展不需要重新编译。
  • 五十七个 MCP 工具暴露所有能力,Agent 直接操控基础设施,渐进智能 L0 到 L3b。

文字稿

鑫鑫: 今天聊一个嘉伟最近开源的项目,AIMA。一句话:用 AI 管理 AI 推理。听他讲为什么做这件事,以及它跟 Ollama、LM Studio 这些路数不一样在哪里。

嘉伟: 二零二五年开始,不少硬件厂商和客户找过来,说对我们的模型管理平台感兴趣。原因很直接:界面好用,以模型为中心,点一下就能跑起来,门槛低。有些客户愿意付费让我们帮他们也部署一套。

但那个平台最初是为特定硬件设计的。NVIDIA 的卡、华为的昇腾、海光的 DCU、AMD 的 ROCm,每种硬件的驱动、设备挂载、环境变量全都不一样。每适配一种新硬件都要写大量代码,痛苦得很。

更痛苦的是后面。客户隔三差五来找我们:帮我把最新的模型适配一下,帮我把引擎升级一下。无论平台卖多少钱,最后还是要不断投人工去维护。

我开始想:大家到底为什么需要这样一个平台?绕来绕去,答案总是回到同一个地方——TCO,总拥有成本。设备本身可能不贵,但用起来的所有成本叠在一起,远不是设备价决定的。

鑫鑫: 你常说设备价值会快速蒸发。具体到 AI 服务器,三个月、六个月,到底会跌成什么样?

嘉伟: AI 的迭代速度太快了。三个月内能冒出十个以上的新模型。花几十万买一台 AI 服务器,调好了,跑着当前最好的模型。不动它。三个月后,新模型比最初那个强差不多一倍。设备价值直接腰斩。

再加上推理引擎的进展——vLLM、SGLang、llama.cpp 每个版本都在榨取更多性能——差距还会拉大。六个月不升级,跟业内最佳水平比,可能只剩三成左右的价值。硬件没坏,但价值在跌。

我们之前那个平台,开箱即用没问题,一旦要导入最新的模型、适配引擎变化,软件就跟不上了。新东西还没出来,你不知道它长什么样,引擎会不会调整 API,硬件驱动会不会突然更新。没办法向未来兼容。

鑫鑫: Ollama、LM Studio 一行命令就能跑模型。你这么挑剔,是不是有点过于工程师视角?

嘉伟: 有人会说:Ollama、LM Studio 不是挺好的吗?一行命令或一个 APP,模型下载就能用。我的看法是,这是过去时代里的一种无奈选择。想降低 TCO,很多时候不得不同时降低设备的实际性能。

为了更兼容、更易用,这些工具做了大量中庸的预设。比如 Ollama,一键启动没问题;但你想调推理引擎的高级参数,想上更多并发,就会遇到卡点。

一个 vLLM 的推理引擎有几十个高级参数。有些参数开和不开之间差百分之五十的性能。不同版本行为还不一样,不同模型最优值也不同。你没有在真实硬件上跑过一遍,根本不知道什么情况。

降低 TCO 和维持 SOTA 性能,在这些通用方案里是冲突的。AIMA 想破的就是这个二选一——既要 TCO 压到地板,又不放弃 SOTA 性能。

鑫鑫: AIMA 一句话说做什么?让设备又便宜跑、又能跑出 SOTA?

嘉伟: AIMA 想做的事情说起来很简单:让设备在各种场景下尽可能跑出 SOTA 性能,同时把 TCO 压到接近硬件本身加电费。做起来当然不简单。

这是一个四维的最优解问题——硬件、推理引擎、模型、应用,四个维度都在快速变化,排列组合极其复杂。AIMA 的做法是把自己做成一个薄的基础设施层。一个 Go 二进制,跨平台编译,零 CGO 依赖,装上就能用。

三条命令:第一条检测硬件,第二条初始化基础设施,第三条部署模型。从裸机到模型推理跑通,就这三步——背后涉及的硬件抽象、引擎选择、参数匹配,全部被 AIMA 接住了。

AIMA 检测到你的 GPU 型号和显存,从 YAML 知识库里匹配到最优的引擎和参数配置,生成 K3S Pod 声明,拉起推理服务。整个过程不需要你知道该用 vLLM 还是 llama.cpp。

目前已经跑通的硬件包括 NVIDIA RTX 四零六零、四零九零、GB10,AMD 的 Radeon 八零六零 S 和 Ryzen AI MAX+ 三百九十五,华为昇腾、海光 DCU、苹果 M4 也都跑通了。引擎方面支持 vLLM、llama.cpp、SGLang、Ollama 四种。从开箱到一行命令跑出推理服务,这是我们想达到的体验。

鑫鑫: 你说"知识胜于代码"——这是你做这个项目时一个挺重要的判断。怎么理解?

嘉伟: 传统做法,每支持一种新硬件或新引擎,就写一堆 if-else 分支。AIMA 不这么干。硬件特征、引擎参数、模型配置,全部定义在 YAML 文件里。Go 代码只做数值比较和通用渲染,不包含厂商分支。

支持一个新引擎?写一份 YAML。支持一个新模型?也是写 YAML。百分之八十的能力扩展不需要重新编译。

知识库里的内容是结构化的:每个模型有多个 variant,每个 variant 标注了适用的 GPU 架构、最低显存要求、推理引擎类型、具体的启动参数。

AIMA 的 ConfigResolver 根据当前硬件状态,自动匹配最合适的 variant。RTX 四零六零只有 8 GB 显存?它会跳过需要 16 GB 的 vLLM,落到 GGUF 方案。

这些过去散落在论坛帖子、GitHub issue、个人笔记里的碎片知识,现在有了统一的结构化表达。谁都可以贡献一份 YAML,谁都可以复用别人验证过的配置。

鑫鑫: 另一个挺特别的设计——所有功能都暴露成 MCP 工具。这是什么意思?

嘉伟: AIMA 暴露了五十七个 MCP 工具,覆盖硬件检测、模型管理、引擎管理、部署、知识库、基准测试、集群管理等所有功能。为什么这件事重要?因为 MCP 是 AI Agent 操作外部工具的标准协议。

把所有功能都做成 MCP 工具,意味着任何 MCP Client——Claude Code、GPT、自己写的 Agent——都可以直接操控这台设备上的一切。CLI 是 MCP 工具的薄包装,不包含任何额外逻辑。

人用 CLI,Agent 用 MCP,走的是完全相同的代码路径。名字里 Managed by AI 说的就是这个——AIMA 内部没有塞一个大模型在跑,而是把自己变成了 AI Agent 可以直接操控的基础设施。

Agent 检测硬件、查知识库、部署模型、跑 benchmark、看结果、调配置,整个循环转起来不需要人参与。

鑫鑫: 你提到一个"渐进智能"L0 到 L3b 的设计。不是所有设备都能联网或挂大模型——这条线是怎么铺的?

嘉伟: AIMA 有一个我觉得挺有意思的设计:不是所有场景都有 AI 可用,所以做了五档渐进智能。最底下是 L0——YAML 知识库的默认值,编译时就嵌入在 Go 二进制里。

没网、没 AI、什么都没有,L0 也能给你一个能用的推理服务。不会是最优的,但能兜底。L0 是这个项目的底盘——任何时候都能跑。

往上 L1,人可以通过 CLI 手动覆盖参数。再往上 L2,基于历史基准测试的黄金配置——这台硬件上跑过的最优参数组合,从 benchmark 数据里沉淀下来,下次直接复用。

到 L3a,设备本身算力够强的话,内置的 Go Agent 可以用本地模型做工具调用循环。最高的 L3b,接入外部强力 Agent 比如 Claude,可以做复杂的调优、排障、探索。每层独立可用。

这里面有一个设计叫"探索即知识":Agent 每次做的探索——调参、排障、部署尝试——都会产出结构化的 Knowledge Note,写回知识库。其他设备的 Agent 可以直接复用这些知识,跳过已知的失败路径。

用的设备多了,沉淀的知识就多,后来的设备就好用。这个循环的投入是 token 和闲时算力,产出是越来越厚的知识库。

鑫鑫: AIMA 在 GitHub 开源,Apache 2.0 协议。一个 Go 二进制,拿来就能用。目标是把 AI 推理设备的 TCO 压到接近硬件加电费。今天就到这。