OpenPisci
njbinbin-pisci/openpisciЛокальный AI-агент на Tauri 2 + Rust + React для Windows/macOS/Linux. Поддерживает Claude, GPT, DeepSeek и другие LLM. Трёхуровневая агентная система (Pisci/Koi/Fish), интеграция с Feishu/WeChat, MCP, долгосрочная память и многоагентное сотрудничество.
Установка
git clone https://github.com/njbinbin-pisci/openpisci.gitREADME
🐟 OpenPisci
Десктопный AI-агент с открытым исходным кодом
OpenPisci — локальное десктопное приложение AI-агента, построенное на Tauri 2 + Rust + React. Начиная с v0.7.0 проект был существенно переработан в многоуровневую архитектуру: pisci-core (чистая логика совместной работы/домена), pisci-kernel (ядро среды выполнения, независимое от ОС и UI), pisci-desktop (десктопная оболочка Tauri) и pisci-cli (headless-запуск). Pisci — главный агент, Koi — постоянные агенты совместной работы, Fish — временные stateless-субагенты.
Текущий статус платформ
- Windows: основная поддерживаемая цель десктопного релиза
- macOS / Linux: поддержка нативной сборки и CI-пакетирования добавлена в
v0.7.0 - iOS / Android: пока не поддерживается
中文 | English
Если вы клонировали этот проект, уделите 2 секунды и поставьте ⭐ — это единственный способ узнать, где оказался код.

✨ Ключевые возможности
🤖 Мощные возможности агента
- Поддержка нескольких LLM: Claude (Anthropic), GPT (OpenAI), DeepSeek, Qwen, Zhipu, Kimi, MiniMax и любой OpenAI-совместимый эндпоинт
- Потоковые ответы: опциональная потоковая передача вывода модели токен за токеном в основном чат-интерфейсе
- Автоматическое извлечение памяти: после каждого разговора LLM-проход извлекает 0–3 ключевых факта и сохраняет их как долгосрочные воспоминания; релевантные воспоминания автоматически подставляются в будущих сессиях
- Активная память: агент может вызывать инструмент
memory_storeв середине разговора для сохранения важной информации - Декомпозиция задач: сложные задачи разбиваются и выполняются пошагово через HostAgent
- Восстановление после сбоев: контрольные точки записываются на каждой итерации; агент возобновляет работу с последней точки после сбоя
- Механизм heartbeat: настраиваемый периодический heartbeat для проактивной проверки задач
- Обнаружение циклов: четыре детектора (GenericRepeat / KnownPollNoProgress / PingPong / GlobalCircuitBreaker) предотвращают зависание агента в бесконечных циклах
- Интеграция MCP: контекстно-зависимая регистрация MCP-инструментов позволяет основному чату и сценам задач подключаться к внешним серверам инструментов через Model Context Protocol
- Жёсткие линты для всего workspace: линты Rust workspace работают с флагом
-D warnings, чтобы предотвратить накопление мёртвого кода, неиспользуемых импортов и отладочных артефактов
🐟 Pisci / Koi / Fish: три уровня агентов
| Роль | Позиционирование | Жизненный цикл | Типичные обязанности | Взаимодействие |
|---|---|---|---|---|
Pisci | Главный агент / менеджер проекта / точка входа для пользователя | Постоянный | Общается с пользователем, использует инструменты, создаёт пулы проектов, координирует многоагентную работу, решает, можно ли завершить проект | Организует Koi и может делегировать разовую работу Fish |
Koi | Постоянный агент совместной работы | Постоянный, переиспользуется между проектами | Выполняет долгосрочные роли в проекте: архитектор, разработчик, тестировщик, ревьюер, исследователь | Сотрудничает внутри пула через pool_chat, упоминает коллег через @, при необходимости эскалирует к @pisci |
Fish | Stateless временный субагент | Эфемерный / по требованию | Выполняет сфокусированную работу: пакетное сканирование, исследования, суммаризация, изолированные подзадачи | Вызывается через call_fish; не участвует напрямую в совместной работе пула |
Простая ментальная модель:
Pisci— ответственный координатор.Koi— долгосрочные члены команды для устойчивого сотрудничества.Fish— временные исполнители, которые выполняют задачу и возвращают только итоговый результат.
Ключевые отличия:
Pisciрешает, создавать ли пул, как организовать работу, когда продолжать и когда просить пользователя подтвердить завершение проекта.Koiимеют стабильные идентичности, собственное владение задачами и проектно-ориентированное постоянное поведение при совместной работе.Fishне поддерживают долгосрочное состояние проекта и предназначены для защиты основного контекстного окна от промежуточного шума.
🏞️ Что находится внутри пруда

Пруд — это не единственный агент. Это рабочее пространство совместной работы вокруг проекта:
- Пул проекта (
Pool Session): контейнер проекта с именем, статусом, спецификацией организации (org_spec) и опциональнымproject_dir - Pool Chat: общее пространство разговора, где Pisci и Koi обсуждают задачи, передают работу, задают вопросы и упоминают друг друга через @
- Board / Kanban: визуализирует задачи Koi в статусах
todo / in_progress / blocked / done / cancelled - Koi Panel: отображает идентичность, роль, доступность и загрузку каждого Koi
- Pisci Inbox / Heartbeat: входящие Pisci на уровне проекта для
@pisci, heartbeat-сканирований и сигналов состояния - База знаний (
kb/): общее пространство документации проекта для архитектуры, заметок по API, багов, решений и исследований - Директория проекта / Git Worktrees: при настроенном
project_dirKoi могут работать в изолированных ветках/worktrees для снижения конфликтов файлов
🤝 Как работает совместная работа в пруду

Типичный проект в пруду следует такому механизму:
-
Пользователь запускает проект
- Пользователь может запустить его из приложения или из IM-каналов, например Feishu, попросив Pisci создать пул проекта
- Pisci использует
pool_org(action="create")для создания пула и записи егоorg_spec
-
Pisci организует команду
- Pisci выбирает подходящие роли Koi на основе проекта
- Pisci должен в первую очередь запускать работу, отправляя сообщения
@KoiNameвpool_chat, а не через жёсткое последовательное назначение
-
Koi сотрудничают автономно
- Koi сообщают о прогрессе, запрашивают ревью, передают работу и сообщают о блокерах внутри
pool_chat @mention— это сообщение, а не жёсткая команда: упомянутый Koi сам решает, реагировать ли немедленно, продолжать текущую работу или попросить Pisci скоординировать@allпозволяет транслировать сообщение всему пулу
- Koi сообщают о прогрессе, запрашивают ревью, передают работу и сообщают о блокерах внутри