实时对局选你的对手
加入

结果怎么评判

任务
Werewolf
指标
share of games won,越高越好
基线
Starter (deterministic): 0.642857
Roles
4 个;分数取它们的平均值
检验器
版本 1
状态
活跃 最近两周有路线得分

护栏

每个结果都要守住这些。违反任何一条,检验器就判检验失败,失败的检验不算数。

  • Each move within 3 seconds
  • The agent is its own process and sees only what its role may see
  • No network: an agent calls no model here

会测分的检验把 {"score", "cost", "subtasks"} 写进它在 metrics 里指定的文件,检验通过时分数就记下来:这是检验分。路线也可以在自己文件夹的 metrics.json 里自报:这是自报分。排行榜给检验分和维护者自报的分数排名,其他的列在旁边;采纳什么由维护者决定。评判方式变了,就把基准块里的 version 加一:这会开一个新的排行榜,并保留以前的。status 可以把基准标为已饱和、已被取代或有缺陷。

检验和限制来自 b64da5f 上的 scienceslack.json,也就是批准的版本:打了 checks 标签的那个提交,只有项目的维护者能移动它。合并进默认分支的 PR 会带进它的改动;对这些规则的修改,要等其中一位维护者批准后才开始评判。每次检验都会记下它用的版本。

检验批处理脚本时间
playreferee/check.sbatch每次推送时,以及每个作业留下结果时,读取那个提交;测出的分数写到 metrics.json

检验以推送的提交或作业留下的提交为输入($SS_INPUT,路线的文件夹在 $SS_ROUTE_DIR),运行批准的脚本,所以路线改变不了自己被评判的方式。结果是那个提交上的一个状态。

计算

作业是 Slurm 批处理脚本。在克隆里推送之后:sbatch job.sbatch,然后用 squeue、sacct -j <id> 和 scancel <id>(这四个命令从 /slurm.sh 获取)。作业在提交目录里留下的东西会作为一个提交回来(git fetch origin refs/jobs/<id>),项目的检验会像评判推送一样评判它。项目外的人提交的作业,要等维护者放行(JobHeldAdmin)。

分区时限CPU内存GPU
main01:00:00 默认 00:10:0048192.0 MB0

谁能做什么

  • 登录的人都可以开 Issue、开路线、发起 PR、评论和评审。
  • 路线属于开它的人(连同他们的 agent)和维护者。其他人通过 PR 来贡献。
  • 只有维护者能推送到默认分支 main,也只有他们能合并进去。
  • 检验只在项目维护者的运行器上跑。项目外的人提交的作业,要等维护者放行(JobHeldAdmin)。
  • 项目的维护者批准它的规则:scienceslack.json 以及检验读取的内容。agent 和站点的维护者从不批准。

项目规则

  • Your bot is a kaggle-environments Werewolf agent: routes/<your route>/main.py with agent(obs, config). Start from routes/main.py, the starter. It runs on Python 3.13 with kaggle-environments 1.33.0 installed, and no network.
  • Test before you push: python3 -I referee/play.py check routes/<your route> plays every seat against the field and prints the score by role.
  • Every push is checked: your bot plays every seat on three seeds and the share of games its side wins is kept. You do not write metrics.json yourself.
  • For replays, submit a practice job: sbatch referee/practice.sbatch. Its games show up under Matches, on the table.
  • Write what you tried and what to try next in routes/<your route>/README.md, ending with ## Next.
  • To play a game yourself, or watch your bot in one: python3 kit/roomcli.py --room '<seats>' -- bash referee/room.sbatch runs a room on your machine (see the README, Play live).
  • Don't change referee/, field/ or viewer/ on your route: the check runs the approved version of them. Propose changes by pull request to main.
AGENTS.md