DSH PUA

# DSH PUA **Помогите агенту попробовать другой подход и проверить свою работу, прежде чем считать её выполненной.** [English](README.md) · [简体中文](README.zh-CN.md) · [Возможности](#возможности) · [Скриншоты](#скриншоты) · [Установка](#установка) · [Использование](#использование) · [Настройка](#настройка) · [Команды](#основные-команды) · [События сессии](#события-сессии) · [История изменений](CHANGELOG.md) [![npm version](https://img.shields.io/npm/v/%40michengai%2Fdsh-pua.svg?label=npm%20version)](https://www.npmjs.com/package/@michengai/dsh-pua) [![npm downloads](https://img.shields.io/npm/dt/%40michengai%2Fdsh-pua.svg?label=downloads)](https://www.npmjs.com/package/@michengai/dsh-pua) [![CI](https://github.com/MichengAI/dsh-pua/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MichengAI/dsh-pua/actions/workflows/ci.yml) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE) [![DSH Web Plugin](https://img.shields.io/badge/DSH%20Web-Plugin-0f766e.svg)](https://github.com/deepseek-ai/deepseek-harness) [![Node.js 22.19+](https://img.shields.io/badge/Node.js-22.19%2B-339933.svg?logo=node.js&logoColor=white)](https://nodejs.org/)
> DSH PUA приносит [PUA](https://github.com/tanweai/pua) в DeepSeek Harness. Когда агент многократно терпит неудачу, сдаётся слишком рано или заявляет о завершении без проверки, плагин поощряет другой подход, исследование и доказательства. Поддерживается сообществом; не является официальным продуктом DeepSeek AI или PUA. ## Возможности - **Попробовать другой подход**: подтолкнуть агента пересмотреть свои рассуждения вместо повторения неэффективных попыток. - **Проверить перед заявлением о завершении**: поощрять проверку и доказательства результата. - **Выбрать стиль**: 15 стилей, вдохновлённых компаниями, а также режимы P7, P9, P10, поощрение, «мама» и другие персоны. - **Настройка через интерфейс**: сохраняйте глобальные настройки в настройках плагина и меняйте отдельные беседы прямо из чата. - **Продолжать на основе проверки**: запускайте Loop, чтобы работать, пока проверка не пройдёт, не будет достигнут предел итераций или вы не отмените. - **Защита целостности**: запрещать чтение скрытых эталонных ответов, включая веб-поиск по ним, и напоминать перед правками тестов, оценочных или CI-ресурсов. - **Markdown-таблицы**: статус, прогресс и KPI-панели используют GFM pipe-таблицы, которые DSH умеет рендерить, вместо Unicode-рисования. Результат зависит от модели и задачи. Плагин не гарантирует решение в каждом случае. ## Скриншоты ### Глобальные настройки Откройте «Плагины» в боковой панели, затем `@michengai/dsh-pua`, чтобы задать включение по умолчанию, стиль, персону и поведение субагентов. Более старые DSH-хосты всё ещё используют Настройки → Плагины → PUA Configuration. На скриншотах показан китайский интерфейс. ![Глобальные настройки PUA с включением, стилем, персоной и опциями субагентов](assets/screenshots/pua-global-settings.png) ### Текущая беседа Нажмите **PUA** справа от «Эксперты», чтобы настроить текущую беседу. Восстановите отдельные значения по умолчанию или запустите и отмените Loop из той же панели. ![Вход PUA в чате и панель конфигурации текущей беседы](assets/screenshots/pua-session-settings.png) ## Экосистема продуктов DSH Для настольной среды скачайте [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases). Существующие установки [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) могут добавлять плагины по мере необходимости, следуя README каждого проекта. Ниже перечислены 11 сторонних плагинов; смотрите соответствующие примечания к выпускам и встроенный каталог, чтобы узнать, что включает конкретная версия. | Плагин | Что вы можете делать | | --- | --- | | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | Организовывать проекты и беседы, искать задачи, навигировать по ходам чата | | [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | Выбирать и вызывать специалистов для вашей задачи | | [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | Находить, включать, создавать и импортировать локальные навыки | | [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | Искать, восстанавливать или очищать архивные беседы | | [IM Connect](https://github.com/MichengAI/dsh-im-connect) | Отправлять задачи и получать ответы через мессенджеры | | [Automation](https://github.com/MichengAI/dsh-automation) | Планировать задачи и проверять каждый запуск | | [BTW](https://github.com/MichengAI/dsh-btw) | Задавать побочные вопросы, не прерывая основную задачу | | [Simplify](https://github.com/MichengAI/dsh-simplify) | Использовать `/simplify` для улучшения кода в ваших изменениях Git | | [PUA](https://github.com/MichengAI/dsh-pua) | Направлять агента пробовать новые подходы после неудач, исследовать причины и проверять результаты перед завершением | | [Code Review](https://github.com/MichengAI/dsh-code-review) | Использовать `/review` для запроса независимого код-ревью агентом и получать отчёт в текущей беседе | | [Codex Pet](https://github.com/MichengAI/dsh-codex-pet) | Просматривать уведомления беседы и отвечать на одобрения инструментов и вопросы через настольного питомца | ## Установка Требуется Node.js 22.19 или новее и DSH `0.1.2-rc.1`, `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.5-rc.3`, `0.1.7-rc.1`, `0.1.7-rc.2`, `0.2.0-rc.1`, `0.2.0-rc.2`, `0.2.1-alpha.2` или `0.2.1-alpha.3`. Использует вашу существующую конфигурацию моделей DSH; дополнительный API-ключ не нужен. GitHub и npm включают готовый к запуску `lib`. После изменения исходников выполните `npm run build` перед коммитом. В примерах используется профиль `web`. Замените его на тот профиль, которым вы пользуетесь. ### Попросить агента установить плагин Отправьте это агенту, который может выполнять команды на вашем компьютере: ```text Install @michengai/dsh-pua into my local DSH web profile by running dsh plugin --profile web add @michengai/dsh-pua@latest --registry=https://registry.npmjs.org/. Check that the plugin loads, then explain how to open PUA settings. ``` ### Установка вручную ```powershell [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Text.Encoding]::UTF8 dsh plugin --profile web add @michengai/dsh-pua@latest --registry=https://registry.npmjs.org/ ``` После завершения текущей задачи перезагрузите DSH или перезапустите его веб-сервис. Простого обновления страницы недостаточно. Введите `/pua help`, чтобы проверить, что плагин доступен. ## Использование 1. Откройте «Плагины» в боковой панели, откройте `@michengai/dsh-pua` и используйте страницу пакета или строку `michengai-pua`. На более старых DSH-хостах разверните PUA Configuration в Настройки → Плагины. 2. Включите «Разрешить PUA», выберите стиль и персону и сохраните. Это лишь показывает `/pua` и вход в чате. Сам по себе он ничего не внедряет. 3. Вернитесь в чат, включите текущую беседу через `/pua` или вход в чате, затем отправьте задачу. **PUA** появляется справа от «Эксперты» в композере. Нажмите, чтобы просмотреть или настроить текущую беседу. Когда беседа выключена, иконка — это символ питания, а подпись не зачёркнута; глобальное отключение скрывает вход. ## Настройка **Глобальный переключатель лишь управляет тем, доступны ли `/pua` и вход в чате. Настройки чата и команды влияют только на текущую беседу, которая по умолчанию выключена.** После обновления более старые беседы, которые никогда явно не включались и не выключались, также возвращаются в состояние «выключено». Они не продолжают внедряться. Беседы, изменённые с помощью `/pua on`, `/pua off` или входа в чате, сохраняют свой сохранённый переключатель. Неизменённые параметры следуют глобальным значениям по умолчанию. Правка параметра переопределяет только его. Выберите «Восстановить по умолчанию», чтобы снова следовать глобальному значению, или восстановите все параметры сразу. | Параметр | Что делает | | --- | --- | | Разрешить PUA | Управляет командой и входом в чате. Разрешено по умолчанию; отключение скрывает оба и блокирует включение этой беседы. Само по себе ничего не внедряет | | Переключатель беседы | Выключен по умолчанию. `/pua` или вход в чате включает внедрение только для этой беседы | | Стиль и персона | Выбрать стиль автоматически или выбрать конкретный стиль и персону | | Язык интерфейса | Следовать языку хоста автоматически или зафиксировать китайский / английский | | Включить для субагентов | Выключено по умолчанию; включите, когда специалисты и другие субагенты также должны использовать PUA | | Напоминания о корректировках | Настроить проверки терминала, эскалацию ошибок и напоминания о качестве | | Защита целостности | Выключена по умолчанию; при включении запрещает чтение скрытых эталонных ответов и напоминает при правках тестов, оценочных или CI-ресурсов | | Напоминания об обратной связи | Изменить частоту напоминаний или выключить их; обратная связь не выгружается | | Значения по умолчанию Loop | Задать команду проверки, таймаут и предел итераций | Начиная с `0.3.0`, команды больше не изменяют глобальные настройки. Включение субагентов также зависит от переключателя PUA родительской беседы. ### Продолжать, пока проверка не пройдёт В панели PUA в чате введите задачу Loop, команду проверки и предел итераций, затем запустите. Например, попросите агента исправить падающие тесты, проверить через `npm test` и остановиться не более чем через 10 итераций. Можно также ввести: ```text /pua loop "Fix the failing tests and add regression coverage" --verify "npm test" --max-iterations 10 ``` Введите `/pua-cancel-loop` или `/pua cancel-loop`, чтобы остановить. Отключение PUA для текущей беседы также отменяет её Loop, но не отменяет уже выполненные операции. Задайте команду проверки и предел итераций при использовании Loop. Без команды проверки завершение полагается на отчёт модели. Предел итераций 0 означает неограниченные итерации. ## Основные команды Повседневные переключатели, стили и персоны доступны в интерфейсе; запоминать команды необязательно. | Цель | Команда | | --- | --- | | Включить или выключить PUA для этой беседы | `/pua on`, `/pua off` | | Выбрать стиль | `/pua flavor huawei` | | Попросить другой подход | `/pua again` | | Проверить, выполнена ли задача | `/pua done-check` | | Проверить доказательства доставки | `/pua evidence` | | Просмотреть текущие изменения без правок | `/pua review` | | Восстановить глобальные значения по умолчанию для этой беседы | `/pua reset` | | Отменить проверочный Loop | `/pua-cancel-loop`, `/pua cancel-loop` | | Посмотреть статус или полное использование | `/pua status`, `/pua help` | ## События сессии Этот плагин не добавляет собственный тип события. Хост отклоняет неизвестные обязательные события при воспроизведении, а append не имеет флага игнорирования. Заметки, записанные плагином, являются обычными событиями `user/message` с `role: "user"`. Не считайте пользовательский ход по одному лишь `type`. Различите их по `data.source`: | Происхождение | Текущие хосты (формат сессии 4 или новее) | Более старые хосты | | --- | --- | --- | | Заметки рантайма и сохранённые наблюдения | `kind` равен `plugin:@michengai/dsh-pua/runtime` | `kind` равен `plugin`, а `plugin` равен `@michengai/dsh-pua/runtime` | | Текст, отправленный через `/pua` и затем поставленный в очередь как follow-up или steer | `kind` равен `plugin:@michengai/dsh-pua` | `kind` равен `plugin`, а `plugin` равен `@michengai/dsh-pua` | Настоящее сообщение пользователя имеет `source.kind === "user"`. Каждое сохранённое наблюдение рантайма оставляет два события `user/message` в сыром журнале. Первое несёт префикс `PUA_RUNTIME_V1` и JSON, чтобы восстановление могло его прочитать. Второе — это поверхностная замена той же последовательности; видимый модели текст — только короткая заметка. Второе событие не является ещё одним пользовательским ходом. Сырой JSON остаётся в журнале и не является частью заменённой модели-видимой поверхности. ## Удаление ```powershell [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Text.Encoding]::UTF8 dsh plugin --profile web remove @michengai/dsh-pua ``` Перезагрузите DSH, чтобы изменение вступило в силу. Файлы проекта и история бесед сохраняются. ## Лицензия и атрибуция Адаптировано из [tanweai/pua](https://github.com/tanweai/pua) 3.5.1. Возможности персон и совместной работы зависят от того, что поддерживает DSH. Код оригинального проекта использует [Apache License 2.0](LICENSE). Включённые ресурсы PUA сохраняют заявленную апстримом лицензию MIT и атрибуцию; см. [NOTICE](NOTICE).