Для задач разработки используем production-ready инструменты вместо написания своих агентов.
Автономный coding agent с уровнями автономности.
# Интерактивный режим
droid
# Single-shot (для автоматизации)
droid exec "Implement feature X" --autonomy high
# Из файла (используется в coding-worker)
droid exec --prompt-file TASK.md --skip-permissions-unsafeAutonomy levels: low (много подтверждений), medium, high (полная автономия).
Claude Code — CLI-инструмент от Anthropic для agentic coding. Реализован наравне с Droid.
# Установка (native installer)
curl -fsSL https://claude.ai/install.sh | sh
# Использование
claude -p "Implement user registration endpoint"
# Pipe
cat error.log | claude -p "Fix this error"Контекст: Нативно использует CLAUDE.md файлы. Worker-manager автоматически маппит INSTRUCTIONS.md → CLAUDE.md.
Цена: Pro/Max подписка (~$20-100/мес), дешевле чем API.
Codex is available only for developer workers. The image pins Codex CLI
0.144.6; the wrapper runs it non-interactively:
codex exec --sandbox workspace-write \
--config sandbox_workspace_write.network_access=true \
"Read TASK.md and AGENTS.md, then complete the task described in TASK.md."The task is in /workspace/TASK.md, and the shared developer instructions are
in /workspace/AGENTS.md. The agent must report success or failure through
POST http://localhost:9090/result. CLI stdout and stderr are diagnostics and
are neither accepted as the business result nor persisted for Codex workers.
The per-run network override is required because workspace-write otherwise
blocks the agent's localhost result call, dependency access, and Git push. The
Docker worker network remains the outer isolation boundary.
Do not mount the operator's live ~/.codex. Create a separate profile on the
Docker host and log in once with device authentication:
install -d -m 0700 "$HOME/.codex-worker"
printf 'cli_auth_credentials_store = "file"\n' > "$HOME/.codex-worker/config.toml"
chmod 0600 "$HOME/.codex-worker/config.toml"
CODEX_HOME="$HOME/.codex-worker" codex login --device-auth
chmod 0600 "$HOME/.codex-worker/auth.json"Set HOST_CODEX_HOME=/home/youruser/.codex-worker in .env, then rebuild the
worker images. Worker-manager requires directory mode 0700, file modes
0600, access and refresh tokens in a valid auth.json, and
cli_auth_credentials_store = "file". A missing or unsuitable profile stops
Codex worker creation before image resolution. The profile is mounted
read-write only into Codex containers at /home/worker/.codex so refreshed
tokens persist. Claude, Factory, and noop workers do not receive this mount.
See the official authentication and non-interactive mode documentation for the upstream behavior.
Developer node в Engineering Subgraph использует coding agents через worker-manager сервис (PO не использует контейнеры — это LangGraph ReactAgent):
При создании проекта PO передаёт выбранного developer-воркера в
create_project(agent_type="claude" | "factory" | "codex"). Значение сохраняется
в project.config.agent_type и действует для engineering-задач этого проекта.
Если выбор не указан, используется claude. Неизвестное значение отклоняется до
создания проекта.
- Worker-manager создаёт контейнер из worker-base образа
- Монтирует pre-scaffolded workspace (
/data/workspaces/{repo_id}/) — код уже на месте - Worker-manager creates/checks out story feature branch (
story/{story_id}) - Инжектит статические инструкции из
services/langgraph/src/prompts/developer_worker/INSTRUCTIONS.md→ agent-specific file (CLAUDE.md/AGENTS.md) - Инжектит динамический
TASK.mdв/workspace/TASK.mdс project-specific задачей. Previous tasks archived in.story/old_tasks/ - Запускает coding agent (Droid, Claude Code или Codex) в non-interactive режиме
- Агент коммитит и пушит на feature branch. Worker-wrapper pulls from current branch (not hardcoded
main) - Агент сообщает результат через HTTP:
curl -X POST localhost:9090/result -d '{"success":true,"commit":"<sha>","summary":"..."}' - При невозможности выполнения:
curl -X POST localhost:9090/result -d '{"success":false,"reason":"..."}'
Worker-wrapper HTTP сервер (localhost:9090):
POST /result— единый endpoint для результатов (success/failure). Auto-resume: если агент завершается без вызова/result, wrapper автоматически перезапускает его один раз.POST /infra/compose— compose proxy для управления sidecar-инфраструктурой (db, redis). Проксируется в worker-manager.- Makefile override targets (
make migrate,make dev-start) внутри воркера используютcurl localhost:9090/infra/compose.
| Узел | Инструмент | Статус |
|---|---|---|
| Scaffolder | Copier template | ✅ Реализовано |
| Developer | Factory.ai Droid / Claude Code / OpenAI Codex | ✅ Реализовано (Native execution, Flat Dev Environment) |
| Tester | Функциональный узел (запуск тестов) | make) |
| DevOps | GitHub Actions (deploy.yml) | ✅ Реализовано |