| from src.manager.budget_manager import BudgetManager | |
| from src.manager.agent_manager import AgentManager | |
| __all__ = ['AskAgent'] | |
| class AskAgent(): | |
| dependencies = ["ollama==0.4.7", | |
| "pydantic==2.11.1", | |
| "pydantic_core==2.33.0"] | |
| inputSchema = { | |
| "name": "AskAgent", | |
| "description": "Asks an AI agent a question and gets a response. The agent must be created using the AgentCreator tool before using this tool.", | |
| "parameters": { | |
| "type": "object", | |
| "properties": { | |
| "agent_name": { | |
| "type": "string", | |
| "description": "Name of the AI agent that is to be asked a question. This name cannot have spaces or special characters. It should be a single word.", | |
| }, | |
| "prompt": { | |
| "type": "string", | |
| "description": "This is the prompt that will be used to ask the agent a question. It should be a string that describes the question to be asked.", | |
| } | |
| }, | |
| "required": ["agent_name", "prompt"], | |
| } | |
| } | |
| def run(self, **kwargs): | |
| print("Asking agent a question") | |
| agent_name = kwargs.get("agent_name") | |
| prompt = kwargs.get("prompt") | |
| agent_manger = AgentManager() | |
| try: | |
| agent_response, remaining_resource_budget, remaining_expense_budget = agent_manger.ask_agent(agent_name=agent_name, prompt=prompt) | |
| except ValueError as e: | |
| return { | |
| "status": "error", | |
| "message": f"Error occurred: {str(e)}", | |
| "output": None | |
| } | |
| print("Agent response", agent_response) | |
| return { | |
| "status": "success", | |
| "message": "Agent has replied to the given prompt", | |
| "output": agent_response, | |
| "remaining_resource_budget": remaining_resource_budget, | |
| "remaining_expense_budget": remaining_expense_budget | |
| } | |