# GPT-6 Luna: medium, low, and none

Date: 2026-10-20. Status: completed. Scope: fixed-context answers and native memory-extraction prompt replay.

Lower effort reduces cost, but the gain differs by workload. In this run, `low` reduces reader cost by **7.8%** and `none` by **12.2%** relative to a fresh `medium` control. All three answer eleven of thirteen questions completely. One `low` answer has an invalid citation handle. `none` has no new quote-binding failure, but its mean reader latency is higher than `medium`.

The stronger reduction occurs in the four extraction requests: `none` costs **36.7% less** and takes **54.4% less mean time** than `medium`. The two conditional-decision samples retain their audit prerequisite, subject, owner, staging boundary, and lack of production authority at every effort. Other extraction omissions and effective-time errors remain. These results support testing `none` for routine extraction while retaining `medium` for final source-bound answers and critical decision work. They do not justify a blanket reduction for formal Agents. No default configuration was changed.

## Parameters and controls

[Official OpenAI documentation](https://developers.openai.com/api/docs/models/gpt-6-luna) lists `none`, `low`, `medium` (default), `high`, `xhigh`, and `max`. Lower effort changes the reasoning work and token use; it does not change the listed token prices.

- Model `openai/gpt-6-luna`, provider `openai`, no provider fallback.
- Same thirteen frozen reader questions, original prompts, exact evidence text, and four extraction inputs used in the preceding comparison. The Chinese extraction sample now has a control at every effort.
- Three fresh profiles: `medium`, `low`, and `none`. Effort is the only explicit model parameter changed. Temperature is omitted for every profile.
- Full **128,000 output-token allowance** retained for every request. All 53 responses end with `finish_reason: stop`.
- Two separate calibration calls validate low and none before scored calls. No scored draft is repeated, corrected, or replaced.
- Three blocks rotate profile order. All actual cache-read and cache-write tokens are retained. This is a single pass, not a statistically reliable latency ranking.
- No embedding or retrieval calls. The exact contexts originate from the prior native RAGFlow run with Qwen3-Embedding-8B full 4096-dimensional indexes. Retrieval defects are unchanged.
- Every call passes through `cargo make benchmark-budget`, the existing exclusive cumulative ledger, and a $0.25 per-invocation tranche with full output reservations. The cumulative ceiling remains $10.

See [frozen protocol and order](protocol.json), [cases](cases.json), [provider metadata](model-endpoints.json), and [model metadata](models.json).

## Thirteen fixed-context reader questions

| Measure | medium | low | none |
| --- | ---: | ---: | ---: |
| Complete semantic answers | 11/13 | 11/13 | 11/13 |
| Complete answers with all quotes bound | 11/13 | 10/13 | 11/13 |
| Individual bound quotes | 30/30 | 31/32 | 26/26 |
| Mean request time | 4.57 s | 3.63 s | 4.95 s |
| Median request time | 3.91 s | 3.55 s | 5.08 s |
| Settled cost for thirteen answers | $0.004726775 | $0.004360275 | $0.004149275 |
| Reasoning tokens | 1,137 | 203 | 0 |
| All completion tokens | 3,865 | 3,132 | 2,710 |

All profiles receive the same 22,362 prompt tokens. Each records zero cache-read tokens and **22,323 cache-write tokens**, so cache use does not explain the differences. Estimated plain input/output cost without cache writes is $0.0041687, $0.0038022, and $0.0035912 respectively. Actual settled cost, rather than that estimate, is the main comparison.

Medium's 1,137 reasoning tokens cost about $0.0005685 at the standard output rate, approximately 12% of its total reader bill. Input and final-answer tokens account for the rest. Removing reasoning therefore cannot produce a large cost reduction in this particular workload.

All profiles still miss `STREAM-0-286` in `post-memory-0-0` and `post-combined-001`. It is absent from the frozen retrieved contexts. Each reports that the current delivery value is not established. These two incomplete answers are not evidence of a new model or effort regression.

The additional `low` citation failure is in `post-memory-1-1`. Its answer content is correct, but it cites memory handle `:22`, which is absent from that context. The quoted sentence occurs under `:16`, a Larch memory, while the question concerns Cobalt. Replacing the handle alone would not establish correct subject binding. The complete source text and failed output remain available in [citation failures](citation-failures.json). See [manual reader review](reader-review.json).

## Four memory-extraction requests

| Measure | medium | low | none |
| --- | ---: | ---: | ---: |
| Mean request time | 7.72 s | 6.11 s | 3.52 s |
| Settled cost | $0.0011196 | $0.0009986 | $0.0007091 |
| Reasoning tokens | 1,049 | 664 | 0 |
| Directly parseable JSON | 4/4 | 4/4 | 4/4 |
| Returned memory atoms | 9 | 11 | 13 |
| Conditional scope and owner samples preserved | 2/2 | 2/2 | 2/2 |

The English and Chinese ORBIT inputs retain POLL-71 before audit AUDIT-62 passes, conditional STREAM-93 approval for staging, Mira as owner, and no production authorization at every effort.

This is not complete extraction acceptance. Medium and low omit the explicit instruction to retain the earlier Larch recovery procedure in one request. None retains it as a separate atom, but omits Larch from that atom and uses capture time. In the later Larch update, several independent atoms omit the project and retain October capture dates for August facts. Low additionally dates the keep-delivery instruction to October 20 instead of the August 22 event. More atoms do not establish better memory quality. See [writer review](writer-review.json).

No native storage, reconciliation, retrieval, or final Agent tool-use loop was rerun. These settings need the existing source-provenance and citation controls. This small run does not establish a stable quality order among reasoning efforts.

## How to set the effort

The current OpenRouter request accepts:

```json
{
  "model": "openai/gpt-6-luna",
  "reasoning": {"effort": "low"}
}
```

Use `none` in the same field to disable explicit reasoning. The repository budget command controls this with `--reasoning-effort low` or `--reasoning-effort none`. This experiment changes only its own temporary commands.

## Cumulative cost and final state

- **53 new requests**, all completed: 51 formal calls plus two calibrations.
- **76,222 prompt + 14,110 completion tokens**.
- New settled spend: **$0.016351425**.
- Cumulative settled spend: **$2.065450100**.
- Conservative cumulative exposure, including earlier reservations: **$2.137630800 / $10**.
- All eleven gateway invocations exit successfully. The ledger lock is absent and no new request is unresolved.
- No tracked repository source, default configuration, Docker service, or local model server changed. The cancelled Hy-Memory trial remains removed.

See [metrics](metrics.json), [request ledger](request-ledger.json), [schedule log](schedule.log), and [verification](verification.json).
