| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- """
- Agency Swarm Copilot Demo
- This example demonstrates the Copilot UI capabilities of Agency Swarm v1.x.
- Sets up a frontend and backend server for the Copilot UI chat demo.
- """
- import sys
- from pathlib import Path
- # Add the src directory to the path so we can import agency_swarm
- sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
- from agency_swarm import Agency, Agent, RunContextWrapper, function_tool
- from agency_swarm.ui.demos.copilot import CopilotDemoLauncher
- @function_tool()
- async def example_tool(wrapper: RunContextWrapper) -> str:
- """Example tool for copilot demo"""
- return "Example tool executed"
- def create_demo_agency():
- """Create a demo agency for copilot demo"""
- # Create agents using v1.x pattern (direct instantiation)
- ceo = Agent(
- name="CEO",
- description="Chief Executive Officer - oversees all operations",
- instructions="You are the CEO responsible for high-level decision making and coordination.",
- tools=[example_tool],
- )
- worker = Agent(
- name="Worker",
- description="Worker - performs tasks",
- instructions="Follow instructions given by the CEO.",
- tools=[example_tool],
- )
- # Create agency with communication flows (v1.x pattern)
- agency = Agency(
- ceo, # Entry point agent (positional argument)
- communication_flows=[ceo > worker],
- name="CopilotDemoAgency",
- )
- return agency
- def main():
- """Launch interactive Copilot demo"""
- print("Agency Swarm Copilot Demo")
- print("=" * 50)
- print()
- try:
- agency = create_demo_agency()
- # Launch the Copilot UI demo with backend and frontend servers.
- launcher = CopilotDemoLauncher()
- launcher.start(agency)
- except Exception as e:
- print(f"❌ Demo failed with error: {e}")
- import traceback
- traceback.print_exc()
- if __name__ == "__main__":
- main()
|