mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-09-15 17:18:38 +00:00
* feat(subagents): add capacity controls and durable batches * fix(helm): sync subagent config schema version * fix(subagents): preserve batch history without worker * fix(subagents): support explicit factory runtimes * fix: address durable batch review findings
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
"""Process-local bridge from harness tools to the Gateway batch service."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import threading
|
|
from dataclasses import dataclass
|
|
from typing import Any, Protocol
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class BatchSubmitRequest:
|
|
user_id: str
|
|
thread_id: str
|
|
run_id: str | None
|
|
tool_call_id: str
|
|
submission_key: str
|
|
title: str
|
|
subagent_type: str
|
|
items: list[dict[str, str]]
|
|
max_live_items: int | None
|
|
max_running_items: int | None
|
|
execution_spec: dict[str, Any]
|
|
|
|
|
|
class SubagentBatchSubmitter(Protocol):
|
|
async def submit(self, request: BatchSubmitRequest) -> dict[str, Any]: ...
|
|
|
|
async def get_batch(self, *, batch_id: str, user_id: str) -> dict[str, Any] | None: ...
|
|
|
|
async def cancel_batch(self, *, batch_id: str, user_id: str) -> dict[str, Any] | None: ...
|
|
|
|
|
|
_submitter: SubagentBatchSubmitter | None = None
|
|
_lock = threading.Lock()
|
|
|
|
|
|
def set_subagent_batch_submitter(submitter: SubagentBatchSubmitter | None) -> None:
|
|
global _submitter
|
|
with _lock:
|
|
_submitter = submitter
|
|
|
|
|
|
def get_subagent_batch_submitter() -> SubagentBatchSubmitter | None:
|
|
with _lock:
|
|
return _submitter
|
|
|
|
|
|
def is_subagent_batch_runtime_available() -> bool:
|
|
return get_subagent_batch_submitter() is not None
|