mirror of
https://github.com/TauricResearch/TradingAgents.git
synced 2026-09-19 19:25:24 +03:00
fix(agents): stop the debate managers forcing a direction under ambiguity
- the managers reserved Hold only for "genuinely balanced" evidence and were told to "be decisive", pressuring a directional call on ambiguous, conflicting, or insufficient inputs; which side it landed on was model-prior-dependent - allow Hold for balanced, conflicting, ambiguous, or insufficient evidence in both manager prompts and both structured rating fields, and weigh cases independent of speaking order; rating definitions and debate ordering unchanged #1196
This commit is contained in:
@@ -62,7 +62,7 @@ def create_portfolio_manager(llm):
|
||||
|
||||
---
|
||||
|
||||
Be decisive and ground every conclusion in specific evidence from the analysts.
|
||||
Ground every conclusion in specific evidence from the analysts. Commit to a directional call only when the evidence clearly supports one; choose Hold when the case is balanced, materially conflicting, ambiguous, or insufficient to justify changing exposure, rather than forcing a direction to appear decisive. Weigh the analysts on their merits, independent of speaking order.
|
||||
|
||||
{NO_EXTERNAL_TOOLS}{get_language_instruction()}"""
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ def create_research_manager(llm):
|
||||
- **Underweight**: Cautious view; recommend trimming exposure
|
||||
- **Sell**: Strong conviction in the bear thesis; recommend exiting or avoiding the position
|
||||
|
||||
Commit to a clear stance whenever the debate's strongest arguments warrant one; reserve Hold for situations where the evidence on both sides is genuinely balanced.
|
||||
Commit to a directional stance only when the debate's strongest arguments clearly warrant one. Choose Hold when the evidence is balanced, materially conflicting, ambiguous, or insufficient to justify changing exposure; do not manufacture a direction merely to appear decisive. Weigh the bull and bear cases on their merits, independent of which side spoke first or last.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -82,9 +82,11 @@ class ResearchPlan(BaseModel):
|
||||
recommendation: PortfolioRating = Field(
|
||||
description=(
|
||||
"The investment recommendation. Exactly one of Buy / Overweight / "
|
||||
"Hold / Underweight / Sell. Reserve Hold for situations where the "
|
||||
"evidence on both sides is genuinely balanced; otherwise commit to "
|
||||
"the side with the stronger arguments."
|
||||
"Hold / Underweight / Sell. Choose Hold when the evidence is "
|
||||
"balanced, materially conflicting, ambiguous, or insufficient to "
|
||||
"justify changing exposure; otherwise commit to the side with the "
|
||||
"clearly stronger arguments. Do not pick a direction merely to be "
|
||||
"decisive."
|
||||
),
|
||||
)
|
||||
rationale: str = Field(
|
||||
@@ -197,7 +199,10 @@ class PortfolioDecision(BaseModel):
|
||||
rating: PortfolioRating = Field(
|
||||
description=(
|
||||
"The final position rating. Exactly one of Buy / Overweight / Hold / "
|
||||
"Underweight / Sell, picked based on the analysts' debate."
|
||||
"Underweight / Sell, picked based on the analysts' debate. Choose "
|
||||
"Hold when the case is balanced, materially conflicting, ambiguous, "
|
||||
"or insufficient to justify changing exposure, rather than forcing a "
|
||||
"direction to appear decisive."
|
||||
),
|
||||
)
|
||||
executive_summary: str = Field(
|
||||
|
||||
Reference in New Issue
Block a user