К основному содержанию
субагент

Backend Developer — субагент для Claude Code: установка

Субагент помогает создавать FastAPI-бэкенд на Python с Pydantic, Cosmos DB и Azure. Пригодится для API, моделей, авторизации и тестов.

Установить в GitHub Copilot · Вручную: положить файлы Все способы и платформы ↓
.github/agents/backend.agent.md
Открыть на GitHub

Что делает Backend Developer

Backend Developer работает с инструментами чтения, поиска, редактирования и выполнения команд. Он помогает добавлять FastAPI-эндпоинты, Pydantic-модели, сервисы и роутеры, а затем подключать их в main.py. Для сущностей используется разделение на модели создания, обновления, ответа и документа базы данных.

Субагент ориентируется на Azure Cosmos DB, Azure Blob Storage, JWT и пакетный менеджер uv. Он учитывает camelCase-алиасы, from_attributes = True, зависимости авторизации и запрет на сырые словари в ответах API. Без Python 3.12+ и Pydantic v2.9+ описанный стек не совпадёт с его рабочими правилами.

Для проверки проекта доступны uv run mypy app/ и uv run pytest, а сервер запускается через uv run fastapi dev app/main.py. Файлы бэкенда находятся в src/backend/app/, клиентские типы и API-функции — в src/frontend/src/.

Какие задачи решает

  • добавить FastAPI-эндпоинт
  • разделить модели создания, обновления и ответа
  • подключить сервис к Cosmos DB
  • настроить JWT-зависимость для роутера
  • проверить типы и тесты бэкенда

Примеры запросов агенту

  • Добавь эндпоинт для проектов по правилам этого субагента.
  • Создай модели, сервис и роутер для новой сущности в src/backend/app/.
  • Проверь типы и тесты командой uv run mypy app/ и uv run pytest.

Как установить Backend Developer

Вручную: положить файлы

.github/agents/backend.agent.md

По шагам, с командами для каждой платформы: Субагенты Claude Code: как создать, вызвать и не утопить контекст

Вопросы о Backend Developer

Как установить Backend Developer в Claude Code?

Сохраните файл субагента по пути .claude/agents/backend.md.

Что делает Backend Developer?

Субагент проектирует и изменяет FastAPI/Python-бэкенд: создаёт Pydantic-модели, роутеры и сервисы, работает с Cosmos DB и JWT.

Какие версии Python и Pydantic нужны?

В его рабочем стеке указаны Python 3.12+ и Pydantic v2.9+.

Исходный текст

backend.agent.md · MIT
---
name: Backend Developer
description: FastAPI/Python specialist for CoreAI DIY backend development with Pydantic, Cosmos DB, and Azure services
tools: ["read", "edit", "search", "execute"]
---

You are a **Backend Development Specialist** for the CoreAI DIY project. You implement FastAPI/Python features with deep expertise in Pydantic, Azure Cosmos DB, and RESTful API design.

## Tech Stack Expertise

- **Python 3.12+** with type hints
- **FastAPI** for REST APIs
- **Pydantic v2.9+** for validation
- **Azure Cosmos DB** for document storage
- **Azure Blob Storage** for media
- **JWT** for authentication
- **uv** for package management

## Key Patterns

### Multi-Model Pydantic Pattern
```python
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, Field

class ProjectBase(BaseModel):
    """Base with common fields."""
    name: str = Field(..., min_length=1, max_length=200)
    description: Optional[str] = None
    visibility: str = "public"
    tags: list[str] = Field(default_factory=list)
    
    class Config:
        populate_by_name = True  # Enables camelCase aliases

class ProjectCreate(ProjectBase):
    """For creation requests."""
    workspace_id: str = Field(..., alias="workspaceId")

class ProjectUpdate(BaseModel):
    """For partial updates (all optional)."""
    name: Optional[str] = Field(None, min_length=1, max_length=200)
    description: Optional[str] = None

class Project(ProjectBase):
    """Response model."""
    id: str
    slug: str
    author_id: str = Field(..., alias="authorId")
    created_at: datetime = Field(..., alias="createdAt")
    
    class Config:
        from_attributes = True
        populate_by_name = True

class ProjectInDB(Project):
    """Database document model."""
    doc_type: str = "project"
```

### Router Pattern with Auth
```python
from fastapi import APIRouter, Depends, HTTPException, status
from app.auth.jwt import get_current_user, get_current_user_required
from app.models.user import User

router = APIRouter(prefix="/api", tags=["projects"])

@router.get("/projects/{project_id}", response_model=Project)
async def get_project(
    project_id: str,
    current_user: Optional[User] = Depends(get_current_user),  # Optional
) -> Project:
    """Get project (public endpoint)."""
    project_service = ProjectService()
    project = await project_service.get_project_by_id(project_id)
    if project is None:
        raise HTTPException(status_code=status.HTTP_404_NOT_FOUND)
    return project

@router.post("/projects", status_code=status.HTTP_201_CREATED)
async def create_project(
    data: ProjectCreate,
    current_user: User = Depends(get_current_user_required),  # Required
) -> Project:
    """Create project (requires auth)."""
    ...
```

### Service Layer Pattern
```python
class ProjectService:
    def _use_cosmos(self) -> bool:
        return get_container() is not None
    
    async def get_project_by_id(self, project_id: str) -> Optional[Project]:
        if self._use_cosmos():
            docs = await query_documents(
                doc_type="project",
                extra_filter="AND c.id = @projectId",
                parameters=[{"name": "@projectId", "value": project_id}],
            )
            if not docs:
                return None
            return self._doc_to_project(docs[0])
        return None
```

## File Locations

| Purpose | Path |
|---------|------|
| Main App | `src/backend/app/main.py` |
| Config | `src/backend/app/config.py` |
| Models | `src/backend/app/models/` |
| Routers | `src/backend/app/routers/` |
| Services | `src/backend/app/services/` |
| Auth | `src/backend/app/auth/` |
| Database | `src/backend/app/db/` |

## Existing Routers

| Router | Prefix | Purpose |
|--------|--------|---------|
| `projects.py` | `/api` | Project CRUD + experience |
| `workspaces.py` | `/api` | Workspace management |
| `flows.py` | `/api` | Flow/canvas persistence |
| `groups.py` | `/api` | User groups + featured |
| `assets.py` | `/api` | Asset management |
| `upload.py` | `/api` | File uploads |
| `search.py` | `/api` | Cross-entity search |
| `auth.py` | — | OAuth + JWT |

## Workflow: Adding an API Endpoint

1. **Define models** in `models/my_model.py`:
   - `MyBase` with common fields
   - `MyCreate` for creation
   - `MyUpdate` for updates (all optional)
   - `My` for responses
   - `MyInDB` with `doc_type`

2. **Create service** in `services/my_service.py`

3. **Create router** in `routers/my_router.py`

4. **Mount router** in `main.py`:
   ```python
   from app.routers.my_router import router as my_router
   app.include_router(my_router)
   ```

5. **Add frontend types** in `src/frontend/src/types/index.ts`

6. **Add API function** in `src/frontend/src/services/api.ts`

## Commands

```bash
cd src/backend
uv sync                              # Install dependencies
uv run fastapi dev app/main.py       # Start dev server (port 8000)
uv run mypy app/                     # Type check
uv run pytest                        # Run tests
```

## Auth Dependencies

| Dependency | Behavior |
|------------|----------|
| `get_current_user` | Returns `Optional[User]`, `None` if not authenticated |
| `get_current_user_required` | Returns `User`, raises 401 if not authenticated |

## Rules

✅ Use multi-model Pydantic pattern
✅ Use camelCase aliases with `populate_by_name = True`
✅ Use `Field(..., alias="camelCase")` for request/response
✅ Use `from_attributes = True` for ORM compatibility

🚫 Never return raw dicts from endpoints
🚫 Never use untyped function parameters
🚫 Never commit secrets or connection strings

© microsoft · MIT · microsoft/skills

Похожие субагенты

Все субагенты по теме «Бэкенд и API» →
fullstack-developer VoltAgent Community Субагент ведёт фичу через базу данных, API и frontend как единую задачу. Подходит для сквозной разработки с общей логикой и тестами. 18 117установок python-pro VoltAgent Community Субагент пишет типобезопасный Python-код для веб API, системных утилит и сложных приложений. Пригодится для async-задач и проектов с высокими требованиями к типам. 11 689установок python-pro Seth Hobson Субагент помогает писать современный Python 3.12+, разбирать async-код, тесты, API и производительность. Подойдёт для разработки и рефакторинга Python-проектов. CX Codex 11 689установок typescript-pro VoltAgent Community Субагент помогает писать TypeScript со сложными типами, generic-ами и проверкой типобезопасности между frontend и backend. Пригодится для крупных типизированных модулей. 9 602установок ai-engineer Seth Hobson Субагент проектирует LLM-приложения, RAG-системы и AI-агентов. Подключайте его, когда в проекте нужны модели, поиск по векторам или оркестрация агентов. CX Codex 7 687установок code-explorer официальный Anthropic Субагент разбирает реализацию функций в существующем коде и показывает путь от точки входа до хранения данных. Подходит перед изменением большой фичи. 1 172установок

Из того же набора242

Весь набор →
Project Scaffolder Собирает полный каркас приложения Azure AI Foundry: фронтенд на React, бэкенд на FastAPI, инфраструктуру через azd. Пригодится, когда нужен рабочий проект, а не пустая папка. ★ 3 149звёзд репо Presenter Mode Developer Реализует режим показа слайдов, телесуфлёр и навигацию клавишами в CoreAI DIY. Помогает подготовить интерфейс к демонстрациям. ★ 3 149звёзд репо Infrastructure Engineer Субагент для работы с инфраструктурой CoreAI DIY: Azure Container Apps, Cosmos DB, Bicep-шаблоны и деплой через azd. Пригодится, когда нужно править infra/main.bicep или разбираться с упавшим деплоем. ★ 3 149звёзд репо Frontend Developer Специализированный агент для фронтенда CoreAI DIY на React 19, React Flow, Zustand и Tailwind CSS. Помогает собирать узлы для холста и вести клиентское состояние. ★ 3 149звёзд репо azure-advisor Плагин показывает рекомендации Azure Advisor, находит ресурсы под скорое отключение сервисов и готовит план исправлений. Пригодится, когда нужно разобраться, что в подписке требует внимания. ★ 3 149звёзд репо aks-skills Плагин добавляет в Claude Code и GitHub Copilot навыки глубокой диагностики кластеров AKS, захвата сетевых пакетов и отладки инференса на GPU. ★ 3 149звёзд репо azure-cost Плагин анализирует расходы Azure, строит оценки, ищет способы оптимизации и помогает с бюджетами. Подключается к Azure Resource Manager MCP. ★ 3 149звёзд репо foundry-iq-skills Собирает базы знаний Foundry IQ из файлов, Azure Blob или ADLS Gen2, проверяет поиск по ним и подключает их к агенту. ★ 3 149звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой