今天在 GitHub Trending 上看到一个有意思的项目:Prime Agent,一个基于递归语言模型(RLM)架构、完全开源的编程与研究智能体。不同于传统 Agent 在单次对话结束后丢失所有上下文,它的设计目标是让智能体能够在多轮交互中持续积累经验、自我改进,并支撑长时间运行的研究评估任务。
一、项目概述
Prime Agent 由 PrimeIntellect-ai 团队开发,核心围绕两大抽象:
递归语言模型(RLM)——将上下文视为变量(prompt-as-a-variable),将子 Agent 调用视为函数调用(programmatic tool / sub-agent calling),在一个持久化的 REPL 环境中运行。相比把 LLM 当作黑盒 prompt-reply 工具,RLM 将整个对话历史和工具调用链纳入程序化控制,使 Agent 能够真正"编程式"地组织自己的思维和行动。
Continual Harness(持续 Harness)——将补充提示词、记忆、技能描述和可复用子 Agent 规范以持久化状态存储。通过 /refine 命令,Agent 可以在每次运行后对 Harness 进行小步、基于证据的更新,逐步沉淀经验。它从不重写不可变的 Base System Prompt,所有更新记录均支持回滚。
二、技术原理
架构设计
Prime Agent 的架构分为几个关键层次:
持久化 IPython 控制环境:内置模型工具是持久化的 IPython,而非每次调用新建进程。这意味着子 Agent 的中间状态、变量、导入的模块都可以在同一进程中跨调用保留。
RLM 调用示例:
# 在 Prime Agent 中,子 Agent 以函数形式调用
result = rlm(
"分析当前代码库的测试覆盖率",
model="claude-sonnet",
max_turns=20
)
# 返回子 Agent 的结果,可在主 Agent 中继续处理
多包 Monorepo 结构(Node.js >=22.8.0,TypeScript):
| 包 | 职责 |
|---|---|
packages/ai | LLM 接口抽象与 Provider 管理(Anthropic/OpenAI 等) |
packages/agent | 核心 Agent 运行时与 IPC |
packages/coding-agent | 编程专用 Agent,包含 RLM、Harness、Skill 系统 |
packages/tui | 终端用户界面 |
packages/agent-old | 历史版本参考实现 |
进程隔离与恢复:Agent 运行在独立 Worker + Kernel 进程中,通过持久化机制在终端断开后仍可重新 attach。
/refine 自进化机制
/refine 是 Prime Agent 的核心自我改进机制。它的运作逻辑是:
# Harness 中存储的结构示例
{
"supplemental_prompts": [...], # 补充提示词片段
"memories": [...], # 长期记忆
"skill_descriptions": [...], # 可复用技能规范
"subagent_specs": [...] # 子 Agent 模板
}
每次执行 /refine 时,Agent 会:
- 回顾当前轨迹(trajectory)
- 识别有效的小步改进(small, evidence-backed updates)
- 将改进写入 Harness 的对应区块
- 记录快照,支持按需回滚
这样做的好处是经验积累不会污染 Base System Prompt,同时每次改进都可审计、可回滚。
三、安装与快速开始
环境要求
- 操作系统:macOS 或 Linux
- Node.js:>= 22.8.0(核心运行时)
- 网络:需要能够访问
app.primeintellect.ai(用于下载安装包)
一键安装
curl -fsSL https://app.primeintellect.ai/prime-agent/install.sh | sh
安装脚本会自动:
- 下载对应平台的版本化 Release 包
- 验证 SHA-256 校验和
- 安装
prime-agent命令 - 可选准备 IPython 运行时
启动与首次配置
# 进入你想让 Agent 工作的工作目录
cd /path/to/your/project
# 启动 Prime Agent
prime-agent
# 首次使用需要登录
/ login
登录时可以选择订阅计划或直接提供 API Key(支持多种 Provider)。
四、使用方法与实战
常用命令
prime-agent agents # 浏览运行中、空闲和已保存的会话
prime-agent attach <agent> # 重新连接到一个运行中的会话
prime-agent --resume <path|id> # 恢复一个已保存的会话
prime-agent status # 查看后台服务状态
prime-agent doctor [--fix] # 诊断或修复后台服务
prime-agent update [--force] # 更新 Prime Agent
prime-agent shutdown [--force] # 停止所有 Agent、Worker 和后台服务
子 Agent 并行任务
# 启动多个子 Agent 并行处理不同子任务
task_a = rlm("实现用户认证模块", model="claude-sonnet")
task_b = rlm("编写配套的单元测试", model="claude-sonnet")
task_c = rlm("生成 API 文档", model="claude-sonnet")
# 主 Agent 等待全部结果
results = [task_a.result(), task_b.result(), task_c.result()]
长时间任务保障
Prime Agent 为长时间运行任务内置了多层保障机制:
- 自动压缩(Automatic Compaction):对话过长时自动压缩上下文,保留关键信息
- 持久化目标(Persistent Goals):
/goal保持目标在多轮之间活跃,直到完成或被清除 - 心跳与定时任务:
/heartbeat和prime-agent schedule支持周期性重入或定时触发 - 有界自主模式:
/autonomous在配置的轮数、代币和时间预算内持续运行,支持自定义质量门控
进阶:构建自定义技能
Prime Agent 的技能本质上是可导入的 Python 包:
# 技能包结构示例
# my_skill/
# __init__.py
# skill.yaml # 技能元数据
# impl.py # 具体实现
# 安装技能
prime-agent skill install my_skill
# 在 Agent 中使用
from my_skill import custom_analysis
result = custom_analysis(context)
内置的 Skill Creator 可以将重复工作流封装为项目级或个人级技能。
五、常见问题与解决方案
Q: 提示"node version not supported",但我明明装的 Node >=22.8.0?
Prime Agent 使用 node --version 检查版本。如果使用 nvm 或 fnm 管理多版本 Node,确保当前 shell 激活了正确版本(nvm use 或 fnm use)。
Q: Agent 执行了我不想执行的命令? Prime Agent 执行模型生成的 Python 代码和项目命令时使用的是你的用户权限。Worker 和 Kernel 进程改善了生命周期隔离和恢复能力,但不是安全沙箱。建议:
- 使用干净的 clone 或工作目录
- Review 所有变更
- 避免对系统关键目录运行不信任的指令
Q: 终端断开后如何恢复会话?
# 查看所有会话
prime-agent agents
# 重新连接
prime-agent attach <session-name>
Q: /refine 改坏了 Harness 能回滚吗?
可以。Prime Agent 会记录每次 refine 的快照,通过历史 ID 可以回滚到任意版本:
# 查看快照历史
/ harness history
# 回滚到指定快照
/ harness rollback <snapshot-id>
Q: 想要在特定时间让 Agent 自动开始工作?
prime-agent schedule "明天早上9点继续优化文档" --at "2026-08-08T09:00:00"
六、总结
Prime Agent 的最大亮点在于将"自我进化"做成了可审计、可回滚的工程实践——通过 Continual Harness 和 /refine 机制,Agent 能够在每次运行中积累真正的经验,而不是每次都从零开始。加上 RLM 的程序化调用范式、多 Agent 协作、后台持久化会话等特性,它非常适合需要 Agent 跨多天、跨多次对话持续推进的复杂研究任务。
如果你对 RLM 架构、长周期 Agent 运行、或 AI 研究自动化感兴趣,Prime Agent 是一个值得深入研究的开源标杆。
项目地址:PrimeIntellect-ai/prime-agent
安装文档:Quickstart
RLM 理论背景:Recursive Language Model