# aexp：面向AI研究者的实验控制平面

> aexp是一款轻量级Go语言实验控制平面，为研究人员和编程智能体提供远程GPU实验管理方案，在保持SSH简洁性的同时，增加运行追踪、tmux执行、资源监控、结构化指标和MCP工具支持。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-06-12T06:46:11.000Z
- 最近活动: 2026-06-12T06:53:13.286Z
- 热度: 163.9
- 关键词: experiment management, GPU, SSH, tmux, MCP, Go, SQLite, remote execution, agent-friendly, 开源
- 页面链接: https://www.zingnex.cn/forum/thread/aexp-ai
- Canonical: https://www.zingnex.cn/forum/thread/aexp-ai
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者**: murasame612
- **来源平台**: GitHub
- **原始标题**: aexp
- **原始链接**: https://github.com/murasame612/aexp
- **发布时间**: 2026-06-12

---

## 引言：实验管理的痛点与机遇

对于从事机器学习研究的科研人员和工程师而言，远程GPU服务器上的实验管理一直是一个令人头疼的问题。传统的做法往往是一堆SSH会话、`nohup`命令、tmux窗口、手动复制的日志路径和半记忆的GPU状态。这种模式对人类用户已经够痛苦了，对于编程智能体（coding agents）来说更是灾难——一旦聊天或终端会话发生变化，智能体就无法知道已提交的内容、日志的位置，或者某个运行是否仍在进行中。

aexp正是为解决这一痛点而生。它提供了一个轻量级的实验控制平面，在保持SSH便利性的同时，增加了运行记录、tmux支持的执行、实时日志、资源监控、结构化指标和审计追踪能力。

---

## 项目概览：aexp的核心定位

aexp是一款基于Go语言开发的轻量级实验控制平面，专为研究人员和编程智能体设计。它针对远程GPU机器上的研究实验运行提供了一个小型控制平面，在保持SSH便利性的基础上，增加了以下关键能力：

- 运行记录与追踪
- tmux支持的执行环境
- 实时日志流
- 资源监控（GPU/CPU/RAM）
- 结构化指标收集
- 审计追踪
- Web仪表盘
- MCP（Model Context Protocol）工具集成

---

## 核心问题：原始SSH vs aexp

aexp的设计哲学是将有歧义的实验操作变得明确化。以下是原始SSH方式与aexp方式的对比：

| 需求 | 原始SSH方式 | aexp方式 |
|------|------------|----------|
| 运行快速检查命令 | `ssh host ...` | `aexp exec --resource gpu -- ...` |
| 启动长期实验 | 手动`tmux`/`nohup` | `aexp run submit ...` |
| 后续查找日志 | 记忆路径 | `aexp run logs <run_id>` |
| 查看GPU/CPU/RAM | 运行远程命令 | Web仪表盘和资源快照 |
| 上下文丢失后恢复 | 从shell历史重建 | 查询运行、事件、指标和标记 |
| 区分设置/冒烟/正式运行 | 命名约定 | 原生`--kind setup|smoke|formal|ablation` |

---

## 技术架构：简洁而强大的设计

### 技术栈选择

aexp采用Go语言开发，这一选择带来了诸多优势：

- **单二进制文件**：单个可执行文件，无需复杂依赖
- **跨平台**：支持macOS和Linux
- **高性能**：Go的并发模型适合处理多个远程连接
- **静态编译**：易于分发和部署

### 数据存储

aexp使用SQLite作为本地数据存储，这种选择体现了项目的简洁哲学：

- **零配置**：无需单独的数据库服务器
- **单文件**：所有数据存储在一个文件中，便于备份和迁移
- **成熟稳定**：SQLite是业界最广泛部署的数据库引擎

存储的数据包括：资源信息、运行记录、事件、标记和历史。

### 远程执行模型

aexp在远程机器上使用tmux作为执行后端，这是一个巧妙的设计：

- **会话持久化**：即使SSH连接断开，tmux会话继续运行
- **输出捕获**：易于捕获stdout、stderr和退出码
- **实时日志**：可以实时跟随正在运行的实验输出
- **广泛可用**：tmux在大多数Linux服务器上已预装

---

## 功能特性详解

### 资源管理

aexp允许用户注册SSH资源，配置包括：

- **基本信息**：主机地址、用户名、根目录
- **环境配置**：默认Conda环境、Python版本
- **GPU标签**：GPU索引、CUDA版本
- **网络配置**：SOCKS代理、ProxyCommand

资源可以在CLI或Web界面中添加，支持探索模式在正式注册前测试连接。

### 运行提交与管理

实验运行是aexp的核心概念。提交运行时可以指定：

- **运行类型**：setup（设置）、smoke（冒烟测试）、formal（正式实验）、ablation（消融实验）
- **工作目录**：远程机器上的项目路径
- **环境检测**：自动检测`.venv`、`uv run`、Conda等环境
- **GPU分配**：指定使用的GPU索引
- **日志路径**：自动收集的日志文件模式
- **指标路径**：结构化指标文件模式

### 项目同步

aexp集成了rsync，支持将本地项目文件同步到远程资源：

```bash
aexp sync push --resource gpu-box --cwd ./my-project
```

这使得本地开发、远程运行的流程变得流畅。

### 事件系统

aexp提供了结构化的事件系统，实验脚本可以发出JSONL格式的UI事件：

- **进度事件**：训练进度、epoch完成
- **参数事件**：超参数记录
- **笔记事件**：实验观察记录
- **指标事件**：损失、准确率等结构化指标

这些事件被存储在SQLite中，可通过Web界面或CLI查询。

### Web仪表盘

aexp内置了一个Web仪表盘，提供：

- **资源概览**：所有注册资源的状态
- **运行列表**：运行类型、状态、GPU使用、命令
- **实时日志**：跟随正在运行的实验
- **资源监控**：GPU、CPU、RAM使用情况
- **收藏与标记**：重要运行的快速访问

仪表盘默认在本地运行无需认证，绑定到非本地地址时需要API令牌。

---

## MCP工具集成：智能体友好设计

aexp的一个突出特性是对MCP（Model Context Protocol）的原生支持。MCP是Anthropic提出的开放协议，用于标准化AI智能体与外部工具的交互。

### 安装MCP工具

```bash
aexp mcp install --target all
```

这条命令会自动配置MCP工具，让智能体可以直接调用aexp的功能，无需手动编辑MCP JSON/TOML配置文件。

### 可用的MCP工具

aexp为智能体提供了丰富的结构化接口：

- `aexp_exec`：执行快速检查命令
- `aexp_submit_run`：提交实验运行
- `aexp_project_run`：在项目上下文中运行
- `aexp_sync_push`：同步项目文件
- `aexp_mark_run`：标记运行状态

这种设计使编程智能体能够可靠地管理远程实验，解决了传统SSH方式中上下文丢失的问题。

---

## 使用场景

### 机器学习研究者

对于在远程GPU服务器上训练深度学习模型的研究者，aexp提供了：

- 实验运行的完整追踪
- 自动化的日志和指标收集
- 资源使用的实时监控
- 实验历史的可查询性

### 编程智能体工作流

对于使用Codex、Claude Code等编程智能体的用户，aexp的MCP集成使得：

- 智能体可以可靠地提交和监控实验
- 实验状态在会话间持久化
- 智能体可以查询历史运行和结果
- 实验管理变得可编程和可自动化

### 团队协作

aexp的SQLite数据库可以共享，支持：

- 团队成员查看彼此的实验
- 实验结果的集中记录
- 最佳实践的传播

---

## 安装与快速开始

### 二进制安装

```bash
curl -fsSL https://raw.githubusercontent.com/murasame612/aexp/main/scripts/install.sh | sh
aexp --help
```

安装器会下载最新的GitHub Release版本，并将`aexp`和`aexp-event`助手安装到`~/.local/bin`。

### 源码编译

```bash
git clone https://github.com/murasame612/aexp.git
cd aexp
go build -o aexp ./cmd/aexp
./aexp --help
```

### 远程机器要求

远程机器无需安装aexp，只需要：

- SSH访问权限
- bash
- tmux
- 实验运行时环境（Python、uv、Conda、CUDA等）
- 可选：rsync用于项目同步

---

## 常见工作流

### 快速远程检查

使用`exec`进行有界检查和操作，不创建正式运行记录：

```bash
aexp exec --resource gpu-box -- 'df -h /workspace'
aexp exec --resource gpu-box --json -- 'du -sh /workspace/.aexp/runs/*'
aexp exec --resource gpu-box --timeout 120 -- 'find /workspace -name "*.pt" | wc -l'
```

如果命令看起来像训练任务，`aexp exec`会拒绝执行，除非传入`--force`标志。

### 提交正式实验

```bash
aexp run submit \
  --resource gpu-box \
  --name ecl-itransformer \
  --kind formal \
  --cwd /workspace/Time-Series-Library \
  --project-env auto \
  --gpu-index 0 \
  --log-paths 'logs/**/*.log' \
  --metric-paths 'results/**/*.json' \
  -- python train.py --data ECL --model iTransformer
```

### 监控运行

```bash
aexp run list
aexp run snapshot run_xxx --json
aexp run events run_xxx --tail 50 --json
aexp run logs run_xxx --tail 100
```

---

## 技术亮点与实现细节

### 项目运行时分析

aexp能够自动发现项目的运行时配置：

- 虚拟环境：`.venv`、`uv run`、Conda
- Python版本和Torch版本
- CUDA版本
- 候选日志文件和指标文件

这种自动检测减少了手动配置的工作量。

### 执行环境推断

`--project-env auto`选项使aexp能够自动推断项目的执行环境，选择最合适的Python解释器和依赖管理方式。

### 安全设计

aexp在设计上考虑了安全性：

- 本地访问默认无令牌
- 远程访问需要API令牌
- 敏感操作（如看起来像训练任务的exec）需要显式确认

---

## 局限性与未来方向

### 当前局限

aexp当前主要针对SSH资源。虽然架构为Docker、Slurm、Kubernetes和本地执行预留了扩展空间，但开源版本有意保持简单：一个本地二进制文件、一个SQLite数据库、支持SSH+tmux的远程机器。

### 未来方向

- 支持容器化执行环境（Docker）
- 集成Slurm等集群调度系统
- 本地执行模式
- 更丰富的可视化功能
- 实验对比分析工具

---

## 总结与展望

aexp代表了AI辅助科研工具演进的一个重要方向。它将传统SSH的灵活性与现代实验管理系统的结构化能力相结合，同时通过MCP协议为编程智能体提供了友好的接口。

对于在远程GPU服务器上运行实验的研究者和开发团队而言，aexp提供了一个轻量级但功能完整的解决方案。其简洁的架构、智能体友好的设计和开源特性，使其成为实验管理工具领域的一个有力竞争者。

随着AI辅助编程和科研自动化的发展，类似aexp这样的工具将在连接人类研究者与计算资源方面发挥越来越重要的作用。
