Skip to content

docs: add tool simulator example#500

Open
ybdarrenwang wants to merge 6 commits intostrands-agents:mainfrom
ybdarrenwang:feature/tool-simulator
Open

docs: add tool simulator example#500
ybdarrenwang wants to merge 6 commits intostrands-agents:mainfrom
ybdarrenwang:feature/tool-simulator

Conversation

@ybdarrenwang
Copy link

Description

Adds comprehensive documentation and examples for the ToolSimulator framework introduced in strands-agents/evals. Demonstrates realistic multi-turn agent evaluation scenarios with simulated tools.

Key additions:

  • Complete smart home example (tool_simulator.py) showcasing all three simulation modes working together with shared state
  • Multi-agent workflow demonstration with agent-as-tool pattern using hvac_control_assistant sub-agent
  • State inspection utilities showing how to track state changes across tool invocations

Related Issues

strands-agents/evals#93

Type of Change

  • New content

Checklist

  • I have read the CONTRIBUTING document
  • My changes follow the project's documentation style
  • I have tested the documentation locally using mkdocs serve
  • Links in the documentation are valid and working

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Copy link
Contributor

@poshinchen poshinchen left a comment

Choose a reason for hiding this comment

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

After viewing the example on how people initiates and access the simulator, I think we have to make these changes:

  1. ToolSimulator._get_instance() -> We should directly allow simulator = ToolSimulator(). But this ends up to a question, does ToolSimulator have to be singleton?
  • With this approach we could just do @simulator.function_tool()
  1. simulator._state_registry.get_state("room_environment") -> we should directly allow simulator.get_state("room"environment") instead of telling users to access the private state_registry

@strands-agent
Copy link
Contributor

Documentation Deployment Complete

Your documentation preview has been successfully deployed!

Preview URL: https://d3ehv1nix5p99z.cloudfront.net/pr-500/

@ybdarrenwang
Copy link
Author

After viewing the example on how people initiates and access the simulator, I think we have to make these changes:

  1. ToolSimulator._get_instance() -> We should directly allow simulator = ToolSimulator(). But this ends up to a question, does ToolSimulator have to be singleton?
  • With this approach we could just do @simulator.function_tool()
  1. simulator._state_registry.get_state("room_environment") -> we should directly allow simulator.get_state("room"environment") instead of telling users to access the private state_registry

These changes are made in the latest revision.

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.

4 participants