Skip to content

fix: prevent fabricated claims in opening debate turns - #1200

Open
daleselaji-dev wants to merge 2 commits into
TauricResearch:mainfrom
daleselaji-dev:agent/opening-debate-context
Open

fix: prevent fabricated claims in opening debate turns#1200
daleselaji-dev wants to merge 2 commits into
TauricResearch:mainfrom
daleselaji-dev:agent/opening-debate-context

Conversation

@daleselaji-dev

Copy link
Copy Markdown

Summary

  • avoid presenting an empty debate state as a concrete opposing argument
  • make opening bull and bear turns explicitly evidence-led
  • add regression coverage for both opening prompts

Problem

The first researcher receives an empty current_response, but the prompt labels it as the other side's last argument. Models can therefore rebut claims that were never made, which makes the debate history less trustworthy.

Solution

Use a role-specific opening-context sentence when current_response is empty. Later turns continue to receive the actual previous argument unchanged.

Tests

  • python -m pytest tests/test_debate_opening_prompt.py -q (not run: pytest is not installed in the local runtime)
  • python -m compileall (source syntax checked)

Scope and risk

Prompt construction and two focused tests only. No graph ordering, state schema, or trading logic changes.

Closes #1176

@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

bear_history = investment_debate_state.get("bear_history", "")

current_response = investment_debate_state.get("current_response", "")
last_bull_argument = current_response or "No bull argument has been presented yet. Build the opening bear case from the available evidence without attributing claims to the bull side."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I would say

initial_bull_arg="No bull argument has been presented yet. Build the opening bear case from the available evidence without attributing claims to the bull side."
current_response = investment_debate_state.get("current_response", initial_bull_arg)

@taro0915

Copy link
Copy Markdown

Two things from the #1176 side that might be worth folding in.

The bear researcher reaches the same empty-state path. Not under the current wiring, where the bull opens, but under a reversed debate order or a state constructed without a prior bull turn. Guarding only the opener ties the fix to the graph wiring.

It may also be worth being explicit in the description that the prompt-level cue is not sufficient on its own. The risk debators already carry an equivalent instruction ("If there are no responses from the other viewpoints yet, present your own argument based on the available data") and still fabricated both other analysts' positions in my run, details in #1176. This removes the empty-labelled-field trigger rather than fabrication in general, and saying so would keep it from being read as closing the broader problem.

I have the bear-side change and a rendered-prompt test in #1210 if either is useful here.

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.

[Bug] First debate speaker fabricates the opponent's argument (current_response starts empty)

3 participants