MCPcopy Index your code
hub / github.com/shareAI-lab/learn-claude-code / agent_loop

Function agent_loop

s12_task_system/code.py:326–355  ·  view source on GitHub ↗
(messages: list, context: dict)

Source from the content-addressed store, hash-verified

324# ── Agent Loop (simplified, focused on task system) ──
325
326def agent_loop(messages: list, context: dict):
327 system = get_system_prompt(context)
328 while True:
329 try:
330 response = client.messages.create(
331 model=MODEL, system=system, messages=messages,
332 tools=TOOLS, max_tokens=8000)
333 except Exception as e:
334 messages.append({"role": "assistant", "content": [
335 {"type": "text",
336 "text": f"[Error] {type(e).__name__}: {e}"}]})
337 return
338
339 messages.append({"role": "assistant", "content": response.content})
340 if response.stop_reason != "tool_use":
341 return
342
343 results = []
344 for block in response.content:
345 if block.type != "tool_use":
346 continue
347 print(f"\033[36m> {block.name}\033[0m")
348 handler = TOOL_HANDLERS.get(block.name)
349 output = handler(**block.input) if handler else f"Unknown: {block.name}"
350 print(str(output)[:300])
351 results.append({"type": "tool_result",
352 "tool_use_id": block.id, "content": output})
353 messages.append({"role": "user", "content": results})
354 context = update_context(context, messages)
355 system = get_system_prompt(context)
356
357
358if __name__ == "__main__":

Callers 1

code.pyFile · 0.70

Calls 4

get_system_promptFunction · 0.70
update_contextFunction · 0.70
createMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected