MCPcopy Create free account
hub / github.com/ScaleML/AgentSPEX / _setup

Method _setup

src/harness/agentic_loop/loop.py:223–303  ·  view source on GitHub ↗

Initialize MCP tools, orchestrator tools, plan generator, and system prompt.

(self)

Source from the content-addressed store, hash-verified

221 self.logger.event("loop_end", self.session.get_usage_summary())
222
223 def _setup(self) -> None:
224 """Initialize MCP tools, orchestrator tools, plan generator, and system prompt."""
225 self._mcp_tools = self.mcp_client.list_tools()
226
227 output_dir = Path(self.config.output_dir)
228 output_dir.mkdir(parents=True, exist_ok=True)
229
230 # Each run gets a fresh task board to avoid stale tasks from previous
231 # runs accumulating. Timestamped filename also serves as a run log.
232 run_ts = datetime.now().strftime("%Y%m%d_%H%M%S")
233 task_board_path = output_dir / f"task_board_{run_ts}.json"
234 self._task_board = TaskBoard(persist_path=task_board_path)
235
236 # Task management tools
237 self._orchestrator_tools = build_task_management_tools(
238 self._task_board, self._get_user_input
239 )
240
241 # Plan generation + verification tools
242 mcp_tool_names = [t["function"]["name"] for t in self._mcp_tools]
243 workflow_guide = self._load_workflow_language_guide()
244 self._tool_briefs = self._load_tool_briefs()
245 self._plan_generator = PlanGenerator(
246 llm_client=self.llm_client,
247 model=self.config.plan_generator_model,
248 plans_dir=output_dir / "plans",
249 available_tool_names=mcp_tool_names,
250 workflow_language_guide=workflow_guide,
251 temperature=self.config.temperature,
252 tool_briefs=self._tool_briefs,
253 executor_model=self.config.plan_executor_model,
254 )
255 self._verifier = PlanVerifier(
256 available_tool_names=set(mcp_tool_names),
257 )
258 plan_tools = build_plan_tools(
259 self._task_board,
260 self._plan_generator,
261 self._verifier,
262 self._get_user_input,
263 )
264 self._orchestrator_tools.extend(plan_tools)
265
266 # Plan execution tools (for reactive mode; plan mode uses direct calls)
267 self._plan_executor = PlanExecutor(
268 mcp_client=self.mcp_client,
269 llm_client=self.llm_client,
270 logger=self.logger,
271 output_dir=self.config.output_dir,
272 )
273 execution_tools = build_execution_tools(
274 self._task_board,
275 self._plan_executor,
276 self._summarize_execution_result,
277 )
278 self._orchestrator_tools.extend(execution_tools)
279
280 self._all_tools = tools_to_openai_format(

Callers 2

runMethod · 0.95
run_interactiveMethod · 0.95

Calls 15

_load_tool_briefsMethod · 0.95
TaskBoardClass · 0.85
PlanGeneratorClass · 0.85
PlanVerifierClass · 0.85
build_plan_toolsFunction · 0.85
PlanExecutorClass · 0.85
build_execution_toolsFunction · 0.85
tools_to_openai_formatFunction · 0.85
get_summaryMethod · 0.80

Tested by

no test coverage detected