# Инструкция для coding-агента участника Передай этот файл агенту, который готовит твой репозиторий к AgentScore. ## Обязательная модель Все оценочные запуски выполняются на **DeepSeek V4.1 Flash**: точный model ID `deepseek-v4.1-flash`, thinking **high**. Имя оболочки (Codex, Claude Code, OpenCode или собственный агент) не меняет модель тестирования. Другие модели, fallback-провайдеры и внешние embeddings запрещены. Организатор передаёт переменные окружения: ```dotenv OPENAI_BASE_URL=http://agent-bench-model-gateway:3130/v1 OPENAI_API_KEY=<временный токен задачи> OPENAI_MODEL=deepseek-v4.1-flash ``` Не зашивай URL, токен или модель в исходники. Принимай env или CLI-параметры `--base-url`, `--model`; секрет передавай только через env. В среде участника может быть свой URL. Адрес стенда доступен только внутри его контейнеров. Для самостоятельных проверок Ollama: `https://ollama.com/v1` и собственный ключ. Такие проверки оплачиваются отдельно владельцем ключа. Поддерживаемые протоколы: OpenAI Responses (`/responses`) и Chat Completions (`/chat/completions`), JSON-schema function tools и streaming. Сохраняй историю на стороне клиента, передавай результаты инструментов. Не используй `previous_response_id`, hosted tools, server-side conversation или background. Для Anthropic Messages оператор выдаёт `ANTHROPIC_BASE_URL` без `/v1` и `ANTHROPIC_AUTH_TOKEN`; не подставляй OpenAI URL без учёта пути протокола. ## Что присылать Один публичный GitHub-репозиторий, **полный commit SHA из 40 hex-символов**, `agent.json` в корне, README с установкой и lock-файл зависимостей. Ссылки на ветку, ZIP, промпт без программы, готовые патчи задач и одни лишь скриншоты результатов не являются исполнимой заявкой. ```json { "schema_version": 1, "name": "my-coding-agent", "entrypoint": ["python", "/agent/agent.py", "--task-file", "/task/TASK.md", "--workspace", "/testbed"], "runtime": "Python 3.12; dependencies in uv.lock", "model": "deepseek-v4.1-flash", "thinking": "high", "required_env": ["OPENAI_API_KEY", "OPENAI_BASE_URL", "OPENAI_MODEL"] } ``` `entrypoint` — массив аргументов процесса, не shell-строка. Код участника оператор размещает в `/agent` только для чтения; команда запускается с cwd `/testbed`. Относительные пути к скриптам разрешай от `/agent`, не от cwd. `runtime` описывает конкретную версию интерпретатора и lock-файл, не `latest`. Для Node.js аналогично: `node /agent/agent.mjs`, package-lock.json и версия Node. Зависимости устанавливает оператор при сборке, до отключения сети. Произвольный Dockerfile из заявки автоматически не собирается. ## Вход и результат - `/task/TASK.md` — UTF-8 текст настоящей issue из SWE-bench Verified. - `/testbed` — исходный репозиторий задачи; изменяй файлы здесь. - Зависимости тестов лежат в conda-окружении `testbed`: `conda run -n testbed python -m pytest …` (команда зависит от репозитория). - Агент работает без интерактивных вопросов и завершает процесс. - Оценщик забирает `git diff`, включая новые файлы. Финальный текст, stdout JSON, самооценка агента и присланный участником результат не дают баллов. - Не меняй `.git`, оценщик или файлы вне рабочей папки. Не ищи gold patch, будущие коммиты, готовые решения issue или скрытые проверки. ## Ограничения 600 секунд, 2 CPU, 2 GiB RAM; одна попытка на задачу. В серии 03 число модельных запросов и расчётный бюджет не ограничены. 4096 output tokens на запрос, тело HTTP до 4 MiB, thinking high, temperature 0.2. Шлюз фиксирует модель и ведёт учёт токенов. HTTP 413 означает слишком большой запрос: сокращай историю вместо бесконечного повтора. Внешняя сеть, MCP и делегирование другим агентам выключены; локальные subprocess для тестов разрешены. Используй ограниченный поиск, чтение диапазона строк и сокращение истории. Не выгружай всё дерево вместе с `.git` и содержимым больших файлов в контекст. Интерактивные подтверждения замени явным режимом автономной работы только в одноразовом workspace. Проверь локально, что агент действительно меняет файл. ## Оценка и допуск Текущая серия — 30 задач SWE-bench Verified и пять базовых агентов. Основной балл — число полностью решённых задач по официальному SWE-bench harness. Правило ничьей: средняя доля FAIL_TO_PASS, прошедших в каждой задаче; задача с любой регрессией PASS_TO_PASS или неполным отчётом получает 0 вторичных баллов. Пустой патч — 0. Далее меньшая верхняя оценка API-расхода; точное равенство оставляет общее место. Это дополнительная метрика нашего стенда, а не официальный SWE-bench score. Ошибки инфраструктуры приостанавливают оценку, не превращаются в проигрыш. Заявку отправляет автор через форму с именем, репозиторием, SHA и контактом. Не отправляй API-ключи. Форма только сохраняет заявку: оператор читает код, выполняет предварительную проверку DeepSeek и принимает решение о допуске. Автоматического запуска присланного кода и гарантии участия нет. Полное описание протоколов: [connecting.md](/connecting.md). Набор задач и детальные отчёты публично не раскрываются.