CoolFace
Apppublic

pratikshahp/agent-persistence

sourceHugging Faceupdated 2y agoView on Hugging Face
1likes
app.py106 linesDownload Raw Back to root
1import gradio as gr2from agent import Agent3from persistence import AgentPersistence4 5# Instantiate persistence for shared use6persistence = AgentPersistence()7 8def initialize_agent(name, persona, instruction, strategy):9    """Initialize a new agent."""10    agent = Agent(name, persistence)11    agent.persona = persona12    agent.instruction = instruction13    agent.strategy = strategy14    agent.save_state()15    return f"Agent '{name}' initialized successfully."16 17def execute_task(agent_name, task):18    """Execute a task with the specified agent."""19    agent = Agent(agent_name, persistence)20    if not agent.load_state():21        return f"Error: Agent '{agent_name}' not found."22    result = agent.execute(task)23    return result24 25def pause_agent(agent_name):26    """Pause the agent by saving its state."""27    agent = Agent(agent_name, persistence)28    if agent.save_state():29        return f"Agent '{agent_name}' paused successfully."30    else:31        return f"Error: Failed to pause agent '{agent_name}'."32 33def resume_agent(agent_name):34    """Resume the agent's state."""35    agent = Agent(agent_name, persistence)36    if agent.load_state():37        return f"Agent '{agent_name}' resumed successfully. Current task: {agent.task}"38    else:39        return f"Error: Failed to resume agent '{agent_name}'."40 41def list_agents():42    """List all saved agents."""43    saved_agents = persistence.list_saved_agents()44    if not saved_agents:45        return "No agents found."46    return "\n".join([f"{name} (Last updated: {timestamp})" for name, timestamp in saved_agents.items()])47 48# Gradio Interface49with gr.Blocks() as demo:50    gr.Markdown("# Intelligent Agent Management")51 52    with gr.Tab("Initialize Agent"):53        agent_name = gr.Textbox(label="Agent Name")54        persona = gr.Textbox(label="Persona")55        instruction = gr.Textbox(label="Instruction")56        strategy = gr.Textbox(label="Strategy (e.g., ChainOfThoughtStrategy)")57        init_button = gr.Button("Initialize Agent")58        init_output = gr.Textbox(label="Output")59        init_button.click(60            initialize_agent,61            inputs=[agent_name, persona, instruction, strategy],62            outputs=init_output,63        )64 65    with gr.Tab("Execute Task"):66        exec_agent_name = gr.Textbox(label="Agent Name")67        task = gr.Textbox(label="Task")68        exec_button = gr.Button("Execute Task")69        exec_output = gr.Textbox(label="Output")70        exec_button.click(71            execute_task,72            inputs=[exec_agent_name, task],73            outputs=exec_output,74        )75 76    with gr.Tab("Pause Agent"):77        pause_agent_name = gr.Textbox(label="Agent Name")78        pause_button = gr.Button("Pause Agent")79        pause_output = gr.Textbox(label="Output")80        pause_button.click(81            pause_agent,82            inputs=[pause_agent_name],83            outputs=pause_output,84        )85 86    with gr.Tab("Resume Agent"):87        resume_agent_name = gr.Textbox(label="Agent Name")88        resume_button = gr.Button("Resume Agent")89        resume_output = gr.Textbox(label="Output")90        resume_button.click(91            resume_agent,92            inputs=[resume_agent_name],93            outputs=resume_output,94        )95 96    with gr.Tab("List Agents"):97        list_button = gr.Button("List All Agents")98        list_output = gr.Textbox(label="Agents")99        list_button.click(100            list_agents,101            inputs=[],102            outputs=list_output,103        )104 105demo.launch()106