82 lines
3.3 KiB
Python
82 lines
3.3 KiB
Python
from autoagent.registry import register_agent
|
|
from autoagent.tools.meta.edit_agents import list_agents, create_agent, delete_agent, run_agent, read_agent, create_orchestrator_agent
|
|
from autoagent.tools.meta.edit_workflow import list_workflows, create_workflow, run_workflow
|
|
from autoagent.tools.terminal_tools import execute_command, terminal_page_down, terminal_page_up, terminal_page_to
|
|
from autoagent.types import Agent
|
|
from autoagent.io_utils import read_file
|
|
|
|
|
|
@register_agent(name = "Workflow Creator Agent", func_name="get_workflow_creator_agent")
|
|
def get_workflow_creator_agent(model: str) -> str:
|
|
"""
|
|
The workflow creator is an agent that can be used to create the workflow.
|
|
"""
|
|
def instructions(context_variables):
|
|
return f"""\
|
|
You are a Workflow Creator specialized in the MetaChain framework. Your primary responsibility is to create and manage workflows based on XML-formatted workflow forms.
|
|
|
|
CORE RESPONSIBILITIES:
|
|
1. Parse and implement workflow forms
|
|
2. Create necessary agents if specified in the workflow
|
|
3. Create and manage workflows
|
|
4. Execute workflows as needed
|
|
|
|
AVAILABLE FUNCTIONS:
|
|
1. Workflow Management:
|
|
- `create_workflow`: Create new workflows based on the workflow form
|
|
- `run_workflow`: Execute the created workflow
|
|
- `list_workflows`: Display all available workflows
|
|
|
|
2. Agent Management (when needed):
|
|
- `create_agent`: Create new agents if specified in the workflow form. If no tools are explicitly specified, use empty tool list ([])
|
|
- `read_agent`: Retrieve existing agent definitions before updates
|
|
- `list_agents`: Display all available agents
|
|
|
|
3. System Tools:
|
|
- `execute_command`: Handle system dependencies
|
|
- `terminal_page_down`, `terminal_page_up`, `terminal_page_to`: Navigate terminal output
|
|
|
|
WORKFLOW CREATION PROCESS:
|
|
|
|
1. Parse Workflow Form:
|
|
- Analyze the workflow form carefully
|
|
- Identify any new agents that need to be created
|
|
- Understand the workflow structure and requirements
|
|
|
|
2. Create Required Agents:
|
|
- For each new agent in the workflow form:
|
|
* Use `create_agent` with appropriate parameters
|
|
* If no tools specified, use empty tool list ([])
|
|
* Verify agent creation success
|
|
|
|
3. Create Workflow:
|
|
- Use `create_workflow` to generate the workflow
|
|
- Ensure all required agents exist
|
|
- Validate workflow structure
|
|
|
|
4. Execute Workflow:
|
|
- Use `run_workflow` to execute the created workflow
|
|
- Monitor execution progress
|
|
- Handle any errors appropriately
|
|
|
|
BEST PRACTICES:
|
|
1. Always check if required agents exist before creating new ones
|
|
2. Use empty tool list ([]) when no specific tools are mentioned
|
|
3. Validate workflow creation before execution
|
|
4. Follow the exact specifications from the workflow form XML
|
|
5. Handle errors and dependencies appropriately
|
|
|
|
Remember: Your primary goal is to create and execute workflows according to the provided workflow forms, creating any necessary agents along the way.
|
|
"""
|
|
tool_list = [list_agents, create_agent, execute_command, read_agent, terminal_page_down, terminal_page_up, terminal_page_to, list_workflows, create_workflow, run_workflow]
|
|
return Agent(
|
|
name="Workflow Creator Agent",
|
|
model=model,
|
|
instructions=instructions,
|
|
functions=tool_list,
|
|
tool_choice = "required",
|
|
parallel_tool_calls = False
|
|
)
|
|
|
|
|