From b0a8aaafc4de607907a4cebfa2fdf5c3f8ba54bd Mon Sep 17 00:00:00 2001 From: Richard Abrich Date: Tue, 1 Sep 2026 22:52:17 -0400 Subject: [PATCH] docs(seal-reward): state the OpenAI RFT path as the grader docs allow The section was headed "OpenAI Agent RFT grader". OpenAI's current docs document no grader that calls a URL, the python grader has no network access, and the guides describe no tool endpoint that carries a result into the graded sample. Name the six documented grader types, the grade(sample, item) contract, the no-network rule, and the wind-down notice, and present /v1/graders/openai as the local mirror of that shape. Co-Authored-By: Claude Fable 5.1 --- docs/commercial/seal-reward.md | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/docs/commercial/seal-reward.md b/docs/commercial/seal-reward.md index 49fe955..3f2f128 100644 --- a/docs/commercial/seal-reward.md +++ b/docs/commercial/seal-reward.md @@ -105,12 +105,23 @@ combinations a trainer must never accept: an unscored episode is removed from its GRPO group, a `development_only` receipt is never certified, and in `require_certified` mode an expired certificate stops the run. -### OpenAI Agent RFT grader - -OpenAI documents one custom-grader contract, the `python` grader's -`grade(sample, item) -> float`, and that grader runs with no network access. -A hosted RFT job can't reach this worker. The route exists for a self-hosted -loop that already speaks that shape. +### OpenAI grader shape + +OpenAI's [graders guide](https://developers.openai.com/api/docs/guides/graders) +and [reinforcement fine-tuning guide](https://developers.openai.com/api/docs/guides/reinforcement-fine-tuning) +(read 2026-09-01) document six grader types: `string_check`, +`text_similarity`, `score_model`, `label_model`, `python`, and `multi`. None +takes a URL. The one custom contract is the `python` grader's +`grade(sample, item) -> float`, and the guide says its uploaded code "will not +have network access". So a hosted OpenAI RFT job can't call this worker. The +guides also describe no tool endpoint that could carry a receipt into the +sample: `sample` holds the model output (`output_text`, `output_json`, +`output_tools`, `choices`) and `item` holds the training row, nothing else. +OpenAI adds that it "is winding down the fine-tuning platform" and that new +users can't access it. + +The route below is the local mirror of that contract, for a loop you host +yourself that already speaks `grade(sample, item)`. ```bash curl -s -H "Authorization: Bearer $TOKEN" -H 'content-type: application/json' \