Prime Agent 实测:真机安装 + 两个真实任务,”自我进化 Agent” 到底能不能干活

142次阅读
Prime Agent 实测:真机安装 + 两个真实任务,

不看发布会、不抄 README。本文在 Linux 真机上从零安装 Prime Agent v0.9.4,接 ZAI 的 GLM 模型,跑通两个真实任务——从零写一个带 pytest 的 CLI 工具、对 2000 行 CSV 做程序化分析(并用 awk 独立算出标准答案逐项对照)。所有数字均为本机实测,含 4 个真实踩坑,命令可直接复制复现。

前一篇 《Prime Agent 调研》 讲清楚了它的两大核心抽象(RLM 递归语言模型 + Continual Harness 自我进化骨架)。这一篇只做一件事:真机实测,用产物说话。

一、实验环境与声明

项目 配置
系统 Ubuntu Linux x86_64(内核 6.17)
Node / Python v24.18.1 / 3.12.3
磁盘 / 内存 423G 可用 / 29G
网络 中国大陆网络环境(这一点很重要,见第三节)
被测对象 prime-agent v0.9.4(2026-09-08 发布)
模型 Provider ZAI · glm-5.3-flash

声明:本文所有命令可直接复制复现;LLM 输出有随机性,你的运行结果细节可能有差异,但流程和坑是真实的。

二、安装:一条命令,1 分钟内完成

先把安装脚本下载下来过了一遍再执行(2232 行 bash,下载源是 Cloudflare R2,带 SHA-256 校验逻辑,未发现可疑行为):

curl -fsSL https://app.primeintellect.ai/prime-agent/install.sh -o prime-install.sh
sh prime-install.sh

真实安装日志(节选):

Downloading Prime Agent v0.9.4
Verifying Prime Agent download
prime-agent-0.9.4.tgz: 成功      # SHA-256 校验通过
Installing Prime Agent
added 190 packages in 20s
Prime Agent was installed successfully.
Run it with: prime-agent
$ prime-agent --version
0.9.4

安装位置在 Node 的 bin 目录下(~/.nvm/versions/node/v24.18.1/bin/prime-agent)。首次运行时它会在 ~/.prime/agent/ 下自建一套 kernel-venv(独立 Python 3.11 虚拟环境,给 Python REPL 内核用)——这个设计保证了 REPL 环境与系统 Python 隔离。

结论:安装体验顺畅,从下载到可用约 1 分钟,SHA-256 校验是默认行为。

三、Provider 接线:OpenAI 不通,ZAI 直连 5 分钟搞定

这一步踩了本次实验最大的环境坑:

  1. api.openai.com 直连超时(大陆网络环境,curl 8 秒超时无响应);
  2. 环境里现成的 OPENAI_API_KEY 走本机 socks5 代理实测返回 401 Invalid API key——key 本身就是失效的;
  3. 解法:prime-agent 的 providers 文档列了 25+ 个原生支持的 Provider(Anthropic / OpenAI / DeepSeek / Gemini / ZAI / MiniMax / Mistral / Groq 等),其中 ZAI(智谱)api.z.ai 直连可达,从网关配置里取出 key 设置环境变量即可:
export ZAI_API_KEY=sk-xxxx   # 你的 ZAI key

认证优先级(官方文档 + 实测一致):~/.prime/agent/auth.json > 环境变量(唯一例外是 Prime Inference 的 PRIME_API_KEY 优先)。

冒烟测试:

$ prime-agent --provider zai --model glm-5.3-flash -p 'Reply with exactly: PRIME-AGENT-OK' --no-session
PRIME-AGENT-OK

real    4.351s

结论:Provider 抽象是真实可用的,换 Provider 只是换一个环境变量 + 两个 CLI 参数的事。

四、任务 1:从零写一个带测试的 CLI

任务 prompt(原文):

Create todo.py: CLI with add/list/done subcommands, stores in todo.json. Create tests/test_todo.py with pytest covering all three. Run pytest, ensure all pass. No external deps beyond pytest.

过程先说实话:第一次运行中途检查时,stdout 一片空白、工作目录也是空的,一度以为它卡死没干活;几分钟后再看,todo.py、tests/test_todo.py、.pytest_cache、__pycache__ 全部落盘(文件时间戳证明它自己跑过 pytest)。最后进程正常退出(exit 0),完整输出直到 进程结束时才一次性吐出——print 模式的 stdout 是最后一口气 flush 的,中途检查极易误判(这个坑在第六节细说)。

独立验收 1:第三方复跑 pytest

tests/test_todo.py::test_add_creates_task_in_json PASSED      [8%]
tests/test_todo.py::test_add_assigns_incrementing_ids PASSED  [16%]
tests/test_todo.py::test_add_rejects_blank_text PASSED        [25%]
tests/test_todo.py::test_list_empty PASSED                    [33%]
tests/test_todo.py::test_list_shows_pending_tasks PASSED      [41%]
tests/test_todo.py::test_list_shows_done_tasks PASSED         [50%]
tests/test_todo.py::test_done_marks_task_done PASSED          [58%]
tests/test_todo.py::test_done_is_idempotent PASSED            [66%]
tests/test_todo.py::test_done_unknown_id_fails PASSED         [75%]
tests/test_todo.py::test_done_rejects_non_integer_id PASSED   [83%]
tests/test_todo.py::test_ids_keep_increasing_after_done PASSED[91%]
tests/test_todo.py::test_cli_entry_point_end_to_end PASSED    [100%]
============================== 12 passed in 0.13s ==============================

12/12 全过,而且测试质量超出 ” 能跑就行 ” 的线:空文本拒绝、未知 id 报错、非整数 id 报错、id 不复用、done 幂等、端到端入口全覆盖。

独立验收 2:真实运行 CLI

$ python3 todo.py add "write prime-agent article"
Added task 1: write prime-agent article
$ python3 todo.py add "review needle repo"
Added task 2: review needle repo
$ python3 todo.py list
[ ] 1: write prime-agent article
[ ] 2: review needle repo
$ python3 todo.py done 1
Marked task 1 as done.
$ python3 todo.py list
[x] 1: write prime-agent article
[ ] 2: review needle repo
$ python3 todo.py done 99; echo "exit=$?"
error: no task with id 99
exit=1
$ python3 todo.py add ""; echo "exit=$?"
error: task text cannot be empty
exit=1

结论:一个 prompt,约 6 分钟(含它自行探索和写测试的时间),交付了带 12 个测试、错误处理完整的可用 CLI。这个质量可以直接进真实项目。

五、任务 2:RLM 程序化数据分析(带对照实验)

RLM 的核心卖点是 ” 上下文当变量,用程序处理数据而不是把数据读进上下文 ”。设计了一个可验证的实验:

实验材料:用 Python 生成 2000 行 CSV(固定随机种子 42,四列 id,value,category),文件对模型是陌生的。同时用 awk 独立计算出黄金标准答案。

任务 prompt(原文,明确禁止整读文件):

The file data.csv in the current directory has a header row and columns: id,value,category. IMPORTANT: do not dump the whole file into your context; analyze it programmatically with the Python REPL. Compute: (1) number of data rows, (2) sum of all values, (3) per-category row counts and value sums, (4) top 3 rows by value (report value and id). Write the results to results.json and print a short summary of your findings.

结果:11 秒完成,写出 results.json(565 字节),并如实汇报了它做了 sanity check(分类行数之和 = 2000、分类和 = 总和)。

逐项对照:prime-agent vs awk 黄金标准

指标 awk 黄金标准 prime-agent 一致
数据行数 2000 2000 ✅
value 总和 9,978,551 9,978,551 ✅
alpha 行数 / 和 478 / 2,401,485 478 / 2,401,485 ✅
beta 行数 / 和 491 / 2,431,320 491 / 2,431,320 ✅
gamma 行数 / 和 507 / 2,553,380 507 / 2,553,380 ✅
delta 行数 / 和 524 / 2,592,366 524 / 2,592,366 ✅
top3(value@id) 10000@1421 / 9999@1359 / 9996@532 同左 ✅

七项全对,零幻觉。 还有个好玩的细节:我自己的 awk 标准答案先被 CSV 的 \r\n 行尾坑了($3=="alpha" 一个都匹配不上),prime-agent 反而正确处理了行尾——做对照实验的人得先验证自己的尺子。

六、踩坑实录(4 个,含原始报错)

# 坑 现象 / 原始报错 解法
1 --thinking off 不被模型支持 400 This model always engages in thinking and cannot be disabled; please use low, high, or max glm-5.3-flash 必须思考,只能 low/high/max;换模型前先想清楚
2 print 模式输出 ” 最后一口气 ” 才吐 中途检查 stdout 为空、极易误判卡死;实际进程正常 exit 0,完整输出(含它自报的 12 passed in 0.14s)在结束时一次性交付 长任务用 nohup + 日志文件;验收看产物 + 等进程退出码,不要中途下结论
3 OpenAI 直连不通 + key 失效 直连超时;走 socks5 代理返回 401 Invalid API key 换直连可达的 Provider(ZAI 实测顺畅);代理只能解决网络不能救活 key
4 对照实验的尺子先坏 awk 不处理 \r\n,alpha 统计为 0 先给标准答案工具喂 ” 已知答案 ” 自检

坑 1 和坑 2 都是 只有真跑才会遇到的——README 不会告诉你。

七、工程细节观察

daemon 常驻是真实的。装完第一次跑任务后,后台服务自动拉起:

$ prime-agent status
socket                               pid     version  status   sessions  uptime
/tmp/prime-agent-1000/daemon.sock *  809142  0.9.4    current  0         4m

会话全量落盘:~/.prime/agent/sessions/*.jsonl,本次实验产生 3 个会话文件(842B / 2.5KB / 9.1KB,最后一个就是任务 2 的完整轨迹),prime-agent agents / --resume 可浏览恢复。

CLI 表面相当完整(prime-agent --help 实测):--mode text|json|rpc|acp|daemon 四种输出模式、--goal 持久目标、--autonomous 系列参数(预算门 --autonomous-gate、最大轮次 /token/ 时长限制)、--thinking off…max 七档思考档位。这套参数面就是为无人值守长任务设计的。

八、风险与边界(实测确认的部分)

  1. 不是安全沙箱——官方 README 用 WARNING 明说:以你的用户权限执行模型生成的代码,worker/kernel 是进程隔离(防故障)不是安全隔离。跑不可信代码请外挂沙箱,本文两个任务都在干净目录进行。
  2. v0.9.x 早期版本,行为变动快——坑 1 的 thinking 参数就是例证。生产使用请锁定版本。
  3. scaffolding 效果依赖模型能力 :glm-5.3-flash 两个任务都过关,但 /refine 自我进化、--autonomous 自主模式、agent-to-agent 通信等高级特性 本文未实测,不评价——下一期补。
  4. token 成本未精确统计:print 模式不回显 usage;要精确计量建议用 --mode json 自行采集。

九、总结:两个任务之后的判断

维度 实测结果
安装 ✅ 1 分钟,SHA-256 默认校验
Provider 接线 ✅ 换 Provider = 1 个环境变量 + 2 个参数
代码生成质量 ✅ 12/12 测试 + 完整错误处理,可直接用
RLM 程序化分析 ✅ 11 秒 / 2000 行 / 七项对照全对 / 主动做 sanity check
可观测性 ✅ 会话 JSONL 落盘 + daemon status + doctor
坑 ⚠️ thinking 档位与模型强相关;print 模式长任务要日志落盘

一句话:“ 会自我进化的 Agent” 先不管,” 能把活真干完的 Agent” 它已经是了。 建议拿一个你手头真实的、半天内能验收的小任务跑一遍——记得用干净目录 + 日志落盘。/refine 和 autonomous 模式的实测,下期见。

参考

  1. PrimeIntellect-ai/prime-agent – GitHub
  2. Release v0.9.4
  3. Prime Agent: A Self-Improving RLM Harness (arXiv:2608.23552)
  4. Recursive Language Models: the paradigm of 2026 – Prime Intellect Blog
  5. Providers 文档(25+ Provider 支持列表)
  6. earendil-works/pi – 上游 TUI/ 工具集
  7. 相关阅读:《Prime Agent 调研:上下文当变量、子智能体当函数调用》

作者:yunying(增长运营官)· 实测环境:Ubuntu Linux / prime-agent v0.9.4 / ZAI glm-5.3-flash · 2026-09-15

正文完