Skip to content

Parameter fixing and tidying#12

Merged
JTuffy merged 4 commits into
mainfrom
final-parameters-tidy
Feb 28, 2026
Merged

Parameter fixing and tidying#12
JTuffy merged 4 commits into
mainfrom
final-parameters-tidy

Conversation

@emlynsg
Copy link
Copy Markdown
Collaborator

@emlynsg emlynsg commented Feb 25, 2026

No description provided.


effective_compliant = lab.is_compliant or lab.has_permit
violation_found = auditor.audit_finds_violation(effective_compliant)
is_actually_compliant = ao.realized_excess <= 0
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work making this resolve in one place. I think this makes more sense. I'll add myself a todo to record the channel origin in results

@@ -1,17 +1,21 @@
{
"name": "Crisis World (Maximum Safety)",
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Running this scenario I noticed some steps went by without formal audit. I think this is because 0.3 * 0.1 -> less than 1 expected audit per turn. Separate note on this

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch!

p_base = self.config.base_prob + signal * (1.0 - self.config.base_prob)
else:
p_base = self.config.base_prob
return min(1.0, p_base * audit_coefficient)
Copy link
Copy Markdown
Owner

@JTuffy JTuffy Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be a matter of opinion, but should the audit coefficient scale the signal and the base_prob? Currently a very low coefficient / high evasion can decimate formal audit base prob. Alternatively, it could affect just the firm's signal, which would preserve audit base prob.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good point, and I think your logic makes complete sense. The only trouble is using the audit coefficient without signals activated. I think this is maybe unlikely (since if we are studying realistic auditing we'd have both turned on). I think in the end you're right, but we will need to be clear in the documentation. I will post to the team about this tonight.


# Combined probability: audit occurs AND catches violation
p_catch = p_audit * p_catch_if_audited
def compute_catch_probability(self, p_w: float = 0.0, p_m: float = 0.0) -> float:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(minor) some params could be cleaned up

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll double check this bit

p_total = 1 - (1 - p_audit × p_stage2) × (1 - p_whistleblower) × (1 - p_monitoring)
whistleblower and monitoring are rolled independently of the audit.

Detection channel labels (used in AgentOutcome.caught_by):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

caught_by might be outdates

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yeah I think you're right. I'll double check here too.

@JTuffy
Copy link
Copy Markdown
Owner

JTuffy commented Feb 26, 2026

Overall really great job! Had no idea it would be so much work, but these are solid improvements. I made a few small points, nothing too important. Happy for you to merge when you're ready

Copy link
Copy Markdown
Owner

@JTuffy JTuffy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work

@JTuffy JTuffy merged commit 0dbb563 into main Feb 28, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants