В этом подробном руководстве мы представляем основную архитектуру ClawTeam — фреймворк Agent Swarm Intelligence с открытым исходным кодом, разработанный HKUDS. Мы реализуем фундаментальные концепции, которые делают ClawTeam мощным: агент-лидер, который разлагает сложные цели на подзадачи, специализированные рабочие агенты, которые выполняют эти задачи автономно, общая доска задач с автоматическим разрешением зависимостей и система межагентского обмена сообщениями, которая обеспечивает координацию в реальном времени.
Установка пакетов
Мы начинаем с установки необходимых пакетов, OpenAI и rich, и безопасного сбора ключа API OpenAI через Colab Secrets или ввод в терминале. Затем мы импортируем все библиотеки, которые нам понадобятся на протяжении всего руководства, включая threading для параллелизма, dataclasses для чистого моделирования данных и Rich для красивого вывода в терминале. Мы инициализируем глобального клиента OpenAI, консоль Rich и устанавливаем gpt-4o-mini в качестве нашей модели по умолчанию для экономичного выполнения роя.
Определение статуса задач
«`python
class TaskStatus(str, Enum):
PENDING = «pending»
INPROGRESS = «inprogress»
COMPLETED = «completed»
BLOCKED = «blocked»
FAILED = «failed»
«`
Определение класса Task
«`python
@dataclass
class Task:
id: str = field(default_factory=lambda: str(uuid.uuid4())[:8])
subject: str = «»
description: str = «»
owner: str = «»
status: TaskStatus = TaskStatus.PENDING
blockedby: list = field(defaultfactory=list)
result: str = «»
createdat: str = field(defaultfactory=lambda: datetime.now().isoformat())
completed_at: Optional[str] = None
def to_dict(self):
return {
«id»: self.id,
«subject»: self.subject,
«description»: self.description,
«owner»: self.owner,
«status»: self.status.value,
«blockedby»: self.blockedby,
«result»: self.result[:200] if self.result else «»,
}
«`
Определение класса TaskBoard
«`python
class TaskBoard:
def init(self):
self._tasks: dict[str, Task] = {}
self._lock = threading.Lock()
def create(self, subject: str, description: str = «», owner: str = «»,
blocked_by: list = None) -> Task:
task = Task(
subject=subject,
description=description,
owner=owner,
blockedby=blockedby or [],
)
if task.blocked_by:
task.status = TaskStatus.BLOCKED
with self._lock:
self._tasks[task.id] = task
return task
# … (другие методы класса)
«`
Определение класса Message
«`python
@dataclass
class Message:
sender: str
recipient: str
content: str
timestamp: str = field(default_factory=lambda: datetime.now().isoformat())
«`
Определение класса InboxSystem
«`python
class InboxSystem:
def init(self):
self._inboxes: dict[str, list[Message]] = defaultdict(list)
self._lock = threading.Lock()
def send(self, sender: str, recipient: str, content: str):
msg = Message(sender=sender, recipient=recipient, content=content)
with self._lock:
self._inboxes[recipient].append(msg)
# … (другие методы класса)
«`
Определение класса AgentInfo
«`python
@dataclass
class AgentInfo:
name: str
role: str
status: str = «active»
tasks_completed: int = 0
spawnedat: str = field(defaultfactory=lambda: datetime.now().isoformat())
«`
Определение класса TeamRegistry
«`python
class TeamRegistry:
def init(self, team_name: str, description: str = «»):
self.teamname = teamname
self.description = description
self.agents: dict[str, AgentInfo] = {}
self._lock = threading.Lock()
def register(self, name: str, role: str):
with self._lock:
self.agents[name] = AgentInfo(name=name, role=role)
# … (другие методы класса)
«`
Мы строим три основополагающие системы, которые отражают архитектуру ClawTeam на основе файловой системы: TaskBoard с полным жизненным циклом статуса и автоматическим разблокированием зависимостей, InboxSystem, поддерживающую точечную и широковещательную передачу сообщений между агентами, и TeamRegistry, который отслеживает роль каждого агента, статус и количество выполненных задач.
Реализация SwarmAgent
Мы определяем четыре инструмента вызова функций OpenAI: taskupdate, inboxsend, inboxreceive и tasklist, которые служат аналогами команд ClawTeam CLI для агентов. Мы конструируем класс SwarmAgent, который оборачивает цикл рассуждений LLM, позволяющий агенту вызывать инструменты несколько раз перед тем, как дать окончательный ответ.
Определение системы лидера
«`python
LEADERSYSTEMPROMPT = «»»You are the LEADER of an AI agent swarm (ClawTeam style).
Your job:
1. Receive a high-level goal from the human
2. Decompose it into concrete sub-tasks with clear deliverables
3. Assign tasks to specialized worker agents
4. Monitor progress and synthesize the final result
You think strategically and delegate effectively. You don’t do the detail work yourself —
you coordinate the swarm.
When producing the task plan, output valid JSON with this exact structure:
{
«team_description»: «Brief description of what this team does»,
«tasks»: [
{
«subject»: «Short task title»,
«description»: «Detailed instructions for the worker»,
«worker_role»: «The specialist role needed (e.g., ‘Market Research Analyst’)»,
«workername»: «Short snakecase name (e.g., ‘market_analyst’)»,
«blockedbyindices»: []
}
]
}
«`
Запуск роя
«`python
def run_swarm(goal: str):
console.print(Panel(
«[bold white on blue] ClawTeam Swarm Intelligence — Tutorial Run [/bold white on blue]»,
expand=True,
))
console.print(f»\n[bold]Human Goal:[/bold] {goal}\n»)
# … (другие методы класса)
«`
Мы создаём три предварительно настроенных шаблона команд: AI Hedge Fund, Research Swarm и Engineering Team, которые отражают шаблоны команд ClawTeam и позволяют пользователям запускать полный мультиагентный рабочий процесс с помощью одной команды. Мы строим интерактивное меню, которое представляет все пять опций (три шаблона, ввод пользовательской цели, и список шаблонов) и обрабатывает ввод пользователя с разумными значениями по умолчанию.
1. Какие основные компоненты включены в архитектуру ClawTeam и как они взаимодействуют между собой?
В архитектуре ClawTeam включены следующие основные компоненты:
* агент-лидер, который разлагает сложные цели на подзадачи;
* специализированные рабочие агенты, которые выполняют эти задачи автономно;
* общая доска задач с автоматическим разрешением зависимостей;
* система межагентского обмена сообщениями, которая обеспечивает координацию в реальном времени.
2. Какие инструменты вызова функций OpenAI используются для реализации SwarmAgent и какие функции они выполняют?
Для реализации SwarmAgent используются четыре инструмента вызова функций OpenAI:
* `task_update` — обновление статуса задач;
* `inbox_send` — отправка сообщений между агентами;
* `inbox_receive` — получение сообщений между агентами;
* `task_list` — получение списка задач.
Эти инструменты служат аналогами команд ClawTeam CLI для агентов.
3. Какие классы и системы определены для управления агентами и задачами в ClawTeam?
Для управления агентами и задачами в ClawTeam определены следующие классы и системы:
* `Task` — класс для представления задач;
* `TaskBoard` — система для управления задачами;
* `Message` — класс для представления сообщений между агентами;
* `InboxSystem` — система для обмена сообщениями между агентами;
* `AgentInfo` — класс для представления информации об агентах;
* `TeamRegistry` — система для регистрации агентов и отслеживания их статуса.
4. Какие предварительно настроенные шаблоны команд доступны для запуска мультиагентного рабочего процесса в ClawTeam?
В ClawTeam доступны следующие предварительно настроенные шаблоны команд:
* AI Hedge Fund;
* Research Swarm;
* Engineering Team.
Эти шаблоны позволяют пользователям запускать полный мультиагентный рабочий процесс с помощью одной команды.
5. Какие методы используются для взаимодействия с OpenAI в рамках реализации ClawTeam?
Для взаимодействия с OpenAI в рамках реализации ClawTeam используется инициализация глобального клиента OpenAI и установка `gpt-4o-mini` в качестве модели по умолчанию для экономичного выполнения роя. Также используются инструменты вызова функций OpenAI, такие как `taskupdate`, `inboxsend`, `inboxreceive` и `tasklist`.