跳到主要内容

Coding Agent Runs

Run 为一个 Coding Agent 提供工作区、Episode 预算和固定训练池。

启动 Run​

from cartpole import CartPoleBenchmark
from evopolicygym import Program
from evopolicygym.agents import Codex
from evopolicygym.execution import ProcessExecution
from evopolicygym.run import RunConfig, run

result = run(
Program.from_directory("my-policy/"),
CartPoleBenchmark(),
agent=Codex(model="gpt-5.6-luna", reasoning_effort="high"),
execution=ProcessExecution.unsafe(),
record_to="runs/cartpole-001",
config=RunConfig(
max_submissions=3,
episode_budget=30,
episode_pool_size=60,
max_episodes_per_submission=10,
seed=42,
),
)

无需修改 Benchmark 或 Run 配置,也可以选择另外两个第一方命令行集成:

from evopolicygym.agents import ClaudeCode, KimiCode

claude = ClaudeCode(model="sonnet", effort="high")
kimi = KimiCode(model="kimi-code/kimi-for-coding")

三个 provider 都以非交互方式运行,并将结构化 stdout 保留为 Agent 证据。 Claude Code 使用 bare 模式且不持久化 session。Kimi Code 当前会持久化 CLI 状态; 如果 Run 之间不能共享其配置或历史,请将 KIMI_CODE_HOME 指向调用者管理的独立目录。

Host 在 Agent 启动前创建 Episode 池。Agent 可以修改 workspace/program/、提交 候选、读取已发布 Feedback,并以已发布候选结束 Run。

Run 限制​

参数默认值含义
split"train"Agent 可用的 Benchmark 数据划分。
max_submissions20最多接受的 Submission 数量。
episode_budget1_000所有 Submission 累计消耗的 Episode 编号数。
episode_pool_sizeEpisode 预算固定的 Run-local Episode 标识数量。
max_episodes_per_submissionNone单次 Submission 的可选上限。
seed0用于创建训练池的种子。
episode_timeout_seconds30.0每个 Episode 的超时。
agent_timeout_seconds3_600.0Agent 进程的超时。

池大小和预算是两个限制。复用同一个 Episode 编号可以配对比较 Program,但会再次 消耗预算,并且仍创建全新的 Environment 和 Policy 状态。

提交和结束​

Agent 在有效 Session 中使用:

evopolicygym-session submit program --episodes "0:2,4:8"
evopolicygym-session finish submission-000002

该选择器展开为 0, 1, 4, 5, 6, 7。编号必须非空、严格递增、位于池范围内,且不 超过剩余预算。

完成的 Submission 会原子发布 Program、所选编号、Feedback、Episode 结果和 artifacts。Program 捕获失败不消耗预算;Evaluation 开始后,预留预算不再返还。

Validation 与 Assessment​

未配置 ValidationConfig 时,Agent 以一个已发布候选结束。配置 Validation 后, Agent 可以交接一个有序候选列表。Agent 清理完成后,Host 在相同的私有 Validation Episodes 上评估所有候选并选择一个 Program。

AssessmentConfig 只在 held-out split 上评估被选中的 Program,不改变选择结果。 Validation 与 Assessment 证据不会发布到 Agent 工作区。

Agent Skills​

Agent Skills 是显式的 Run 输入:

from evopolicygym.skills import AgentSkill

skill = AgentSkill.from_directory("skills/evopolicygym")
result = run(..., skills=(skill,))

Skills 以只读形式复制到 workspace/skills/,不会传入 Policy 进程。

结果和记录​

RunResult 包含终止原因、已发布 Submissions、交接的候选 ID、最终 Program,以及 可选的 Validation 和 Assessment 结果。

record_to 指定的目录保存工作区、不可变 Programs、Feedback、artifacts、事件、 Agent 日志和 run.json。v0.3 的 Run 不能恢复执行。

本地进程执行

ProcessExecution.unsafe() 不是沙箱。Agent 和 Policy 代码都以当前操作系统用户 权限运行。

下一步​