Skip to content

Commit e760ea2

Browse files
fluffy314cursoragent
authored andcommitted
feat(autoresearch): supervise real GAN experiments
Connect strategy proposal, candidate deployment, cache-isolated GAN execution, fixed evaluation, lexicographic baseline comparison, keep/revert, and append-only experiment history into a hard-fail AutoResearch loop. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent af849de commit e760ea2

9 files changed

Lines changed: 661 additions & 5 deletions

File tree

autoresearch/prefill/candidate.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
1-
"""The only Prefill strategy file the autoresearch agent may edit."""
1+
"""The only strategy file the AutoResearch agent may edit."""
22

3+
CANDIDATE_ID = "baseline-v1"
4+
TARGET_OBLIGATION_ID = "RH-C1"
5+
HYPOTHESIS = (
6+
"Force each experiment to attack one unresolved proof obligation with a "
7+
"concrete construction or counterexample."
8+
)
9+
GENERATOR_DIRECTIVE = (
10+
"Focus on RH-C1. Propose one explicit non-circular operator definition, "
11+
"including domain, kernel/action, and the exact theorem still required."
12+
)
13+
CRITIC_DIRECTIVE = (
14+
"Attempt to falsify the proposed RH-C1 operator. Reject placeholders and "
15+
"identify the first invalid domain, self-adjointness, or spectrum step."
16+
)
317
PREFILL_COMPUTE_CHUNK_TOKENS = 256
418
SNAPSHOT_MODE = "final_only"
519
MAX_SEGMENT_SECONDS = 300.0

autoresearch/prefill/prepare.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,28 @@ def evaluate(report: dict, candidate) -> dict:
5454
estimated_max_segment_s <= candidate.MAX_SEGMENT_SECONDS
5555
),
5656
"final_only_snapshot": candidate.SNAPSHOT_MODE == "final_only",
57+
"candidate_requires_full_context": (
58+
candidate.REQUIRE_FULL_CONTEXT is True
59+
),
60+
"candidate_forbids_fallback": candidate.ALLOW_FALLBACK is False,
5761
}
5862
return {
5963
"accepted": all(constraints.values()),
6064
"metric_cold_critic_prefill_s": warmup_s,
6165
"measured_prefill_tps": measured_tps,
6266
"estimated_max_segment_s": estimated_max_segment_s,
6367
"compute_chunk_tokens": candidate.PREFILL_COMPUTE_CHUNK_TOKENS,
68+
"candidate_id": candidate.CANDIDATE_ID,
69+
"target_obligation_id": candidate.TARGET_OBLIGATION_ID,
70+
"proof_obligations_total": int(
71+
critic.get("proof_obligations_total", 0),
72+
),
73+
"proof_obligations_covered": int(
74+
critic.get("proof_obligations_covered", 0),
75+
),
76+
"proof_obligations_unresolved": int(
77+
critic.get("proof_obligations_unresolved", 0),
78+
),
6479
"constraints": constraints,
6580
}
6681

autoresearch/prefill/program.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Prefill AutoResearch Program
22

3-
You are optimizing the two-Mac full-context Prefill system.
3+
You are optimizing the two-Mac full-context RH proof research system.
44

55
## Ownership
66

@@ -10,7 +10,10 @@ You are optimizing the two-Mac full-context Prefill system.
1010

1111
## Objective
1212

13-
Minimize `metric_cold_critic_prefill_s`. Lower is better.
13+
Use a lexicographic objective:
14+
15+
1. Minimize unresolved Proof Obligation Ledger items.
16+
2. With equal unresolved count, minimize `metric_cold_critic_prefill_s`.
1417

1518
## Hard constraints
1619

@@ -36,6 +39,9 @@ Minimize `metric_cold_critic_prefill_s`. Lower is better.
3639
Prefill time improves. Otherwise restore the previous candidate.
3740
9. Append the result and repeat.
3841

42+
Every candidate must target one current unresolved proof obligation and contain
43+
a falsifiable hypothesis plus distinct Generator and Critic directives.
44+
3945
Do not optimize output wording, scores, prizes, or other proof-irrelevant
4046
content. Optimize only measured Prefill execution while preserving the complete
4147
semantic contract.

0 commit comments

Comments
 (0)