Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions extropy/core/models/simulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,10 @@ class ReasoningResponse(BaseModel):
position: str | None = Field(
default=None, description="Classified position (filled by Pass 2)"
)
public_position: str | None = Field(
default=None,
description="Public-facing position when THINK/SAY diverges (high fidelity)",
)
sentiment: float | None = Field(
default=None, description="Sentiment value (-1 to 1)"
)
Expand Down
10 changes: 6 additions & 4 deletions extropy/simulation/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -926,24 +926,25 @@ def _process_reasoning_chunk(
public_conviction = max(0.0, min(1.0, public_conviction))

public_will_share = response.will_share
public_position = response.position
candidate_public_position = response.public_position or response.position
public_position = candidate_public_position

if (
old_public_conviction is not None
and old_public_conviction >= _FIRM_CONVICTION
):
if (
old_public_position is not None
and response.position is not None
and old_public_position != response.position
and candidate_public_position is not None
and old_public_position != candidate_public_position
):
new_conviction = (
public_conviction if public_conviction is not None else 0.0
)
if new_conviction < _MODERATE_CONVICTION:
logger.info(
f"[CONVICTION] Agent {agent_id}: public flip from {old_public_position} "
f"to {response.position} rejected (old conviction={float_to_conviction(old_public_conviction)}, "
f"to {candidate_public_position} rejected (old conviction={float_to_conviction(old_public_conviction)}, "
f"new conviction={float_to_conviction(public_conviction)})"
)
public_position = old_public_position
Expand Down Expand Up @@ -2041,6 +2042,7 @@ def _export_results(self) -> None:
"population_size": len(self.agents),
"strong_model": self.config.strong,
"fast_model": self.config.fast,
"fidelity": self.config.fidelity,
"seed": self.seed,
"multi_touch_threshold": self.config.multi_touch_threshold,
"completed_at": datetime.now().isoformat(),
Expand Down
Loading
Loading