Spaces:
Sleeping
Sleeping
| 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 | |