Synalinks

Mantiene Claude sull'API idiomatica di Synalinks invece di congetture Keras/DSPy/LangChain.

di SynaLinks · SynaLinks/synalinks-skills

Promosso ★ 8.8/10

Synalinks — Mantiene Claude sull'API idiomatica di Synalinks invece di congetture Keras/DSPy/LangChain.

Cosa fa

Skill di riferimento per il framework LM neuro-simbolico Synalinks: DataModel/Field/Input, operatori JSON, le quattro API di costruzione di Program, moduli Generator/ChainOfThought, flusso di controllo Decision/Branch, agenti (FunctionCallingAgent, RLM, DeepAgent, MCP), DuckDB KnowledgeBase/RAG, training compile/fit, rewards, metriche e gli ottimizzatori RandomFewShot/OMEGA. Si attiva quando un task menziona Synalinks o i suoi nomi API, e fornisce 17 script di esempio eseguibili con log di esecuzione catturati più 10 documenti di riferimento approfonditi. Il suo scopo è impedire al modello di scrivere codice dall'aspetto plausibile, ma con sapore Keras/DSPy/LangChain, che il runtime di Synalinks rifiuta.

Rapporto di test

Clonato il repo in una HOME temporanea (SKILL.md è finito in ~/.claude/skills/synalinks/SKILL.md), confermato che il frontmatter YAML analizza in name+description (la descrizione è di 1182 caratteri, oltre il limite di 1024 caratteri che alcuni validatori di skill impongono), e controllato a campione scripts/simple_qa.py, scripts/deep_agent.py, references/api-reference.md, references/control-flow.md e references/simple_qa.log — tutti HTTP 200. Ho installato synalinks 0.9.8 in un venv (stubbing la dipendenza del grafo `ladybug` non costruibile) e ho eseguito due artefatti per lo stesso task: la mia BASELINE non guidata ha incontrato quattro fallimenti reali separati in sequenza — `TypeError: ChainOfThought.__init__() takes 1 positional argument`, quindi `pydantic ValidationError: instructions Input should be a valid string` per una lista, quindi `ValueError: All outputs values must be SymbolicDataModels. Received: coroutine` per un await mancante, quindi `TypeError: Type is not JSON serializable: MetaDataModel` perché `Input(Question)` si lega posizionalmente a `schema=` — mentre la versione che segue la SKILL ha costruito il grafo, compilato, stampato la tabella riassuntiva del modulo, e si è degradata elegantemente a "no result" sulla chiamata LM (solo ollama era irraggiungibile; nessun modello locale in questa macchina). Ogni affermazione API che ho campionato corrispondeva alla libreria (Sequential senza descrizione solleva il ValueError documentato, SequentialPlanSynthesis è effettivamente assente dall'API pubblica, tutti i moduli/rewards/optimizers elencati esistono) e gli script forniti scripts/simple_qa.py e four_apis.py sono stati eseguiti senza modifiche fino alla chiamata LM; piccole vulnerabilità sono eval() negli strumenti calcolatrice di esempio (references/agents-tools.md:232 senza builtins ristretti) e una sezione datasets che elenca solo gsm8k/hotpotqa/arcagi mentre 0.9.8 ne espone ~20.

Testato il: 2026-07-21 · Claude Code 2.x (agent harness)

Installazione

rm -rf /tmp/synalinks-src
git clone --depth 1 https://github.com/SynaLinks/synalinks-skills.git /tmp/synalinks-src
mkdir -p ~/.claude/skills
cp -R /tmp/synalinks-src/skills/synalinks ~/.claude/skills/synalinks
# Alternative (repo's recommended path, needs Node): npx skills add SynaLinks/synalinks-skills --skill synalinks   (add --global for ~/.claude/skills)
# The skill itself is docs + example scripts only, no runtime deps.
# To actually run scripts/*.py: Python >=3.12, `pip install synalinks` (v0.9.8 at test time) and a reachable LM, e.g. local ollama on http://localhost:11434.
# Heads-up: synalinks depends on `ladybug`, which had no macOS arm64 wheel and failed to build from source without a make/rust toolchain; it is only needed for the optional property-graph store.

Comandi e prompt di esempio

  • /synalinksMantiene Claude sull'API idiomatica di Synalinks invece di congetture Keras/DSPy/LangChain.

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Build a Synalinks program with ChainOfThought generation
  • Add a Synalinks Decision branch to this agent
  • Debug my Synalinks DataModel and Field setup