极简 Agent 实用测试基准:别再只看能不能跑起来
很多项目把“轻量”写在 README 里,但这个词经常只代表安装命令短、核心代码少,或者演示时能在一台小机器上启动。
对一个需要 24 小时在线的个人助理来说,这些都不够。真正的问题是:它空闲时占多少资源?连续调用工具后会不会涨内存?断网、重启、模型限额和审批暂停之后还能不能回来?
因此我给“极简 Agent”定义了一套实用测试基准。它不评模型知识,也不追求实验室里的漂亮分数,只回答一个工程问题:
这个 Agent 能不能在低资源 VPS 上,长期、稳定、安全地替一个人处理真实任务?
极简不是一个内存数字
一个个人 Agent 至少包含四层:
消息入口 → Agent Runtime → 外部模型 → 工具与状态
只统计 Agent 主进程的 RSS,会漏掉浏览器、Node bridge、MCP 子进程、后台 worker 和模型代理。只统计空闲内存,也会漏掉长上下文、文件解析和工具输出带来的峰值。
所以“轻量”应该同时满足:
- 常驻资源低;
- 任务峰值有上限;
- 空闲后能够回落;
- 不产生孤儿进程;
- 重启后能恢复必要状态;
- 失败不会演变成无限重试;
- 高风险动作不会绕过审批。
测试环境必须先固定
不同机器、Python/Node 版本和模型端点会显著影响结果。每次测试至少记录:
host:
cpu: 2 vCPU
memory: 1 GiB
swap: 1 GiB
os: Ubuntu 24.04
runtime:
version: git commit / release tag
language: Python 3.12 / Node 26 / Go 1.x
model:
endpoint: remote OpenAI-compatible
model: fixed model id
context_window: fixed
features:
channel: Lark WebSocket
memory: SQLite or files
mcp_servers: [luck-ops]
browser: disabled
不要一边测 Agent A 的最小配置,一边给 Agent B 打开浏览器、语音和十个插件。功能集合必须一致,模型也必须一致。
DeepSeek Harness 解读(四):minimal 真的是最小 Agent 吗?
这是 DSH 系列的最后一篇。我们之前问过:minimal preset 只有两个工具,它是否已经是最小化 Agent?答案是:对模型可见能力来说接近最小,对真实运行时来说并不是。
DSH 的四种 preset 不是四个产品
DSH 当前把 Agent 能力组合成几类 preset:
standard 完整 Coding Agent
ptc TypeScript Code Mode / PTC
minimal persistent bash + str_replace_editor
creator 运行时检查和插件实验
它们不是四个独立程序,而是同一个 Cordis Runtime 上的不同能力组合。
这一区分很重要:preset 决定的是某个 Agent Scope 可以看到和使用哪些能力,而不是重新启动一套完全不同的 Agent 实现。
minimal 为什么看起来很小
DSH 的 minimal 配置对模型暴露的主要能力只有:
1. persistent bash
2. str_replace_editor
同时它关闭或抑制了很多额外上下文:
- 不加载完整 Coding Agent 的复杂工具集;
- 不注入运行时上下文;
- 不使用默认的复杂压缩能力;
- 使用固定、短的系统提示;
- 让 Bash 在多个 step 之间保持状态。
相关实现可以直接看 minimal agent preset 和 minimal runtime 设计记录。