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