Filamind AI v1.4.0
[1.4.0] — 2026-05-27
استدعاء الأدوات داخل المحادثة — الميزة التي كان عنوانها يسبق تنفيذها أصبحت حقيقية · In-chat MCP tool-calling: the headline feature that v1.3.0 announced but never wired is now actually built and tested.
Added — the real tool-call loop
run_tool_loop()incontrol_daemon.py— a provider-agnostic multi-hop driver that finally connects the MCP runtime to the chat path. Flow: send the conversation + tool definitions to the model → if the model emits tool calls, execute each viaMCPRegistry.call()→ append the results → repeat until the model returns a plain answer or the 8-hop limit. Token usage accumulates across hops; a structuredtool_traceis returned for the UI.- Per-provider "turn" functions — each converts the canonical OpenAI-shaped history to its provider's native tool wire-format and parses tool calls back out:
_openai_turn— nativetools+tool_calls(assistant) +role:"tool"results._anthropic_turn—tool_usecontent blocks +tool_resultinside a user turn +stop_reason:"tool_use"detection._gemini_turn—function_declarations+functionCallparts +functionResponseparts._local_turn— b1620 has no native tools, so it emulates them: tool schemas are injected into the system prompt and the model is asked to emit<tool_call>{…}</tool_call>, which is parsed and executed. Best-effort — surfaced honestly in the UI.
use_toolsflag onPOST /api/chat— when set, the loop runs for whichever provider is active. Off by default → existing single-shot paths untouched.- Per-agent tool allow-list —
agentstable gains atoolsJSON column (migrated in place). Empty = all enabled tools offered. - UI — "🔧 Use tools" toggle in the chat toolbar (persisted in
localStorage). Each turn that used tools renders an expandable tool-trace above the answer (tool name, arguments, result; red header on failure).
Verified
- End-to-end test: a "what is 6×7?" prompt drives the model to call
calculator.eval({"expression":"6*7"}); the registry executes it (→ 42), the result is fed back, the model answers from it, and the trace + accumulated usage are captured. Cloud providers do this natively and reliably; the local b1620 emulation works but is hit-or-miss.
Honesty note
- This is the feature v1.3.0's headline claimed ("call tools mid-conversation") but never shipped. As of v1.4.0 the claim is true. The v1.3.0 entry and the in-app MCP tab were updated accordingly.
Still on the roadmap
- Per-agent tool-picker UI (backend column + allow-list logic ship now).
- Tier-B cloud tool servers (web search, GitHub, Home Assistant, Synology APIs).
- DS1821+ real AVX2 binary (still a stub — tracked separately).
Install · التثبيت
Recommended (one-click updates): add the Package Source URL once:
DSM → Package Center → Settings → Package Sources → Add
Location:https://filamind-app.github.io/filamind-ai/
Manual install: download the SPK matching your device and upload via Package Center → Manual Install.
| Device | SPK |
|---|---|
| DVA 3221 (GTX 1650, CUDA) | Filamind-1.4.0-dva3221.spk |
| DS1821+ (Ryzen V1500B, CPU AVX2) | Filamind-1.4.0-ds1821-plus.spk |