Skip to content

Latest commit

 

History

History
147 lines (111 loc) · 10.1 KB

File metadata and controls

147 lines (111 loc) · 10.1 KB

TODO — CoreAI: Что не хватает для полной реализации архитектуры

Обновлено: 2026-05-08 | Текущая версия (UPM): com.nexoider.coreai и com.nexoider.coreaiunity2.3.0.


🔴 КРИТИЧНО — решить в ближайших версиях

Все критичные пункты закрыты. См. архив ниже.

Сейчас нет открытых критичных задач.


🟡 ВАЖНО — следующие версии

Все задачи из этого раздела были реализованы в v2.1.0–v2.3.0. Новые задачи будут добавлены по мере появления.


🔵 УЛУЧШЕНИЯ — когда будет время

Multi-Agent Orchestration (future)

  • Автоматизированный MultiAgentWorkflow — агенты сами вызывают pipeline суб-агентов (как в Claude Agent SDK).
  • Передача результатов между суб-агентами без главного потока (tool_result).
  • Условная логика вызова (если качество > 80, вызвать Programmer).
  • Параллельное исполнение задач несколькими агентами.
  • Тест: MultiAgentWorkflowEndToEndTests.

CraftingTool

  • Специализированная функция для расчёта крафта для CoreMechanicAI.

Lua Runtime улучшения

  • Lua coroutine limitLuaCoroutineRunner нет лимита на количество корутин. MaxActiveCoroutines = 64 с отклонением сверх лимита.
  • Lua async-API — из Lua нельзя дождаться async-операций C#. Желательно: LuaAsyncBridge с await_task(task_id) через Promise-семантику.
  • Lua script rate limit — Programmer может зациклить создание скриптов. Sliding-window limiter на LuaAiEnvelopeProcessor.
  • Repair loop на CoreMechanicAI — ошибки Lua у CoreMechanicAI нужно направлять в Programmer.

Sandbox чистка

  • LuaCoroutineHandle.Kill() — сейчас внутри пустые try {} catch {}, только _disposed = true. Либо удалить мёртвый код, либо реально прервать через ScriptRuntimeException.
  • SecureLuaEnvironment.CreateScript — дважды цепляет InstructionLimitDebugger. Рефакторинг: вынести attach/detach целиком в LuaExecutionGuard.
  • Sandbox escape тестыstring.dump, coroutine.close, collectgarbage("count") как timing-oracle, _G через _ENV. Suite: LuaSandboxEscapeTests.

📚 Документация — недостающие файлы

  • LUA_SANDBOX_SECURITY.md — что вырезано, какие защиты есть (steps / timeout), известные векторы атак, best practices для LuaApiRegistry.
  • TOOL_CALLING_BEST_PRACTICES.md — как делать идемпотентные тулы, когда ставить AllowDuplicates=true, как правильно возвращать ошибки, как использовать SkillSet для организации.

✅ Сделано (архив)

Закрытые задачи (кликни чтобы развернуть)

v2.3.0 — Dual-Backend with Auto-Fallback (2026-05-08)

  • FallbackLlmClientDecorator — primary fail → auto-retry на secondary. Streaming fallback.
  • CoreAISettingsAsset — 🔄 Fallback Backend секция: enableFallbackBackend, secondaryApiBaseUrl, secondaryApiKey, secondaryModelName.
  • LlmPipelineInstaller — auto-wiring: при HasValidFallbackBackend primary оборачивается в FallbackLlmClientDecorator.
  • 5 EditMode тестов — primary OK, primary fail, retryable error, cancellation, counter.
  • Changelogs, package.json (2.3.0), READMEs, TODO обновлены.

v2.2.0 — Tool History Truncation & Rate Metrics (2026-05-08)

  • MaxToolCallHistoryMessages (default 20) — SmartToolCallingChatClient.TrimToolCallHistory() удаляет старые пары Assistant+Tool.
  • RateLimiterMetrics struct — MaxRequestsPerWindow, WindowSeconds, AcceptedInWindow, TotalRejected.
  • IInGameLlmChatService.GetRateLimiterMetrics() — доступ к метрикам из UI/Dashboard.
  • InGameLlmChatService_totalRejected счётчик отклонённых запросов.
  • CoreAISettingsAssetmaxToolCallHistoryMessages в Inspector 🛡️ Resilience & Safety.
  • maxConsecutiveErrors — подтверждено, что глобальный retry через ToolExecutionPolicy покрывает все сценарии. Per-tool retry не нужен.
  • Changelogs, package.json (2.2.0), TODO обновлены.

v2.1.0 — Production Resilience (2026-05-08)

  • MaxToolResultChars (default 8000) — soft-truncation в ToolExecutionPolicy, […truncated] суффикс.
  • DefaultToolTimeoutMs (default 30000) — linked CancellationTokenSource в ToolExecutionPolicy.ExecuteSingleAsync.
  • MaxResponseChars (default 0/выкл) — truncation в SmartToolCallingChatClient.
  • MaxToolCallRoundtrips (default 10) — loop guard в SmartToolCallingChatClient.
  • ICoreAISettings — 4 новых свойства с дефолтами.
  • CoreAISettingsAsset — Inspector foldout 🛡️ Resilience & Safety с тултипами.
  • ResilienceFeaturesEditModeTests — 8 тестов (truncation, timeout, roundtrips).
  • Anti-thinking prompt instructions в PlayMode тестах для Qwen3.5.
  • Changelogs, READMEs, AGENT_BUILDER.md обновлены.

v2.1.0 — Self-Service Skills (2026-05-08)

  • Self-service skill pattern — модель сама вызывает read_skill(name) для загрузки инструкций по требованию (паттерн Cursor read_file).
  • SkillSet API — добавлен Description (короткое описание для каталога), BuildCatalog() для лёгкого каталога в промпте.
  • ReadSkillLlmTool — мета-тул read_skill, автоматически регистрируется при WithSkill(). Case-insensitive, fuzzy matching.
  • SkillRuntimeContextProvider — инъектирует каталог (не полные инструкции) в system prompt.
  • AgentMemoryPolicy.AddToolForRole() — добавление одного тула к роли.
  • SkillSetAsset (CoreAiUnity) — ScriptableObject для удобного создания скиллов через Inspector (TextAsset + inline инструкции).
  • EditMode тесты — конструкторы, каталог, read_skill (known/unknown/case-insensitive), AgentBuilder интеграция.
  • PlayMode тесты — FastNoLlm (каталог в промпте, read_skill зарегистрирован, AllowedToolNames совместимость), LLM реальный тест.
  • Обновлены AGENT_BUILDER.md, benchmark тесты.
  • Аудит готовых библиотек: Semantic Kernel (❌ .NET 8+), LLMTornado (❌ .NET 8+), MEAI (✅ уже используется).

v2.0.0 — SkillSet Manual Mode (2026-05-08)

  • SkillSet — именованные группы инструментов с промпт-инструкциями (паттерн Semantic Kernel KernelPlugin).
  • AgentBuilder.WithSkill / WithSkills — fluent API регистрации скиллов.
  • SkillSet.FromFile / FromTextContent — загрузка инструкций из файлов и TextAsset.

v1.6.0+ — WebGL SSE streaming

  • fetch-SSE / jslibCoreAiSseFetch.jslib, FetchSseOpenAiTransport, WebGlNativeStreaming (по умолчанию вкл с v1.6.13).
  • STREAMING_ARCHITECTURE.md — полное описание pipeline.

v1.5.x — Архитектура и аудит

  • Замена статического CoreAISettings на DI-интерфейс ICoreAISettings.
  • Метрики оркестрации → InMemoryAiOrchestrationMetrics.
  • Dashboard (OrchestrationDashboard, F9).
  • Версионирование промптов → IPromptVersionRegistry.
  • Rate limiting для InGameLlmChatService.
  • ARCH-1..9 аудит (thread safety, lock consolidation, BUG-1..8).
  • SmartToolCallingChatClient — определение успеха через JObject.Parse.
  • InGameLlmChatService._lock — разделён на _rateLock и _historyLock.
  • InMemoryAiOrchestrationMetrics — bounded storage MaxRoles=256.

v0.20.x — Streaming & Tools

  • Streaming End-to-End (HTTP SSE + LLMUnity callback).
  • Streaming config hierarchy (3 слоя).
  • Universal Chat Module.
  • ThinkBlockStreamFilter.
  • SmartToolCallingChatClient — дубликаты, бесконечные петли.
  • Robust Tool Parsing — JSON fence, <think> теги.

WorldCommand Executor

  • Анимации, звуки, UI, физика, валидация.

Продвинутые инструменты

  • CompatibilityChecker, JsonSchemaValidator, CompatibilityLlmTool.

Тесты

  • SecureLuaSandboxEditModeTests, LuaToolEditModeTests.
  • SmartToolCallingChatClientEditModeTests.
  • InGameLlmChatServiceEditModeTests.
  • ThinkBlockStreamFilterEditModeTests.
  • CoreAiChatServiceEditModeTests.
  • QueuedAiOrchestrator tests.

Документация

  • COMMAND_FLOW_DIAGRAM.md, JSON_COMMAND_FORMAT.md.
  • TROUBLESHOOTING.md, QUICK_START_FULL.md.
  • EXAMPLES.md, DEMO_RECORDING_GUIDE.md.