AI tools registry
16 tool-signatures · 6 data-tools (R-052 ES) + 10 reasoning-tools · Claude Haiku 4.5
AI First registry
Iedere AI-touchpoint in het dashboard is hier vastgelegd: signature, inputs (PII-stripped per A7), output-type (det. / ml / ai), pagina-scope, cache-strategy en fallback. Numbers worden niet door AI berekend — AI levert uitleg, ranking en patroon-detectie.
Tools actief
16AI-output (uitleg)
9Det. + ML
7Cache-hit avg
81%
Alle 16
Reasoning · 10
Data (ES) · 6
Type:
ai
Type: det.
Type: ml
Zoek tool…
Reasoning tools · 10
det.
ml
ai
compute_risk_scores(member_id: str, lookback: int = 90) → RiskScores
R-220 / R-225 / R-226 / R-227
P1
Inputs (PII-stripped · A7)
sessionssolo_completionsfreq_30dlast_response_daysacwrnotes_excerpt:90dcohort_baseline:n=181
Output
{
compliance_pct: float (det.),
churn_score: int (ml),
injury_load: float (det.),
sentiment_90d: float (ai-mean),
explanations: { [k]: str (ai) }
}
Gebruikt op: atleet-detail
cache
md_{id}_{day}_{cohort_v} · TTL 24h
fallback: laatste cache + warning-banner
det.
ai
rank_triage(signals: List[Signal], lookback: int = 14) → RankedList
R-021
P1
Inputs
members:14signals:32notes_excerpt:90dlast_sessioncohort_baseline
Output
[{
member_ref: str (PII-stripped),
score: float (det.),
weights: { [k]: float },
reason: str (ai)
}, ...]
Gebruikt op: triage
cache
triage_{day}_{cohort_v} · TTL 5min
fallback: deterministische sort op signal-count
ai
summarize_cohort(ranked: RankedList) → str
R-022
P1
Inputs
ranked_top:5cohort_sizehistoric_outcomes:n=14
Output
str (max 280 chars · u-vorm · NL)
det.
ai
analyze_cohort_kpis(period: str, filter: dict) → KPISet
R-026
P1
Inputs
period:30dmembers_active:181sessions_30dsignals_openprevious_period:30d
Output
{
active_members: int (det.),
avg_sessions_per_member: float,
pct_with_signals: float,
trend: { delta_pct: float, ai_explain: str }
}
det.
ai
rank_athletes_by_progress(period: str, cohort: str) → ProgressList
R-091
P2
Inputs
period:90dmeasurements_per_memberbaseline:cohortcohort_filter
Output
[{
member_ref: str,
delta_pct: float (det.),
outlier_score: float (det.),
why_outlier: str (ai)
}, ...]
Gebruikt op: rapporten
cache
progress_{period}_{cohort}_{week} · TTL 7d
fallback: sort op delta_pct, geen uitleg
ai
cluster_similar_queries(history: List[Query]) → Clusters
R-055
P2
Inputs
queries_30d:per_userembedding:cached
Output
[{
cluster_id: str,
query_count: int,
label: str (ai),
suggested_save: bool
}, ...]
det.
ai
detect_metric_anomalies(form: EvalForm, baseline: Baseline) → Anomalies
R-131
P2
Inputs
form_metrics:10baseline:per_membercohort_normal_range
Output
[{
metric: str,
z_score: float (det.),
flag: 'pos' | 'neg' | 'normal',
explain: str (ai)
}, ...]
det.
ai
optimize_schedule(openings, waitlist, prefs) → Suggestions
A10-conflict · P3/P4
P3
Inputs
open_slotswaitlist:7prefs_per_memberhistoric_attendance
Output
[{
slot: { day, time, type },
suggested_member_ref: str,
match_score: float (det.),
why: str (ai)
}, ...]
ml
auto_weight_criteria(completions: List[Outcome]) → Weights
R-103
P3
Inputs
checkin_outcomes:90dcriteria:5trainer_feedback
Output
{
[criterion]: float (0..1),
confidence: float
}
Gebruikt op: trainer-checkin
cache
weights_{week} · TTL 7d · retraining wekelijks
fallback: handmatig ingestelde weights
det.
ai
correlate_weather_attendance(period: str) → Correlation
R-085
P3
Inputs
attendance_per_dayknmi_observations:per_dayperiod:90d
Output
{
pearson_r: float (det.),
p_value: float (det.),
dominant_factor: str (ai),
narrative: str (ai)
}
Gebruikt op: analytics
cache
weather_corr_{period}_{week} · TTL 7d
fallback: alleen pearson, geen narratief
Data tools (ES) · 6 · R-052
Geen LLM-output. Pure data-retrieval uit 13 ES-indices. Worden door reasoning-tools gechained.
| Tool | Inputs | Output | Index | R-id |
|---|---|---|---|---|
search_profile(query: str) data |
query:str | List[ProfileSummary] | virtuagym-members |
R-052.1 |
get_full_profile(member_ref: str) data |
member_ref | FullProfile (PII-stripped) | virtuagym-members + 4 join-indices |
R-052.2 |
list_by_signal(signal_id: str, limit: int) data |
signal_id ∈ R-021limit:25 | List[MemberRef + signal_meta] | strijdercloud-signals |
R-052.3 |
get_overview_stats(period: str) data |
period:30d | CohortStats | 3 indices aggregated | R-052.4 |
search_top_bottom(metric: str, n: int) data |
metric ∈ {bmi, freq, retention,…}n:5 | { top: [], bottom: [] } | virtuagym-measurements |
R-052.5 |
search_chat_history(member_ref, q) data |
member_refq:str | List[ChatExcerpt] | virtuagym-ai-history |
R-052.6 |
Compliance check
Alle 16 tools voldoen aan A7 (PII-stripping vóór tool-call), A8 (u-vorm in NL-output), A10 (read-only in v1, behalve optimize_schedule dat als demo gemarkeerd is). Geen tool berekent KPI's via AI — numbers zijn altijd det. of ml.
A7 PII-strip · 16/16
A8 u-vorm · 16/16
A10 read-only · 15/16 + 1 demo
Cijfers via AI · 0/16