# app.py import gradio as gr from agents.programmer import ProgrammerAgent from agents.debugger import DebuggerAgent from agents.base_agent import ACPMessage from firebase.firebase_config import log_message_to_firestore # Init agents codebot = ProgrammerAgent() bugbot = DebuggerAgent() def chat_with_bots(user_input): # Send same input to both agents msg_to_codebot = ACPMessage(sender="User", receiver="CodeBot", performative="request", content=user_input) msg_to_bugbot = ACPMessage(sender="User", receiver="BugBot", performative="request", content=user_input) # Log inputs log_message_to_firestore(msg_to_codebot.to_dict()) log_message_to_firestore(msg_to_bugbot.to_dict()) # Get both responses reply_codebot = codebot.receive_message(msg_to_codebot) reply_bugbot = bugbot.receive_message(msg_to_bugbot) # Log responses log_message_to_firestore(reply_codebot.to_dict()) log_message_to_firestore(reply_bugbot.to_dict()) # Format reply for chat full_reply = f""" 🧠 **CodeBot** (Programmer): {reply_codebot.content} 🐞 **BugBot** (Debugger): {reply_bugbot.content} """ return full_reply.strip() # Gradio UI with gr.Blocks(title="BotTalks: Chat with 2 AI Agents") as demo: gr.Markdown("# 🤖 BotTalks: Chat with 2 AI Friends!\nAsk anything and see how both agents respond.") input_box = gr.Textbox(label="You", placeholder="Ask something like: How do I reverse a list?", lines=2) output_box = gr.Markdown() send_btn = gr.Button("Send") send_btn.click(chat_with_bots, inputs=input_box, outputs=output_box) demo.launch()