AI 编程智能体的赛道又卷出新高度。前有 Codex、Claude Code 各领风骚,后有 DeepSeek Harness 一键开源,而这次登场的是 Prime Intellect 开源的 Prime Agent——一个号称"能自我改进"的智能体框架(官方描述:面向编码工作流和长时自主任务的自改进 RLM 智能体),上线几个月已在 GitHub 收获超 1.8 万 Star,社区里不少人称它为"超越 Codex/Claude Code 的新一代 coding harness"。
它到底新在哪?普通开发者怎么 5 分钟跑起来?这篇文章带你从背景讲起,通俗易懂地过一遍。
一、背景:现在的 AI 编程助手都有个通病
用过 Claude Code、Codex 这类工具的朋友应该都有体会:AI 很聪明,但每次对话都是从零开始。
- 上周教过它"我们项目改完代码要跑 npm run check",这周它忘了;
- 上次总结出的"排查这个服务先看日志再看重启策略"的经验,换个会话就消失;
- 上下文一长就开始"失忆",前面读过的文件后面又重新读一遍。
本质原因是:这些工具把 harness(运行环境/外壳)写死了。系统提示词、工具定义、工作流程都是官方固定的,模型用得再顺手,也没法把"经验"沉淀下来传给下一次会话。
Prime Intellect(就是那个做分布式训练和 PRIME-RL 强化学习框架的团队)提出了一个新思路:让 harness 本身也能被 AI 改进。这就是 Prime Agent 的核心——一个"自我改进的 RLM Harness"(A Self-Improving RLM Harness),基于他们之前广受欢迎的 pi 终端智能体构建,MIT 协议完全开源。
二、Prime Agent 是什么:两个核心抽象
别被 RLM(Recursive Language Model,递归语言模型)这个词吓到,拆开看其实很好懂。
1. RLM:把上下文当变量,把子任务当函数调用
传统 agent 是"一问一答"式的:你给提示词,模型回复。而 RLM 的思路是给模型一个常驻的 Python REPL:
- 上下文即变量:读过的文件、跑过的命令结果、中间结论,都像变量一样留在 REPL 里,随取随用,不用反复塞进对话;
- 一切皆代码:模型只有一个内置工具 ipython,文件操作、shell 命令、调工具、开子代理,全部通过写 Python 代码完成;
- 子代理像函数一样递归:await rlm("子任务") 一行代码就能派出一个真正的子智能体去并行干活,结果通过消息回传给父代理。
# 模型在 REPL 里可以这样干活
await rlm("审查认证模块的安全性") # 派子代理 A
await rlm("检查测试覆盖率") # 派子代理 B(并行)
# 子代理干完活,结果作为消息回流
2. Continual Harness:会积累经验的"外壳"
这是 Prime Agent 最有意思的部分。它把补充提示词、记忆、技能描述、可复用的子代理规格,全部存成持久化状态(默认只作用于本地会话)。
关键命令是 /refine:AI 会回顾当前整个工作轨迹,把值得记住的东西——比如"这个项目的构建必须先装 Rust"——以小步、有证据支撑的方式写入 harness 状态。它永远不会改写不可变的基础系统提示词,且每次修改都有快照、可回滚。
一句话总结:以前是"AI 在固定流水线上打工",现在是"AI 能自己改造流水线,还能留下笔记"。
三、它解决了什么问题
| 经验不能跨会话沉淀 | Continual Harness + /refine 持久化经验,可回滚 |
| 上下文越聊越长、越聊越糊涂 | Python REPL 把上下文当变量管理 + 自动压缩 |
| 单线程干活慢 | rlm() 递归子代理原生并行 |
| 关掉终端任务就断了 | 后台守护进程,会话关机不断线,随时 attach 回来 |
| 复杂流程要人盯梢 | /goal 持久目标 + /heartbeat 心跳 + /autonomous 有界自主模式 |
| 通用能力不够垂直 | 技能就是可 import 的 Python 包,还能让 AI 自己造技能 |
四、5 分钟上手:安装到第一个会话
第 1 步:安装(macOS / Linux)
curl -fsSL https://app.primeintellect.ai/prime-agent/install.sh | sh
安装器会下载带版本号的发布产物、校验 SHA-256、装好 prime-agent 命令,并自动准备 agent 用的 Python 运行时。想尝鲜最新 beta 版加个参数:sh -s — beta。
Windows 用户可用 WSL;源码运行需要 Node.js 22.8.0+:
git clone https://github.com/PrimeIntellect-ai/prime-agent
cd prime-agent && npm ci && ./prime-agent.sh
第 2 步:登录认证
Prime Agent 支持两种方式,任选其一:
方式一:订阅账号登录(最省事,白嫖现有订阅)
/login
内置支持 Claude Pro/Max、ChatGPT Plus/Pro(Codex)、GitHub Copilot 等订阅。
方式二:API Key
export ANTHROPIC_API_KEY=sk-ant-...
prime-agent
也支持 OpenAI、Azure OpenAI、Amazon Bedrock、Google Vertex、Cloudflare 等云厂商,以及自定义 provider。
第 3 步:进入项目目录,启动
cd /path/to/your/project
prime-agent
直接输入需求回车即可,比如:
总结一下这个仓库,并告诉我怎么跑它的检查。
模型会启动常驻 Python 内核,自己读文件、跑命令、给结论。切模型用 /model,调推理强度用 /effort。
五、日常使用高频技巧
引用文件
编辑器里输入 @ 可模糊搜索文件;也可以启动时直接带:
prime-agent @README.md "总结一下"
直接跑 shell
!npm run lint # 输出会发给模型
!!npm run lint # 输出不进模型上下文(省 token)
会话管理:关了终端也不怕
会话自动保存在 ~/.prime/agent/sessions/,且由后台守护进程托管——关掉 TUI 只是"挂起",任务还在跑:
prime-agent -c # 继续最近会话
prime-agent agents # 查看所有运行中/空闲/保存的会话
prime-agent attach <name> # 重新接回某个运行中的会话
prime-agent status # 查看后台服务状态
prime-agent doctor –fix # 检查并修复后台服务
非交互式:一条命令出结果
prime-agent -p "总结这个代码库"
cat error.log | prime-agent -p "分析这个报错"
配合 –mode json 或 –mode rpc 可以做无头自动化集成。
项目说明书:AGENTS.md
在项目根目录放一个 AGENTS.md,写清楚项目规矩:
– 改完代码要跑 `npm run check`
– 不要在本地跑生产迁移
– 回答保持简洁
Prime Agent 启动时自动加载(也支持 ~/.prime/agent/AGENTS.md 全局配置和 CLAUDE.md),改完执行 /reload 生效。
六、进阶:长任务与多智能体
这是 Prime Agent 相比同类工具最能打的部分,专门为"跑几个小时的研究型任务"设计。
持久目标:/goal
设定一个目标后,它会跨轮次、跨会话一直保持激活,直到完成、暂停或清除。AI 干着干着被打断也不丢主线。
心跳与定时:/heartbeat 和 schedule
让会话每隔一段时间自动"醒来"检查一次进度,或在指定时间触发:
prime-agent schedule # 管理定时任务
有界自主模式:/autonomous
在配置的轮次、token、时间预算内自主连续工作,还能挂自定义质量门禁。注意文档的诚实提醒:门禁通过只说明门禁检查的内容合格,到达预算上限不等于任务成功。
子代理并行干活
直接用自然语言指挥即可:
把"审查认证安全性"和"检查测试覆盖率"作为独立子任务并行执行,最后汇总发现。
模型会在 REPL 里自己 await rlm(…) 派活,子代理与父代理共用同一套运行时、provider、技能体系,还能互相直接发消息协作。
用一张图看懂整体架构:
#mermaid-svg-tL1tal5pbSJc85Bz{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-tL1tal5pbSJc85Bz .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-tL1tal5pbSJc85Bz .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-tL1tal5pbSJc85Bz .error-icon{fill:#552222;}#mermaid-svg-tL1tal5pbSJc85Bz .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tL1tal5pbSJc85Bz .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-tL1tal5pbSJc85Bz .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tL1tal5pbSJc85Bz .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tL1tal5pbSJc85Bz .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-tL1tal5pbSJc85Bz .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tL1tal5pbSJc85Bz .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tL1tal5pbSJc85Bz .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tL1tal5pbSJc85Bz .marker.cross{stroke:#333333;}#mermaid-svg-tL1tal5pbSJc85Bz svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tL1tal5pbSJc85Bz p{margin:0;}#mermaid-svg-tL1tal5pbSJc85Bz .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-tL1tal5pbSJc85Bz .cluster-label text{fill:#333;}#mermaid-svg-tL1tal5pbSJc85Bz .cluster-label span{color:#333;}#mermaid-svg-tL1tal5pbSJc85Bz .cluster-label span p{background-color:transparent;}#mermaid-svg-tL1tal5pbSJc85Bz .label text,#mermaid-svg-tL1tal5pbSJc85Bz span{fill:#333;color:#333;}#mermaid-svg-tL1tal5pbSJc85Bz .node rect,#mermaid-svg-tL1tal5pbSJc85Bz .node circle,#mermaid-svg-tL1tal5pbSJc85Bz .node ellipse,#mermaid-svg-tL1tal5pbSJc85Bz .node polygon,#mermaid-svg-tL1tal5pbSJc85Bz .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tL1tal5pbSJc85Bz .rough-node .label text,#mermaid-svg-tL1tal5pbSJc85Bz .node .label text,#mermaid-svg-tL1tal5pbSJc85Bz .image-shape .label,#mermaid-svg-tL1tal5pbSJc85Bz .icon-shape .label{text-anchor:middle;}#mermaid-svg-tL1tal5pbSJc85Bz .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-tL1tal5pbSJc85Bz .rough-node .label,#mermaid-svg-tL1tal5pbSJc85Bz .node .label,#mermaid-svg-tL1tal5pbSJc85Bz .image-shape .label,#mermaid-svg-tL1tal5pbSJc85Bz .icon-shape .label{text-align:center;}#mermaid-svg-tL1tal5pbSJc85Bz .node.clickable{cursor:pointer;}#mermaid-svg-tL1tal5pbSJc85Bz .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-tL1tal5pbSJc85Bz .arrowheadPath{fill:#333333;}#mermaid-svg-tL1tal5pbSJc85Bz .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tL1tal5pbSJc85Bz .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tL1tal5pbSJc85Bz .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tL1tal5pbSJc85Bz .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-tL1tal5pbSJc85Bz .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tL1tal5pbSJc85Bz .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-tL1tal5pbSJc85Bz .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tL1tal5pbSJc85Bz .cluster text{fill:#333;}#mermaid-svg-tL1tal5pbSJc85Bz .cluster span{color:#333;}#mermaid-svg-tL1tal5pbSJc85Bz div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-tL1tal5pbSJc85Bz .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-tL1tal5pbSJc85Bz rect.text{fill:none;stroke-width:0;}#mermaid-svg-tL1tal5pbSJc85Bz .icon-shape,#mermaid-svg-tL1tal5pbSJc85Bz .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tL1tal5pbSJc85Bz .icon-shape p,#mermaid-svg-tL1tal5pbSJc85Bz .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-tL1tal5pbSJc85Bz .icon-shape .label rect,#mermaid-svg-tL1tal5pbSJc85Bz .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tL1tal5pbSJc85Bz .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-tL1tal5pbSJc85Bz .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-tL1tal5pbSJc85Bz :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
refine
refine
用户 TUI / JSON / RPC
Daemon 守护进程
Worker 会话 A
Worker 会话 B
Python REPL 内核
子代理 rlm
Python REPL 内核
文件 / Shell / 技能包
Continual Harness记忆/技能/提示词, 可回滚
七、技能系统:把常用流程打包复用
Prime Agent 的技能不是提示词模板,而是可直接 import 的 Python 包:
- 内置技能如 websearch 开箱即用;
- 用 /skill:brave-search 这样的命令加载执行技能;
- 内置的 skill-creator 能把你反复出现的工作流(比如"数据库迁移前审查")一键变成项目级或个人级技能;
- /refine 沉淀下来的经验,也能升级为正式的技能包。
配合官方的技能仓库机制,团队内部沉淀的最佳实践可以直接分发。
八、FAQ(新手最常问的)
Q1:它和 Claude Code / Codex / DeepSeek Harness 有什么区别? 最大的差异是"自我改进":其他工具的 harness 是官方写死的,Prime Agent 允许 AI 通过 /refine 把经验写回 harness 并持久化;其次是 RLM 编程模型——上下文当变量管理 + 递归子代理,特别适合长任务。
Q2:Windows 能用吗? 可以。Prime Agent 需要 bash 环境,大多数用户装个 Git for Windows(自带 Git Bash)就够用,也支持 Cygwin、MSYS2、WSL。
Q3:要不要付费? 框架本身 MIT 开源免费。模型侧要么用你的订阅(Claude Pro、ChatGPT Plus、Copilot),要么用 API Key。
Q4:子代理会不会失控? 子代理与父代理同体系管理,结果通过显式消息回传;自主模式有轮次/token/时间三重预算限制。
九、安全提醒(重要!)
README 里官方自己用大字警告了,这里原样转达:
- Prime Agent 会以你的用户权限执行模型生成的 Python 和项目命令,worker/内核的隔离是为了生命周期管理,不是安全沙箱;
- 请在可检查、可回滚的环境中使用(比如干净的 git worktree);
- 只运行可信来源的仓库、指令、技能和扩展;
- 不受信的代码请放到外部沙箱或受限环境里跑。
写在最后
Prime Agent 代表了 coding agent 的一个新方向:不只比拼模型多聪明,而是让运行环境本身具备进化的能力。经验可沉淀、子代理可递归、会话可断点续跑、技能可编程复用——对做研究和长任务的开发者来说,这套组合拳相当有吸引力。
如果你已经厌倦了每次都从零开始教 AI 干活,不妨花 5 分钟装一个试试:
curl -fsSL https://app.primeintellect.ai/prime-agent/install.sh | sh
GitHub 地址:https://github.com/PrimeIntellect-ai/prime-agent,觉得不错记得给个 Star。
参考文献
- Prime Agent 官方仓库与文档(Quickstart / Usage / Skills / Providers)
- 论文:arXiv:2608.23552《Prime Agent: A Self-Improving RLM Harness》
- Continual Harness 论文:arXiv:2605.09998
- RLM 博客:primeintellect.ai/blog/rlm


