Agent_Orchestration / orchestrator.py
Prof-Hunter's picture
Update orchestrator.py
2d30dfd verified
from agents import *
from prompts import *
AGENTS = {
"Market": (market_agent, MARKET_PROMPT),
"Finance": (finance_agent, FINANCE_PROMPT),
"Risk": (risk_agent, RISK_PROMPT),
"Ethics": (ethics_agent, ETHICS_PROMPT)
}
def parse_order(order_text):
order = [
x.strip().title()
for x in order_text.split(",")
if x.strip()
]
return order
def run_workflow(problem, order_text, bias=False):
order = parse_order(order_text)
memory = []
outputs = {}
for name in order:
if name not in AGENTS:
continue
fn, prompt = AGENTS[name]
context = "\n\n".join(memory)
result = fn(problem, context, prompt)
# Inject bias
if bias and name == "Market":
result += "\n\n⚠️ WARNING: Over-optimistic bias detected."
outputs[name] = result
memory.append(f"{name} Agent:\n{result}")
final = synthesis_agent(
problem,
"\n\n".join(memory),
SYNTHESIS_PROMPT
)
outputs["Final"] = final
return outputs