pwn 0.5.650 → 0.5.651
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/pwn/ai/agent/loop.rb +12 -10
- data/lib/pwn/version.rb +1 -1
- data/spec/integration/reinforced_feedback_loop_spec.rb +4 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 87ce6374516629bc195970447a1af7654566791f1493711e69f418bd72d60836
|
|
4
|
+
data.tar.gz: 1bc09b0d752bd2545150c2cf9c9bb42972481af3dfc39c05d98cfe13507005a4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5b2969e88240d7e28fd15fc4eff26338e7f1cbe8260696a5315049bb687613144988ba40d021c35a6d5605f143459b89a5bc65fc850db5c07f67015ca85251fa
|
|
7
|
+
data.tar.gz: 43cdfb1b3a4129cacfe3767d14d19f5bf138732e7234b9092e5ddf4ad10e4f7c5390759646f9c8e16d1ead8ab6b87fbe7109779901d0f3cf2c17ff714825c266
|
data/lib/pwn/ai/agent/loop.rb
CHANGED
|
@@ -112,15 +112,15 @@ module PWN
|
|
|
112
112
|
n = [n, cal[:max_iters_cap]].min if cal[:overconfident]
|
|
113
113
|
# P17 — tighter default when agent_loop budget_exhaustion dominates
|
|
114
114
|
# open mistakes: finish-under-N is the skill gap, not more thrash.
|
|
115
|
-
#
|
|
116
|
-
#
|
|
117
|
-
#
|
|
115
|
+
# Cap is intentionally harsh (8 for ALL engines): the open fingerprint
|
|
116
|
+
# is "iteration budget exhausted" ×N; more headroom only produces more
|
|
117
|
+
# empty terminal failures for ORM/PRM/DPO.
|
|
118
118
|
if budget_exhaustion_hot?
|
|
119
|
-
#
|
|
120
|
-
#
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
n = [n,
|
|
119
|
+
# P17 deepen² — remote was still burning full 12-step plans even when
|
|
120
|
+
# overconfidence sat just under the 0.25 gate (0.242 on grok). Always
|
|
121
|
+
# cap to 8 for ALL engines while budget fingerprints dominate; finish-
|
|
122
|
+
# under-N is the skill gap, more headroom only yields empty terminals.
|
|
123
|
+
n = [n, 8].min
|
|
124
124
|
end
|
|
125
125
|
n
|
|
126
126
|
rescue StandardError
|
|
@@ -138,12 +138,14 @@ module PWN
|
|
|
138
138
|
|
|
139
139
|
brier = cal[:brier].to_f
|
|
140
140
|
over = cal[:overconfidence].to_f
|
|
141
|
-
|
|
141
|
+
# P17 — gate lowered 0.25→0.20: grok lived at 0.242 and never tripped,
|
|
142
|
+
# leaving force_plan off while still thrashing tool budgets.
|
|
143
|
+
bad = brier > 0.35 || over > 0.20
|
|
142
144
|
{
|
|
143
145
|
overconfident: bad,
|
|
144
146
|
force_plan: bad,
|
|
145
147
|
force_critic: bad,
|
|
146
|
-
max_iters_cap: bad ?
|
|
148
|
+
max_iters_cap: bad ? 8 : 25,
|
|
147
149
|
cal: cal
|
|
148
150
|
}
|
|
149
151
|
rescue StandardError
|
data/lib/pwn/version.rb
CHANGED
|
@@ -1468,11 +1468,13 @@ RSpec.describe 'PWN::AI::Agent reinforced feedback loop', :aggregate_failures do
|
|
|
1468
1468
|
end
|
|
1469
1469
|
|
|
1470
1470
|
describe 'P0 · Budget exhaust deepen (last-iter / no-CF-hot / exhaust Learning)' do
|
|
1471
|
-
it 'tightens budget-hot max_iters
|
|
1471
|
+
it 'tightens budget-hot max_iters cap to 8 for ALL engines' do
|
|
1472
1472
|
src = File.read(loop_mod.method(:run).source_location.first)
|
|
1473
1473
|
# max_iters is private_class_method — read surrounding source
|
|
1474
|
-
|
|
1474
|
+
# P17 deepen²: always cap to 8 (not ollama? 8 : 12) while budget-hot
|
|
1475
1475
|
expect(src).to match(/budget_exhaustion_hot\?/)
|
|
1476
|
+
expect(src).to match(/n = \[n, 8\]\.min/)
|
|
1477
|
+
expect(src).not_to match(/ollama \? 8 : 12/)
|
|
1476
1478
|
end
|
|
1477
1479
|
|
|
1478
1480
|
it 'forces tools=nil on last iter and skips counterfactual when budget-hot' do
|