forked from hesabix/arc
3.7 KiB
Executable file
3.7 KiB
Executable file
مشکلات و وضعیت بخش چت 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