Watch
1
0
Fork
You've already forked Seyyed_arc
0
forked from hesabix/arc
Seyyed_arc/docs/AI_CHAT_ISSUES.md
2026-08-21 14:14:21 +00:00

3.7 KiB
Executable file
Raw Permalink Blame History

مشکلات و وضعیت بخش چت AI

این سند مشکلات شناسایی‌شده و وضعیت رفع آن‌ها را فهرست می‌کند.

ممیزی زندهٔ کل سیستم ایجنت (اولویت، معیار پذیرش سطح جهانی، و آیتم‌های باز): AI_AGENT_SYSTEM_AUDIT.md.

✅ رفع‌شده (۲۰۲۶)

موضوع وضعیت
تأخیر done به‌خاطر generate_chat_title عنوان در پس‌زمینه؛ done بلافاصله پس از commit
بارگذاری prompt همه‌یا‌هیچ trace هر loader به‌محض اتمام؛ RAG با timeout و intent
checkAvailability قبل از هر پیام کش ۲ دقیقه‌ای در Flutter
نبود بازخورد قبل از اولین chunk SSE رویدادهای status + heartbeat + UI optimistic
برچسب‌های تکراری ابزار (FA hardcoded) ai_tool_keys.py + کلیدهای l10n در Flutter
Function calls sequential asyncio.gather + run_in_executor
Timeout کوتاه stream receiveTimeout ۱۰ دقیقه در AIService
Progress فقط spinner نوار وضعیت + تایم‌لاین Agent Trace (زنجیره مراحل)
لغو بدون ذخیره partial ذخیره محتوای نیمه‌کاره + trace در _stopGenerating
نبود زنجیره تفکر مرئی trace_step SSE + AIAgentTraceTimeline + ذخیره در _agent_trace
Exploration explore / explored / thought trace + ai_exploration_service + mode=explore|auto|off

🟡 باقی‌مانده (متوسط)

DB همچنان sync

  • عملیات SQLAlchemy در run_in_executor اجرا می‌شود؛ migration به async DB در صورت نیاز مقیاس بالا.

بدون retry LLM (بهبود ۲۰۲۶-۰۵)

  • retry خودکار در ai_retry_policy + OpenAI provider (۳ بار، backoff)
  • trace kind=system + بنر بازیابی Flutter

Anthropic / Local provider

  • map خطای ضعیف‌تر؛ Ollama tools ناقص در streaming.

Operator/Admin tools

  • _register_operator_functions و admin هنوز خالی (pass).

CRM / تیکت / workflow

  • پیشنهاد تیکت و خلاصهٔ CRM با ?stream=true استریم می‌شوند (ویجت متن زنده + وضعیت + توقف).
  • مسیر JSON قبلی برای سازگاری و پاسخ خودکار تیکت مانده است.

🔵 پیشنهاد بعدی

  • Refactor state چت به Riverpod/Bloc برای تست‌پذیری
  • trace_id در SSE برای دیباگ
  • planning_tools زودتر (روی اولین delta ابزار از provider)
  • i18n کامل سایر متن‌های hardcoded در ai_chat_dialog.dart

قرارداد SSE (خلاصه)

type معنی
status phase, step?, tool_key?
trace_step گام تایم‌لاین: kind, state, title_key, body_markdown?, tool?
heartbeat elapsed_ms
tool_start / tool_end اجرای function
content delta متن
done: true پایان + usage + agent_trace

انواع kind در trace: context, explore, explored, thought, narrative, plan, tool, observation, plan_next, answer

حالت Exploration

پارامتر معنی
mode=auto (پیش‌فرض) برای سوال medium/complex فعال می‌شود
mode=explore همیشه + Thought با LLM برای bundleهای ≥۲ ابزار
mode=off فقط حلقهٔ agent کلاسیک

فیلدهای اضافه در trace_step: bundle_id, explore_target, entity_refs, findings_count, hypothesis, confidence