Initial commit: Meeting Room v0.1.0
Multi-agent discussion framework: - Custom/AutoGen/CrewAI backends - Multi-provider API (role→model binding) - Tools system (files, web, commands) - Markdown scenarios with YAML frontmatter - Workspace init (meeting-room init) - Session save (--save)
This commit is contained in:
0
meeting_room/backends/crewai/__init__.py
Normal file
0
meeting_room/backends/crewai/__init__.py
Normal file
53
meeting_room/backends/crewai/run.py
Normal file
53
meeting_room/backends/crewai/run.py
Normal file
@@ -0,0 +1,53 @@
|
||||
"""CrewAI backend — uses crewai for task-oriented multi-agent discussion."""
|
||||
|
||||
|
||||
def check_installed():
|
||||
try:
|
||||
import crewai # noqa
|
||||
return True
|
||||
except ImportError:
|
||||
return False
|
||||
|
||||
|
||||
def run(scenario_path: str, config: dict):
|
||||
if not check_installed():
|
||||
print("CrewAI is not installed. Run:\n pip install meeting-room[crewai]")
|
||||
return []
|
||||
|
||||
import yaml
|
||||
from crewai import Agent, Task, Crew, Process
|
||||
from meeting_room.scenario_loader import load_scenario
|
||||
|
||||
scenario = load_scenario(scenario_path)
|
||||
roles = config["roles"]
|
||||
participants = scenario.get("participants", list(roles.keys()))
|
||||
|
||||
agents = []
|
||||
for role_id in participants:
|
||||
role = roles[role_id]
|
||||
agent = Agent(
|
||||
role=role["name"],
|
||||
goal=role["system_prompt"].split(".")[0] + ".",
|
||||
backstory=role["system_prompt"].strip(),
|
||||
llm=f"{role['provider']}/{role['model']}",
|
||||
verbose=True,
|
||||
)
|
||||
agents.append(agent)
|
||||
|
||||
discuss_task = Task(
|
||||
description=f"Discuss this problem as a group:\n\n{scenario['problem']}",
|
||||
agent=agents[0],
|
||||
expected_output="Final solution with arguments from each participant",
|
||||
)
|
||||
|
||||
crew = Crew(
|
||||
agents=agents,
|
||||
tasks=[discuss_task],
|
||||
process=Process.sequential,
|
||||
verbose=True,
|
||||
)
|
||||
|
||||
result = crew.kickoff()
|
||||
print(f"\n{'='*60}\nCREWAI RESULT:\n{'='*60}\n")
|
||||
print(result)
|
||||
return str(result)
|
||||
Reference in New Issue
Block a user