FAFODev
FAFODev is the server I use to build and operate FAFO Core and the Inference Fabric through an AI assistant. I made a deliberate choice about its shape: one tool per subsystem, with an action argument that selects the operation. Eighteen tools carry 171 actions. An assistant only has to learn eighteen names, each tool returns its own documentation on request, and every subsystem's operations live in one place with one schema. Many of these tools are Core functions themselves, built with the function generator below, so the platform is operated through its own machinery. Tools that build tools under governance tells the generator's story.
Jobs, containers and GPUs
control_plane_management operates the control plane that runs every Core function, on the local host, in a dedicated container, or on remote GPU capacity.
execute_jobruns a job, optionally in a container on a chosen local or rented GPU, with the runtime injected into any image.get_job_statusreports one job's live status.control_functionsends live controls to a running function: pause, resume, emergency stop, scale workers, change batch size, stop a job, restart, quarantine or release from quarantine.get_statusreports the control plane's and each function's health.get_health_statusadds GPU and inference metrics to that health view.get_historyreturns the history of control actions.create_serviceturns a job definition into a long-running background service.stop_servicestops a background service.list_serviceslists the services that are running.list_containerslists container history on local and rented hardware.list_running_containerslists running containers.get_container_statusreports one container's status and metrics.terminate_containerstops a container by hand.list_available_imageslists the container images in the manifest.validate_container_configchecks a container configuration before a job is submitted.get_provider_docsreturns the configuration schema and examples for a compute provider.get_budget_statusreports a schema's compute spending against its budget.set_schema_budget_limitssets a schema's default budget limits.get_pricing_cacheshows cached provider prices, with local GPUs at zero.get_local_gpu_queuelists jobs waiting to fall back to a local GPU.get_recovery_queuelists jobs waiting for recovery after a failure.trigger_recoverystarts recovery for a failed container.get_eventsreturns recent container lifecycle events.subscribe_eventssubscribes to live event notifications.
federated_node_management runs persistent GPU inference nodes and the remote machines they live on. A node outlives any single job.
provision_nodebrings up a GPU inference node or an agent-swarm member host, locally, on a LAN machine or on rented GPUs.node_statusreports the nodes and their state.terminate_nodeshuts a node down.drain_queuesforces a node to drain its queues now.set_idle_timeoutsets how long a node waits idle before it drains.list_available_imageslists the node images in the manifest.list_available_engineslists the built TensorRT-LLM engines.setup_remote_hostonboards a spare LAN machine as a remote Docker host, with TLS, engine sync, registry access and monitoring.teardown_remote_hostremoves a remote host.sync_engine_to_remote_hostcopies engine directories to a registered host.list_remote_hostslists the remote hosts and whether each is alive.get_documentationreturns the tool's documentation.
Building functions
fafo_function_generator writes a new Core function and wires it into every place a function has to be registered, so a developer writes only the business logic. A function is generated either for application processing, which reads, computes and writes back, or for bulk work done entirely inside PostgreSQL, and it can include the scaffolding for submitting inference work.
create_functiongenerates a new function and its files.update_functionupdates an existing function's wiring and documentation.validate_functionchecks a function's integration and that it compiles.delete_functionremoves a function and all of its registrations.get_documentationexplains the two processing lanes with examples.
service_testing_template is the reference function the generator produces, used for smoke tests. Like the other generated functions, it runs as a one-time job or as a service triggered by queue depth, a timer or continuously.
submit_jobsubmits a smoke-test job for a schema.get_documentationreturns its documentation.
Data writes and admission
db_writer_control operates the shared database write service that every function writes through, with a main queue and a bulk queue.
get_status,get_infoandhealth_checkreport the service, its queues and its components.get_queue_statusandget_queue_metricsreport each queue's depth and performance.get_logsreturns recent log entries.pauseandresumepause and resume writing.emergency_stopshuts the service down immediately.scale_workers,stop_workersandrestart_workerschange the worker pool.get_batch_rulesandupdate_batch_rulesread and change how writes are batched.update_config,update_controller_configandupdate_queue_configchange settings live.get_config,persist_config,reload_config,get_config_historyanddiff_configread, save, reload, trace and compare the configuration.get_scaling_status,set_scaling_enabled,set_scaling_overrideandtrigger_scaling_evalread and steer automatic scaling.cleanup_stale_consumersclears queue consumers left behind by dead workers.
admission_control decides how much bulk work may run at once, so heavy jobs cannot overload the database.
statusreports admission state, capacity and active jobs.active_jobsdetails the jobs in progress.queue_metricsreports queue depths, throughput and bottlenecks.get_job_historyreturns past job performance.get_performance_statsanalyses performance and bottlenecks.get_entity_lineagelists every job that touched given records.get_capacity_recommendationsrecommends capacity settings.set_modeswitches admission off, to shadow mode or to enforcement.set_tokenssets the capacity limits.set_refill_ratessets how quickly capacity is returned.set_control_loopsets the control loop's timing.force_releasereleases admission locks left stuck by a failed job.
Vectors and corpus analytics
vsm_management operates vector storage: per-model schemas whose vectors are held in shards, built in generations and recovered from checkpoints.
vsm_list_schemaslists every schema that has vector storage.vsm_get_schema_statusgives one schema's detailed status.vsm_list_generationslists a schema's generations.vsm_list_shardslists a schema's shards.vsm_get_active_shardsshows which shards readers have mapped.vsm_describe_shardshows one shard's files, sizes and alignment.vsm_get_metricsreturns the service's metrics.vsm_healthreports whether the service is alive and its circuit state.vsm_finalize_generationfinalizes a stuck generation.vsm_cancel_generationcancels a generation and marks it for deletion.vsm_activate_generationactivates a built generation.vsm_force_alignment_checkre-runs the alignment checks on a shard.vsm_cleanup_old_generationslists old generations that can be removed.vsm_recovery_reportlists pending recovery records.vsm_acknowledge_recoverymarks a recovery record resolved.vsm_list_ready_checkpointslists checkpoints ready to be claimed.vsm_describe_checkpointshows one checkpoint in full.vsm_release_checkpointreturns a claimed checkpoint to ready, for recovery.validate_schemachecks a schema's setup.get_job_statusreports a job's status.get_documentationreturns the operator reference.submit_jobexists for the common function contract and is refused, because this tool manages storage and never creates vectors.
faiss_manager builds and checks FAISS indexes over the stored vectors, with any index type and its parameters, memory, threads and optional GPU.
submit_jobruns a count, build or validation over the cluster, member or candidate indexes.get_job_statusreports that job.get_index_statusreports the state of a schema's indexes.validate_schemachecks the schema the indexes are built from.get_documentationreturns tested index configurations and a guide.
embedding_management runs the embedding pipeline.
health_statsshows which schemas need embedding work.submit_jobqueues embedding work for a schema.start_orchestratorstarts the workers that carry it out.
cu_health_management measures the health of the clusters in a corpus, at three depths.
view_tier1returns seven basic metrics straight from the database.process_tier2queues fourteen statistical metrics for selected clusters.process_tier3queues seventeen advanced metrics computed with FAISS.
Clusters are selected by ID, age, metric thresholds, saturation pressure, growth events, quality or a random sample.
cuda_metrics computes the same cluster-health metrics with my CUDA kernels on the GPU.
submit_jobsubmits that computation for a schema, as a job or a triggered service.get_documentationreturns its documentation.
vec2vec_management relieves clusters that are under pressure by moving members to better-matching clusters, comparing vectors to vectors. In forward mode it finds members that suit a pressured cluster's centre; in reverse mode it finds the best centre for each member of a pressured cluster.
analyze_pressuremeasures cluster saturation and picks the candidates.submit_jobqueues the redistribution for a schema.
gatekeeper decides whether proposed new cluster members are accepted, held or rejected, by comparing them with existing cluster centres on similarity, distance, norm and population rules. It is a single-purpose tool with no actions: one call defines the job and the control plane runs it.
Mining and probes
probe_generator builds probe sequences from linguistic material, designed to activate a model in useful ways during prefill. It sends them to an explicit buffer address and model consumer.
submit_jobsubmits probe generation for a schema, as a job or a triggered service.get_documentationreturns its documentation.
mining runs a probe set through a TensorRT-LLM engine and captures a chosen internal tensor for every probe into vector storage. A run is deterministic and can be repeated safely.
submit_mining_runcreates a run after checking its extraction settings against the engine's capabilities.get_mining_run_statusreports how many probes were submitted, processed and failed.list_mining_runslists recent runs.cancel_mining_runcancels the probes not yet completed.replay_mining_failuresputs failed probes back in line.get_documentationreturns the operator reference.
Agents and code
agent_persona_launcher launches and manages sandboxed agent containers from persona definitions, as part of Agent Swarm.
list_personaslists the personas.list_toolslists the tools agents can be given.reload_personasandreload_tools_catalogreload either catalog without a restart.preflight_managed_memberchecks a governed team member's launch before it happens.launch_agentgives an agent its identity and record and starts its container.recreate_agentreplaces an ended governed member under a recovery authorisation.pause_agentandresume_agentsuspend and resume an agent's loop without losing its state.kill_agentstops one agent.kill_personastops every running agent of a persona.list_activelists running agents.get_agent_statusreports one agent.get_agent_observationsreturns what an agent recorded.send_messagedelivers a message to an agent's inbox.list_endpointslists the model endpoints agents can reach.get_documentationreturns the tool's documentation.
swarm_management gives the operator visibility into the agent swarm and control of its secrets.
list_activelists active agents, filtered by persona, tool or host.get_agent_statusreports one agent job.catalog_versionshows whether every host runs the same tool catalog.trace_a2afollows one agent conversation hop by hop and finds the first unacknowledged message.list_hostslists the swarm's hosts.store_secret,rotate_secretandrevoke_secretstore, replace and delete operator secrets.list_secretslists secret names and metadata. Values are never returned.import_secretsimports secrets in bulk from a file on the server.push_secretsends a stored secret to a member host.mint_swarm_transport_certissues the certificate the swarm's hosts use to talk to each other.submit_jobandget_documentationfollow the common function contract.
gitlab_management gives agents a governed path into GitLab and Git.
list_issues,get_issueandcheck_updatesread issues and watch them for changes.post_commentcomments on an issue or merge request.update_statusmoves an issue through workflow labels.create_merge_requestopens a merge request.git_status,git_branch,git_checkout,git_pull,git_commitandgit_pushrun the repository operations, with commits made under the agent's identity.get_documentationreturns the branching rules agents must follow.
Putting a whole subsystem behind one tool is the decision I would make again. An assistant can run GPU jobs, operate vector storage and launch agents with eighteen names to remember, and each tool explains itself when asked.