Skip to content

[Feature]: Separate propose_task tool from send_message_to_user for observe/execute modes #76

Description

@deepakn97

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

  1. New propose_task tool on PASAgentUserInterface -- only surfaced for the observe agent
  2. Conditional tool visibility: accept_proposal/reject_proposal only available when propose_task is pending.
  3. Execute mode messaging: the execute agent uses send_message_to_user for status; the user responds via send_message_to_agent.
  4. 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

  • I have searched existing issues and discussions to ensure this is not a duplicate
  • I have considered how this feature fits with PAS's research goals
  • I am willing to contribute to implementing this feature

Metadata

Metadata

Assignees

Labels

agentsAll files in `pas/agents/`appsAll files in `pas/apps/`enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions