diff --git a/s17_autonomous_agents/README.en.md b/s17_autonomous_agents/README.en.md index 4269b498..2d676faf 100644 --- a/s17_autonomous_agents/README.en.md +++ b/s17_autonomous_agents/README.en.md @@ -42,13 +42,13 @@ After completing a task, the teammate doesn't exit. It enters the IDLE phase — IDLE_POLL_INTERVAL = 5 # seconds IDLE_TIMEOUT = 60 # seconds -def idle_poll(agent_name, messages, name, role) -> str: +def idle_poll(name, messages, role) -> str: """Return 'work', 'shutdown', or 'timeout'.""" for _ in range(IDLE_TIMEOUT // IDLE_POLL_INTERVAL): time.sleep(IDLE_POLL_INTERVAL) # ① Check inbox (priority) - inbox = BUS.read_inbox(agent_name) + inbox = BUS.read_inbox(name) if inbox: # shutdown_request handled immediately for msg in inbox: @@ -63,7 +63,7 @@ def idle_poll(agent_name, messages, name, role) -> str: unclaimed = scan_unclaimed_tasks() if unclaimed: task = unclaimed[0] - result = claim_task(task["id"], agent_name) + result = claim_task(task["id"], name) if "Claimed" in result: messages.append(...) return "work" @@ -126,7 +126,7 @@ while True: break # WORK phase ends # IDLE phase - idle_result = idle_poll(name, messages, name, role) + idle_result = idle_poll(name, messages, role) if idle_result == "shutdown": break if idle_result == "timeout": @@ -268,4 +268,4 @@ Teaching version's `idle_poll()` merges CC's four mechanisms into one polling fu - + diff --git a/s17_autonomous_agents/README.ja.md b/s17_autonomous_agents/README.ja.md index 1de34c37..a88642d8 100644 --- a/s17_autonomous_agents/README.ja.md +++ b/s17_autonomous_agents/README.ja.md @@ -42,13 +42,13 @@ S16 の教学版 MessageBus とプロトコルツールを踏襲。本章の追 IDLE_POLL_INTERVAL = 5 # seconds IDLE_TIMEOUT = 60 # seconds -def idle_poll(agent_name, messages, name, role) -> str: +def idle_poll(name, messages, role) -> str: """Return 'work', 'shutdown', or 'timeout'.""" for _ in range(IDLE_TIMEOUT // IDLE_POLL_INTERVAL): time.sleep(IDLE_POLL_INTERVAL) # ① 受信箱確認(優先) - inbox = BUS.read_inbox(agent_name) + inbox = BUS.read_inbox(name) if inbox: # shutdown_request は即座に処理 for msg in inbox: @@ -63,7 +63,7 @@ def idle_poll(agent_name, messages, name, role) -> str: unclaimed = scan_unclaimed_tasks() if unclaimed: task = unclaimed[0] - result = claim_task(task["id"], agent_name) + result = claim_task(task["id"], name) if "Claimed" in result: messages.append(...) return "work" @@ -126,7 +126,7 @@ while True: break # WORK フェーズ終了 # IDLE フェーズ - idle_result = idle_poll(name, messages, name, role) + idle_result = idle_poll(name, messages, role) if idle_result == "shutdown": break if idle_result == "timeout": @@ -268,4 +268,4 @@ s18 Worktree Isolation → 各タスクに専用の作業ディレクトリ、 - + diff --git a/s17_autonomous_agents/README.md b/s17_autonomous_agents/README.md index 769da6ca..b3192c2d 100644 --- a/s17_autonomous_agents/README.md +++ b/s17_autonomous_agents/README.md @@ -42,13 +42,13 @@ s16 的队友能通信、能握手关机。但每个队友等 Lead 分配任务 IDLE_POLL_INTERVAL = 5 # seconds IDLE_TIMEOUT = 60 # seconds -def idle_poll(agent_name, messages, name, role) -> str: +def idle_poll(name, messages, role) -> str: """Return 'work', 'shutdown', or 'timeout'.""" for _ in range(IDLE_TIMEOUT // IDLE_POLL_INTERVAL): time.sleep(IDLE_POLL_INTERVAL) # ① 检查收件箱(优先) - inbox = BUS.read_inbox(agent_name) + inbox = BUS.read_inbox(name) if inbox: # shutdown_request 立即处理 for msg in inbox: @@ -63,7 +63,7 @@ def idle_poll(agent_name, messages, name, role) -> str: unclaimed = scan_unclaimed_tasks() if unclaimed: task = unclaimed[0] - result = claim_task(task["id"], agent_name) + result = claim_task(task["id"], name) if "Claimed" in result: messages.append(...) return "work" @@ -126,7 +126,7 @@ while True: break # WORK 阶段结束 # IDLE phase - idle_result = idle_poll(name, messages, name, role) + idle_result = idle_poll(name, messages, role) if idle_result == "shutdown": break if idle_result == "timeout": @@ -268,4 +268,4 @@ s18 Worktree Isolation → 每个任务有自己的工作目录,互不干扰 - + diff --git a/s17_autonomous_agents/code.py b/s17_autonomous_agents/code.py index 318e2f3c..b8c48760 100644 --- a/s17_autonomous_agents/code.py +++ b/s17_autonomous_agents/code.py @@ -301,14 +301,13 @@ def scan_unclaimed_tasks() -> list[dict]: return unclaimed -def idle_poll(agent_name: str, messages: list, - name: str, role: str) -> str: +def idle_poll(name: str, messages: list, role: str) -> str: """Poll for 60s. Return 'work', 'shutdown', or 'timeout'.""" for _ in range(IDLE_TIMEOUT // IDLE_POLL_INTERVAL): time.sleep(IDLE_POLL_INTERVAL) # Check inbox — dispatch protocol messages first - inbox = BUS.read_inbox(agent_name) + inbox = BUS.read_inbox(name) if inbox: # Check for shutdown_request for msg in inbox: @@ -331,7 +330,7 @@ def idle_poll(agent_name: str, messages: list, unclaimed = scan_unclaimed_tasks() if unclaimed: task = unclaimed[0] - result = claim_task(task["id"], agent_name) + result = claim_task(task["id"], name) if "Claimed" in result: messages.append({"role": "user", "content": f"Task {task['id']}: " @@ -498,7 +497,7 @@ def spawn_teammate_thread(name: str, role: str, prompt: str) -> str: break # IDLE phase (s17 new) - idle_result = idle_poll(name, messages, name, role) + idle_result = idle_poll(name, messages, role) if idle_result == "shutdown": break if idle_result == "timeout":