smashingtags commited on
Commit
2516ff3
·
verified ·
1 Parent(s): a73fe90

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +100 -59
README.md CHANGED
@@ -1,84 +1,125 @@
1
- ---
2
- library_name: gguf
3
- pipeline_tag: text-generation
4
- tags:
5
- - gguf
6
- - function-calling
7
- - agent
8
- - homelab
9
- - gemma
10
- - qwen
11
- - eightly-os
12
- - tool-use
13
- license: apache-2.0
14
- base_model:
15
- - google/functiongemma-270m-it
16
- - google/gemma-2-2b-it
17
- - Qwen/Qwen3-4B
18
- - Qwen/Qwen3-8B
19
- ---
20
-
21
- # Eightly Agent
22
-
23
- Tiered model family powering **Nova**, the built-in AI agent for [Eight.ly OS](https://eight.ly) — a self-hosted homelab operating system that combines virtualization, containers, storage, networking, and an AI control plane in a single Go binary.
24
-
25
- This repo ships four GGUFs designed to be deployed together. The host OS routes each turn to the right model based on intent and available hardware.
26
 
27
- ## Models
28
-
29
- | File | Size | Role | Base | Use |
30
- |------|------|------|------|-----|
31
- | `eightly-agent-fg.gguf` | 359 MB | **Tool router** | FunctionGemma 270m | Sub-1s function calls on CPU. Fine-tuned on 4,684 Eight.ly OS tool-calling examples. |
32
- | `eightly-agent-e2b-Q4_K_M.gguf` | 3.2 GB | Conversational | Gemma 4 E2B | Natural chat and reasoning on modest hardware |
33
- | `eightly-agent-q4b-Q4_K_M.gguf` | 2.4 GB | Conversational | Qwen3 4B | Mid-tier homelabs |
34
- | `eightly-agent-q8b-Q4_K_M.gguf` | 4.7 GB | Conversational | Qwen3 8B | Beefy boxes — best reasoning quality |
35
 
36
  ## Architecture
37
 
38
- Nova uses a **dual-mode router**: tool-bound turns dispatch to `fg` for near-instant function calls, while open-ended or reasoning turns go to whichever conversational model fits the host's hardware tier. The OS handles selection automatically — no configuration required.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
 
40
- This means a Pi-class device gets working AI control without GPU, while beefier boxes get richer conversation without sacrificing tool-call latency.
41
 
42
- ## Running
43
 
44
- Standard GGUFs anything that speaks llama.cpp will load them.
 
 
 
 
 
 
 
 
 
 
 
45
 
46
- **With Ollama:**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
  ```bash
49
- # Pull the function-caller
50
- ollama create eightly-agent-fg -f Modelfile.fg
51
-
52
- # Use it
53
- curl http://localhost:11434/api/generate -d '{
54
- "model": "eightly-agent-fg",
55
- "prompt": "<bos><start_of_turn>developer\nYou are a model that can do function calling...<start_of_turn>user\nHow much disk space is free?<end_of_turn>\n<start_of_turn>model\n",
56
- "raw": true,
57
- "stream": false
58
- }'
 
59
  ```
60
 
61
- **With llama.cpp directly:**
62
 
63
- ```bash
64
- llama-server -m eightly-agent-fg.gguf --port 8081
 
 
 
 
 
65
  ```
66
 
67
- Or just run [Eight.ly OS](https://eight.ly) and it wires everything up for you.
 
 
 
68
 
69
- ## Tool Calling Format
 
70
 
71
- `fg` is fine-tuned on FunctionGemma's native format with `<start_function_call>call:NAME{args}<end_function_call>` tokens. Tool declarations are baked into the prompt as `<start_function_declaration>declaration:NAME{...}<end_function_declaration>` blocks. The model was trained on 4,684 examples across 41 NAS management tools.
72
 
73
  ## 41 Tools
74
 
75
- Storage, Docker containers, VMs (KVM/QEMU), LXC, SMB/NFS file sharing, network interfaces, firewall, SnapRAID parity, ZFS pools, SMART health, system info, app store, and more.
 
 
76
 
77
- ## Status
78
 
79
- Active development. Eight.ly OS is in alpha; this model family is being trained against an evolving 41-tool catalog spanning storage, virtualization, containers, networking, and system control.
 
 
 
 
 
 
 
 
 
 
 
80
 
81
  ## Links
82
 
83
- - [eight.ly](https://eight.ly)
84
- - GitHub: [smashingtags/eightly-os](https://github.com/smashingtags/eightly-os) *(private during alpha)*
 
 
 
 
 
 
1
+ # Eight.ly Agent
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
+ Fine-tuned on 4,684 Eight.ly OS tool-calling examples across 41 NAS management tools (Docker, storage, VMs, LXC, file sharing, system administration).
 
 
 
 
 
 
 
4
 
5
  ## Architecture
6
 
7
+ ```
8
+ user query
9
+ |
10
+ v
11
+ +---------------+
12
+ | Nova Router |
13
+ | (Go intent |
14
+ | classifier) |
15
+ +-------+-------+
16
+ |
17
+ +----+----+
18
+ v v
19
+ +------+ +----------------+
20
+ | fg | | conversational |
21
+ |359MB | | tier (gemma2, |
22
+ |tool | | q4b, q8b, e2b) |
23
+ |calls | | |
24
+ +------+ +----------------+
25
+ ```
26
 
27
+ The Nova Router is a zero-latency Go pattern matcher (57 test cases) that classifies queries into `no_tool`, `tool`, or `maybe`. Tool queries route to FunctionGemma for structured tool-call extraction via GBNF grammar. Conversational queries skip directly to the response model.
28
 
29
+ ## Evaluation
30
 
31
+ | Metric | Value |
32
+ |--------|-------|
33
+ | Tool-call accuracy (fg) | 87.5% (13/15 standard audit suite) |
34
+ | FunctionGemma latency | Sub-1s on CPU |
35
+ | Median tool-query response | 6.9s end-to-end |
36
+ | No-tool response time | 1-3s |
37
+ | System queries | 10-18s |
38
+ | Container/health queries | 6-14s |
39
+
40
+ Evaluated by Opus 4.7 auditor over 8 rounds. Remaining sharp edges: Docker stop/kill semantics, acknowledgment over-eagerness, storage pool labeling.
41
+
42
+ ## Models
43
 
44
+ | Model | Base | GGUF Size | Role |
45
+ |-------|------|-----------|------|
46
+ | eightly-agent-fg | FunctionGemma 270M | 359 MB | Tool router (dual-model worker) |
47
+ | eightly-agent-q4b | Qwen3 4B | 2.4 GB | Single-model fallback |
48
+ | eightly-agent-q8b | Qwen3 8B | 4.7 GB | Best single-model quality |
49
+ | eightly-agent-e2b | Gemma 4 E2B | 3.2 GB | Experimental (not yet deployed) |
50
+
51
+ Conversational tier uses stock `gemma2:2b` (1.6 GB) as the response synthesizer.
52
+
53
+ ## Training Data
54
+
55
+ - 4,684 tool-calling examples (FunctionGemma fine-tune)
56
+ - 41 tools across 6 domains: Docker, Storage, VMs, LXC, File Sharing, System
57
+ - Dataset: [smashingtags/eightly-agent-dataset](https://huggingface.co/datasets/smashingtags/eightly-agent-dataset)
58
+
59
+ ## Usage
60
 
61
  ```bash
62
+ # Pull the FunctionGemma tool router
63
+ ollama pull smashingtags/eightly-agent-fg
64
+
65
+ # Pull the single-model fallback (Qwen3 4B)
66
+ ollama pull smashingtags/eightly-agent-q4b
67
+
68
+ # Pull the high-quality single-model (Qwen3 8B)
69
+ ollama pull smashingtags/eightly-agent-q8b
70
+
71
+ # Run locally
72
+ ollama run smashingtags/eightly-agent-q4b
73
  ```
74
 
75
+ These models are designed to work within the Eight.ly OS Nova assistant pipeline. FunctionGemma expects a scoped tool catalog with GBNF grammar constraints. The q4b/q8b models support native Ollama tool calling.
76
 
77
+ ## Example: Tool-Calling Flow
78
+
79
+ **User:** "How much disk space is free?"
80
+
81
+ **Step 1 — FunctionGemma routes to tool:**
82
+ ```
83
+ <start_function_call>call:get_storage_status{}<end_function_call>
84
  ```
85
 
86
+ **Step 2 Tool executes, returns real data:**
87
+ ```json
88
+ {"mountpoint": "/mnt/storage", "total": "69.8 GB", "used": "22 MB", "free": "69.8 GB", "percent": "0.03%"}
89
+ ```
90
 
91
+ **Step 3 Conversational model responds:**
92
+ > "Your storage pool at /mnt/storage has 69.8 GB free out of 69.8 GB total — essentially empty at 0.03% used."
93
 
94
+ End-to-end: ~6.9 seconds median. FunctionGemma decision: sub-1 second.
95
 
96
  ## 41 Tools
97
 
98
+ **Docker:** list_containers, get_container_logs, get_container_stats, list_docker_stacks, list_docker_images, list_docker_networks, list_docker_volumes, container_action, pull_docker_image, install_app
99
+
100
+ **Storage:** get_storage_status, get_storage_capacity, get_cache_status, get_snapraid_status, get_disk_health, get_zfs_pools, run_snapraid_sync, run_smart_test, spin_down_disks, create_backup
101
 
102
+ **VMs:** list_vms, get_vm_stats, list_vm_snapshots, vm_action, create_vm_snapshot
103
 
104
+ **LXC:** list_lxc_containers, lxc_action
105
+
106
+ **File Sharing:** get_smb_shares, get_nfs_exports, create_smb_share, create_nfs_export
107
+
108
+ **System:** get_system_info, get_system_version, get_system_logs, get_node_time, get_network_interfaces, get_firewall_rules, get_health_overview, get_nova_models, search_apps, set_timezone, reboot_system
109
+
110
+ ## Roadmap
111
+
112
+ - Tool catalog growing from 41 tools. Next: scheduling tools, backup management, network diagnostics.
113
+ - Multi-turn context for follow-up questions.
114
+ - Additional domain scoping refinements based on real user feedback.
115
+ - Gemma 4 E2B deployment and evaluation.
116
 
117
  ## Links
118
 
119
+ - **Product:** [eight.ly](https://eight.ly)
120
+ - **Dataset:** [smashingtags/eightly-agent-dataset](https://huggingface.co/datasets/smashingtags/eightly-agent-dataset)
121
+ - **Discord:** [discord.gg/Y9jbyrnTTj](https://discord.gg/Y9jbyrnTTj)
122
+
123
+ ## License
124
+
125
+ Apache 2.0