Skip to content

#46. Nested Agent Context Propagation

Source code in OpAgentsOlympus/practice/#46. nested_agent_context_propagation.py
OpAgentsOlympus/practice/#46. nested_agent_context_propagation.py
     from agents import Agent, function_tool, Runner

     @function_tool
     def get_user_data(ctx, user_id: str) -> str:
          # Access context from parent agent
          return f"User {user_id} data from {ctx.context.database_name}"

     class DatabaseContext:
          def __init__(self, db_name: str):
                self.database_name = db_name

     inner_agent = Agent(
          name="DataAgent",
          tools=[get_user_data],
          instructions="Fetch user data from the database"
     )

     outer_agent = Agent(
          name="MainAgent",
          tools=[inner_agent.as_tool(tool_name="fetch_user_data")],
          instructions="Use the data agent to get user information"
     )

     context = DatabaseContext("production_db")
     result = await Runner.run(outer_agent, "Get data for user 123", context=context)