Prime Agent 新手教程

RLM 编程模型

理解这一章,你就理解了 Prime Agent 的全部:执行皆程序、子代理皆函数、状态跨轮存活。

1不变量一:执行皆程序

默认 RLM 运行时只暴露一个内置模型工具:ipython。其余一切能力都从它出发。

读文件、改文件、跑项目命令、转换结果、调技能、派子代理——全都从持久 Python 内核里写代码完成,而不是各自一个独立工具调用。Python 状态(变量、导入、函数、解析结果、任务句柄)跨工具调用、跨压缩(compaction)存活:

from pathlib import Path

config_files = list(Path(".").rglob("*.toml"))
large_files = [path for path in config_files if path.stat().st_size > 10_000]

跑项目自身的命令用 bash()——它走项目自己的环境:

result = await bash("npm run check")
print(result.output)

长命令不要阻塞等待,保留句柄、结束本轮即可:

checks = bash("npm test")
checks.pid   # 先去干别的,进程组结束后会收到「Background command finished」通知

每条 bash() 是独立进程,但 Python 状态、os.chdir(...)、os.environ[...] 的改动会留在内核里、作用于后续 bash()。用 poll() / output() / tail() 查看句柄结果。

2不变量二:子代理皆函数

rlm 对象预装在内核里。rlm.spawn 派生真正的子代理——返回的是「准入句柄」,永远不是答案。

handle = await rlm.spawn(
    "Review the authentication flow for security issues",
    name="auth-reviewer",
)
print(handle.rlm_child_id, handle.name, handle.session_dir, handle.model)

要并行就分开调用、然后结束本轮,不要原地等待:

api_review = await rlm.spawn("Review the public API", name="api-reviewer")
test_review = await rlm.spawn("Review the test coverage", name="test-reviewer")
integration_audit = await rlm.spawn("Run the slow integration audit", name="integration-audit")

结果只通过两条路回来:子代理显式回复的 agent_message,或写到文件里。子代理在自己的会话里这样回话:

await agent_message.send(message, receiver_role="parent")

父代理也可以对保留的子代理追问:

await agent_message.send(
    "Check the newly added regression test.",
    receiver_role="child",
    receiver_name=api_review.name,
)

子代理注册表跨压缩、跨内核重启、跨父会话恢复存活:

children = await rlm.list_subagents()
for child in children:
    print(child.session_name, child.status, child.active_session_id)

# 上下文不再需要时才删除
await rlm.delete_subagent(children[0])
默认递归深度只允许「根代理派子代理」;调高配置后,子代理的子代理也能继续递归。子代理继承父级的模型、提供商配置、技能与工具,除非 spawn 时指定别的已配置模型。

3不变量三:状态为「跨轮」而设计

RLM 编程模型默认假设:有用的活可能要跑很多轮,甚至跑过终端关闭。

  • 自动压缩:老上下文被摘要,最近消息与内核状态保留;
  • daemon 支撑的 worker:客户端脱离,活动会话照常运行;
  • 子代理注册表与会话工件:子代理可恢复、可寻址;
  • 心跳与定时:会话稍后被重新唤起;
  • 持久目标 / 自主模式:目标跨轮活跃,延续受预算约束。

Python 技能需要「内核之外」的权威状态时(目标、消息、心跳、压缩),通过 rlm.host_request(...) 发起类型化宿主请求,由 TypeScript 宿主校验并执行状态迁移——凭据、提供商调用、transcript 写入、调度都不进 Python。

信任模型

Python 内核以 worker 的操作系统权限运行模型生成的代码,它是「持久控制环境」而非安全沙箱。审查第三方技能;不可信仓库与指令请放进外部沙箱或受限环境。

Prime Agent 新手教程