Feature Summary
Introduce a dedicated propose_task tool for the observe agent and restrict accept_proposal/reject_proposal to only appear after a propose_task call. This cleanly separates the proposal flow from the general messaging flow between agents.
Motivation and Use Case
send_message_to_user is shared between the observe agent (making proposals) and the execute agent (sending status updates). The user agent responds to both with accept_proposal/reject_proposal,
conflating proposal acceptance with message acknowledgment. This causes >100% acceptance rates in benchmarks and blurs the observe/execute FSM boundary.
Proposed Solution
- New propose_task tool on PASAgentUserInterface -- only surfaced for the observe agent
- Conditional tool visibility: accept_proposal/reject_proposal only available when propose_task is pending.
- Execute mode messaging: the execute agent uses send_message_to_user for status; the user responds via send_message_to_agent.
- Metric simplification: UserAgent.get_acceptance_count() becomes correct by construction
Alternatives Considered
- Count proposals from both agents (treats execute messages as proposals -- wrong semantics)
- Cross-reference event log proactive_mode at metric time (current short-term fix in scenario_runner.py:_count_observe_mode_acceptances() -- works but indirect)
- Remove send_message_to_user from execute agent entirely (too restrictive)
Component
Agents
Priority
Critical - Blocking my research
Example Usage
Related Work
No response
Additional Context
No response
Pre-submission Checklist
Feature Summary
Introduce a dedicated
propose_tasktool for the observe agent and restrictaccept_proposal/reject_proposalto only appear after apropose_taskcall. This cleanly separates the proposal flow from the general messaging flow between agents.Motivation and Use Case
send_message_to_useris shared between the observe agent (making proposals) and the execute agent (sending status updates). The user agent responds to both withaccept_proposal/reject_proposal,conflating proposal acceptance with message acknowledgment. This causes >100% acceptance rates in benchmarks and blurs the observe/execute FSM boundary.
Proposed Solution
Alternatives Considered
Component
Agents
Priority
Critical - Blocking my research
Example Usage
Related Work
No response
Additional Context
No response
Pre-submission Checklist