agentnova 0.2.4__tar.gz → 0.2.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentnova-0.2.4 → agentnova-0.2.6}/PKG-INFO +24 -29
- {agentnova-0.2.4 → agentnova-0.2.6}/README.md +23 -28
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/__init__.py +13 -12
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/__main__.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/acp_plugin.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/agent_mode.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/bitnet_client.py +3 -3
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/bitnet_setup.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/cli.py +15 -12
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/config.py +2 -2
- agentnova-0.2.6/agentnova/core/agent.py +1342 -0
- agentnova-0.2.6/agentnova/core/args_normal.py +324 -0
- agentnova-0.2.6/agentnova/core/helpers.py +337 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/math_prompts.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/memory.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/model_family_config.py +35 -28
- agentnova-0.2.6/agentnova/core/models.py +47 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/ollama_client.py +3 -3
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/orchestrator.py +3 -3
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/orchestrator_enhanced.py +2 -2
- agentnova-0.2.6/agentnova/core/prompts.py +193 -0
- agentnova-0.2.6/agentnova/core/tool_parse.py +434 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/core/tools.py +3 -3
- agentnova-0.2.6/agentnova/core/types.py +11 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/00_backend_demo.py +3 -3
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/01_basic_agent.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/02_tool_agent.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/03_orchestrator.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/04_comprehensive_test.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/05_tool_tests.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/06_interactive_chat.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/07_model_comparison.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/08_robust_comparison.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/09_expanded_benchmark.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/10_skills_demo.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/11_skill_creator_test.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/12_batch_operations.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/13_shutdown_demo.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/14_gsm8k_benchmark.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/examples/15_quick_diagnostic.py +8 -8
- agentnova-0.2.6/agentnova/examples/16_agent_mode_test.py +582 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/model_discovery.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/shared_args.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/__init__.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/loader.py +3 -3
- agentnova-0.2.6/agentnova/skills/skill-creator/scripts/__init__.py +1 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/aggregate_benchmark.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/generate_report.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/improve_description.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/init_skill.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/package_skill.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/quick_validate.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/run_eval.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/run_loop.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/security_scan.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/test_package_skill.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/test_quick_validate.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/utils.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/scripts/validate.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/tools/builtins.py +16 -5
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/tools/sandboxed_repl.py +2 -2
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/PKG-INFO +24 -29
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/SOURCES.txt +7 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/localclaw/__init__.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/localclaw/__main__.py +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/pyproject.toml +1 -1
- {agentnova-0.2.4 → agentnova-0.2.6}/tests/test_acp_integration.py +4 -4
- {agentnova-0.2.4 → agentnova-0.2.6}/tests/test_acp_subagents.py +3 -3
- {agentnova-0.2.4 → agentnova-0.2.6}/tests/test_agent.py +1 -1
- agentnova-0.2.4/agentnova/core/agent.py +0 -2770
- agentnova-0.2.4/agentnova/skills/skill-creator/scripts/__init__.py +0 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/LICENSE +0 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/acp/SKILL.md +0 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/datetime/SKILL.md +0 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/skill-creator/SKILL.md +0 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova/skills/web_search/SKILL.md +0 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/dependency_links.txt +0 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/entry_points.txt +0 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/requires.txt +0 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/agentnova.egg-info/top_level.txt +0 -0
- {agentnova-0.2.4 → agentnova-0.2.6}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentnova
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.6
|
|
4
4
|
Summary: A minimal, hackable agentic framework for Ollama and BitNet - local-first AI agent toolkit
|
|
5
5
|
Author-email: VTSTech <veritas@vts-tech.org>
|
|
6
6
|
Maintainer-email: VTSTech <veritas@vts-tech.org>
|
|
@@ -34,7 +34,7 @@ Requires-Dist: black>=23.0; extra == "dev"
|
|
|
34
34
|
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
35
35
|
Dynamic: license-file
|
|
36
36
|
|
|
37
|
-
# ⚛️ AgentNova R02.
|
|
37
|
+
# ⚛️ AgentNova R02.6
|
|
38
38
|
|
|
39
39
|
A minimal, hackable agentic framework engineered to run **entirely locally** with [Ollama](https://ollama.com) or [BitNet](https://github.com/microsoft/BitNet).
|
|
40
40
|
|
|
@@ -45,7 +45,7 @@ Inspired by the architecture of OpenClaw, rebuilt from scratch for local-first o
|
|
|
45
45
|
[](https://colab.research.google.com/github/VTSTech/AgentNova/blob/main/AgentNova.ipynb)
|
|
46
46
|
[](https://GitHub.com/VTSTech/AgentNova/commit/) [](https://GitHub.com/VTSTech/AgentNova/commit/)
|
|
47
47
|
|
|
48
|
-
[](https://pypi.org/project/agentnova/) [](https://pypi.
|
|
48
|
+
[](https://pypi.org/project/agentnova/) [](https://pypi.org/project/agentnova/) [](https://pypi.org/project/agentnova/) [](https://pypi.org/project/agentnova/)
|
|
49
49
|
|
|
50
50
|
[](#license) [](https://python.org)
|
|
51
51
|
|
|
@@ -201,31 +201,26 @@ agentnova models --tool_support
|
|
|
201
201
|
|
|
202
202
|
### Performance by Tool Support
|
|
203
203
|
|
|
204
|
-
R02.
|
|
205
|
-
|
|
206
|
-
| Model |
|
|
207
|
-
|
|
208
|
-
| **`
|
|
209
|
-
| **`
|
|
210
|
-
|
|
|
211
|
-
|
|
|
212
|
-
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
**Key improvements in R02.3**:
|
|
225
|
-
- **+13%** for granite3.1-moe:1b (80% → 93%) from few-shot fix
|
|
226
|
-
- **+20%** for llama3.2:1b (67% → 87%) from observation role fix
|
|
227
|
-
- **qwen3:0.6b restored** from 0% (broken) with `think=False` API fix
|
|
228
|
-
- **qwen3.5:0.8b** new sub-1B champion with 100% on quick diagnostic
|
|
204
|
+
R02.6 Quick Diagnostic results (5 questions, ~30-120s/model):
|
|
205
|
+
|
|
206
|
+
| Model | Score | Time | Tool Support |
|
|
207
|
+
|-------|-------|------|--------------|
|
|
208
|
+
| **`functiongemma:270m`** | **100%** | 19.6s | native |
|
|
209
|
+
| **`granite4:350m`** | **100%** | 49.4s | native |
|
|
210
|
+
| **`qwen2.5:0.5b`** | **100%** | 66.3s | native |
|
|
211
|
+
| **`qwen2.5-coder:0.5b`** | **100%** | 116.5s | react |
|
|
212
|
+
| **`qwen3:0.6b`** | **100%** | 122.8s | react |
|
|
213
|
+
| `gemma3:270m` | 80% | 14.3s | none |
|
|
214
|
+
| `dolphin3.0-qwen2.5:0.5b` | 80% | 26.6s | none |
|
|
215
|
+
| `qwen:0.5b` | 20% | 27.0s | none |
|
|
216
|
+
|
|
217
|
+
**Key improvements in R02.6**:
|
|
218
|
+
- **5 models achieve 100%** - All tool-calling models now perfect!
|
|
219
|
+
- **functiongemma:270m fastest** at 19.6s (native tools + 270M params)
|
|
220
|
+
- **Multi-step expression extraction** - Handles `8 times 7 minus 5`, word problems, time calculations
|
|
221
|
+
- **ReAct JSON parsing fixed** - Clean extraction even with trailing text
|
|
222
|
+
- **Verbose response fallback** - Uses numeric result when model gives long explanation
|
|
223
|
+
- **Tool-calling outperforms pure reasoning** - ALL native/react models score 100% vs max 80% for no-tool models
|
|
229
224
|
|
|
230
225
|
---
|
|
231
226
|
|
|
@@ -276,7 +271,7 @@ Output shows:
|
|
|
276
271
|
- **Tool Support** - `✓ native`, `ReAct`, `○ none`, or `untested`
|
|
277
272
|
|
|
278
273
|
```
|
|
279
|
-
⚛️ AgentNova R02.
|
|
274
|
+
⚛️ AgentNova R02.6 Models
|
|
280
275
|
Model Family Context Tool Support
|
|
281
276
|
──────────────────────────────────────────────────────────────────────────────
|
|
282
277
|
gemma3:270m gemma3 32K ○ none
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# ⚛️ AgentNova R02.
|
|
1
|
+
# ⚛️ AgentNova R02.6
|
|
2
2
|
|
|
3
3
|
A minimal, hackable agentic framework engineered to run **entirely locally** with [Ollama](https://ollama.com) or [BitNet](https://github.com/microsoft/BitNet).
|
|
4
4
|
|
|
@@ -9,7 +9,7 @@ Inspired by the architecture of OpenClaw, rebuilt from scratch for local-first o
|
|
|
9
9
|
[](https://colab.research.google.com/github/VTSTech/AgentNova/blob/main/AgentNova.ipynb)
|
|
10
10
|
[](https://GitHub.com/VTSTech/AgentNova/commit/) [](https://GitHub.com/VTSTech/AgentNova/commit/)
|
|
11
11
|
|
|
12
|
-
[](https://pypi.org/project/agentnova/) [](https://pypi.
|
|
12
|
+
[](https://pypi.org/project/agentnova/) [](https://pypi.org/project/agentnova/) [](https://pypi.org/project/agentnova/) [](https://pypi.org/project/agentnova/)
|
|
13
13
|
|
|
14
14
|
[](#license) [](https://python.org)
|
|
15
15
|
|
|
@@ -165,31 +165,26 @@ agentnova models --tool_support
|
|
|
165
165
|
|
|
166
166
|
### Performance by Tool Support
|
|
167
167
|
|
|
168
|
-
R02.
|
|
169
|
-
|
|
170
|
-
| Model |
|
|
171
|
-
|
|
172
|
-
| **`
|
|
173
|
-
| **`
|
|
174
|
-
|
|
|
175
|
-
|
|
|
176
|
-
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
**Key improvements in R02.3**:
|
|
189
|
-
- **+13%** for granite3.1-moe:1b (80% → 93%) from few-shot fix
|
|
190
|
-
- **+20%** for llama3.2:1b (67% → 87%) from observation role fix
|
|
191
|
-
- **qwen3:0.6b restored** from 0% (broken) with `think=False` API fix
|
|
192
|
-
- **qwen3.5:0.8b** new sub-1B champion with 100% on quick diagnostic
|
|
168
|
+
R02.6 Quick Diagnostic results (5 questions, ~30-120s/model):
|
|
169
|
+
|
|
170
|
+
| Model | Score | Time | Tool Support |
|
|
171
|
+
|-------|-------|------|--------------|
|
|
172
|
+
| **`functiongemma:270m`** | **100%** | 19.6s | native |
|
|
173
|
+
| **`granite4:350m`** | **100%** | 49.4s | native |
|
|
174
|
+
| **`qwen2.5:0.5b`** | **100%** | 66.3s | native |
|
|
175
|
+
| **`qwen2.5-coder:0.5b`** | **100%** | 116.5s | react |
|
|
176
|
+
| **`qwen3:0.6b`** | **100%** | 122.8s | react |
|
|
177
|
+
| `gemma3:270m` | 80% | 14.3s | none |
|
|
178
|
+
| `dolphin3.0-qwen2.5:0.5b` | 80% | 26.6s | none |
|
|
179
|
+
| `qwen:0.5b` | 20% | 27.0s | none |
|
|
180
|
+
|
|
181
|
+
**Key improvements in R02.6**:
|
|
182
|
+
- **5 models achieve 100%** - All tool-calling models now perfect!
|
|
183
|
+
- **functiongemma:270m fastest** at 19.6s (native tools + 270M params)
|
|
184
|
+
- **Multi-step expression extraction** - Handles `8 times 7 minus 5`, word problems, time calculations
|
|
185
|
+
- **ReAct JSON parsing fixed** - Clean extraction even with trailing text
|
|
186
|
+
- **Verbose response fallback** - Uses numeric result when model gives long explanation
|
|
187
|
+
- **Tool-calling outperforms pure reasoning** - ALL native/react models score 100% vs max 80% for no-tool models
|
|
193
188
|
|
|
194
189
|
---
|
|
195
190
|
|
|
@@ -240,7 +235,7 @@ Output shows:
|
|
|
240
235
|
- **Tool Support** - `✓ native`, `ReAct`, `○ none`, or `untested`
|
|
241
236
|
|
|
242
237
|
```
|
|
243
|
-
⚛️ AgentNova R02.
|
|
238
|
+
⚛️ AgentNova R02.6 Models
|
|
244
239
|
Model Family Context Tool Support
|
|
245
240
|
──────────────────────────────────────────────────────────────────────────────
|
|
246
241
|
gemma3:270m gemma3 32K ○ none
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"""
|
|
2
|
-
⚛️ AgentNova R02.
|
|
1
|
+
"""
|
|
2
|
+
⚛️ AgentNova R02.6 - A minimal, hackable agentic framework for Ollama and BitNet
|
|
3
3
|
|
|
4
4
|
Written by VTSTech
|
|
5
5
|
https://www.vts-tech.org
|
|
@@ -8,7 +8,8 @@ https://github.com/VTSTech/AgentNova
|
|
|
8
8
|
|
|
9
9
|
import os
|
|
10
10
|
|
|
11
|
-
from .core.agent import Agent
|
|
11
|
+
from .core.agent import Agent
|
|
12
|
+
from .core.models import AgentRun, StepResult
|
|
12
13
|
from .core.memory import Memory
|
|
13
14
|
from .core.tools import Tool, ToolRegistry, ToolParam
|
|
14
15
|
from .core.ollama_client import OllamaClient
|
|
@@ -34,7 +35,7 @@ from .config import (
|
|
|
34
35
|
AGENTNOVA_BACKEND,
|
|
35
36
|
)
|
|
36
37
|
|
|
37
|
-
#
|
|
38
|
+
# R02: BitNet backend support
|
|
38
39
|
try:
|
|
39
40
|
from .bitnet_client import BitnetClient, KNOWN_MODELS
|
|
40
41
|
_BITNET_AVAILABLE = True
|
|
@@ -143,7 +144,7 @@ def get_system_prompt(model: str, client=None, default_prompt: str = None):
|
|
|
143
144
|
|
|
144
145
|
return default_prompt
|
|
145
146
|
|
|
146
|
-
#
|
|
147
|
+
# R02 Enhancements
|
|
147
148
|
from .core.orchestrator_enhanced import Orchestrator as EnhancedOrchestrator, AgentCard as EnhancedAgentCard
|
|
148
149
|
|
|
149
150
|
# Tool support detection
|
|
@@ -152,7 +153,7 @@ from .cli import get_tool_support
|
|
|
152
153
|
# Shared args for test scripts
|
|
153
154
|
from .shared_args import add_shared_args, parse_shared_args, SharedConfig
|
|
154
155
|
|
|
155
|
-
#
|
|
156
|
+
# R02: Agent Mode
|
|
156
157
|
from .agent_mode import (
|
|
157
158
|
AgentMode, AgentState, TaskPlan, Step, Action,
|
|
158
159
|
create_file_write_action, create_file_delete_action,
|
|
@@ -167,10 +168,10 @@ __all__ = [
|
|
|
167
168
|
"OllamaClient", "Orchestrator", "AgentCard",
|
|
168
169
|
# Skills
|
|
169
170
|
"SkillLoader", "Skill", "SkillRegistry",
|
|
170
|
-
#
|
|
171
|
+
# R02 Enhancements
|
|
171
172
|
"EnhancedOrchestrator", "EnhancedAgentCard",
|
|
172
173
|
"ACPPlugin",
|
|
173
|
-
#
|
|
174
|
+
# R02: Backend-agnostic helpers
|
|
174
175
|
"get_default_client",
|
|
175
176
|
"get_available_models",
|
|
176
177
|
"get_system_prompt",
|
|
@@ -179,12 +180,12 @@ __all__ = [
|
|
|
179
180
|
"add_shared_args", # Shared CLI args for test scripts
|
|
180
181
|
"parse_shared_args",
|
|
181
182
|
"SharedConfig",
|
|
182
|
-
#
|
|
183
|
+
# R02: Agent Mode
|
|
183
184
|
"AgentMode", "AgentState", "TaskPlan", "Step", "Action",
|
|
184
185
|
"create_file_write_action", "create_file_delete_action",
|
|
185
186
|
"create_mkdir_action", "create_shell_action",
|
|
186
187
|
"format_status", "format_progress",
|
|
187
|
-
# R02.
|
|
188
|
+
# R02.6: Model Family Configuration
|
|
188
189
|
"ModelFamilyConfig", "FAMILY_CONFIGS",
|
|
189
190
|
"get_family_config", "get_stop_tokens", "supports_tools",
|
|
190
191
|
"get_tool_format", "get_preferred_temperature", "should_use_few_shot",
|
|
@@ -204,8 +205,8 @@ __all__ = [
|
|
|
204
205
|
if _BITNET_AVAILABLE:
|
|
205
206
|
__all__.extend(["BitnetClient", "KNOWN_MODELS"])
|
|
206
207
|
|
|
207
|
-
__version__ = "0.2.
|
|
208
|
+
__version__ = "0.2.6"
|
|
208
209
|
__author__ = "VTSTech"
|
|
209
210
|
__author_email__ = "veritas@vts-tech.org"
|
|
210
211
|
__url__ = "https://github.com/VTSTech/AgentNova"
|
|
211
|
-
__website__ = "https://www.vts-tech.org"
|
|
212
|
+
__website__ = "https://www.vts-tech.org"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""
|
|
2
2
|
⚛️ AgentNova ACP Plugin - Bridge to Agent Control Panel
|
|
3
3
|
|
|
4
4
|
This plugin connects AgentNova agents to an ACP (Agent Control Panel) server,
|
|
@@ -2350,4 +2350,4 @@ def create_acp_agent(
|
|
|
2350
2350
|
on_step=plugin.on_step,
|
|
2351
2351
|
**agent_kwargs,
|
|
2352
2352
|
)
|
|
2353
|
-
return agent, plugin
|
|
2353
|
+
return agent, plugin
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
2
|
"""
|
|
3
|
-
⚛️ AgentNova
|
|
3
|
+
⚛️ AgentNova R02 — BitnetClient
|
|
4
4
|
Drop-in replacement for OllamaClient that uses Microsoft's bitnet.cpp
|
|
5
5
|
(llama-server) as the inference backend instead of Ollama.
|
|
6
6
|
|
|
@@ -148,4 +148,4 @@ class BitnetClient:
|
|
|
148
148
|
|
|
149
149
|
def supports_streaming(self) -> bool:
|
|
150
150
|
"""Return True if this client supports streaming."""
|
|
151
|
-
return True
|
|
151
|
+
return True
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import os
|
|
1
|
+
import os
|
|
2
2
|
import subprocess
|
|
3
3
|
import logging
|
|
4
4
|
|
|
@@ -27,4 +27,4 @@ def setup_bitnet(directory, model_name):
|
|
|
27
27
|
|
|
28
28
|
if __name__ == "__main__":
|
|
29
29
|
# Example usage
|
|
30
|
-
setup_bitnet("F:/Tools/bitnet-llama", "BitNet-b1.58-2B-4T")
|
|
30
|
+
setup_bitnet("F:/Tools/bitnet-llama", "BitNet-b1.58-2B-4T")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
2
|
"""
|
|
3
|
-
⚛️ AgentNova R02.
|
|
3
|
+
⚛️ AgentNova R02.6 — CLI
|
|
4
4
|
Entry point: agentnova <command> [options]
|
|
5
5
|
|
|
6
6
|
Commands:
|
|
@@ -924,7 +924,7 @@ def cmd_models(args):
|
|
|
924
924
|
print(red("✗ bitnet_client.py not found. Copy it into agentnova/."))
|
|
925
925
|
sys.exit(1)
|
|
926
926
|
|
|
927
|
-
print(bold("\n⚛️ AgentNova R02.
|
|
927
|
+
print(bold("\n⚛️ AgentNova R02.6 BitNet Model (Remote)"))
|
|
928
928
|
|
|
929
929
|
# We use the client logic to see what is actually running at the URL
|
|
930
930
|
try:
|
|
@@ -952,7 +952,7 @@ def cmd_models(args):
|
|
|
952
952
|
print(yellow("No models found. Pull one with: ollama pull llama3.2:3b"))
|
|
953
953
|
return
|
|
954
954
|
|
|
955
|
-
print(bold("\n⚛️ AgentNova R02.
|
|
955
|
+
print(bold("\n⚛️ AgentNova R02.6 Models") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
|
|
956
956
|
|
|
957
957
|
# Load tested models from storage
|
|
958
958
|
tested_models = _load_tested_models()
|
|
@@ -1091,7 +1091,7 @@ def cmd_models(args):
|
|
|
1091
1091
|
|
|
1092
1092
|
def cmd_tools(args):
|
|
1093
1093
|
tools = BUILTIN_REGISTRY.all()
|
|
1094
|
-
print(bold("\n⚛️ AgentNova R02.
|
|
1094
|
+
print(bold("\n⚛️ AgentNova R02.6 Tools") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
|
|
1095
1095
|
print(bold(f"{'Tool':<20} Description"))
|
|
1096
1096
|
print(dim("─" * 70))
|
|
1097
1097
|
for t in tools:
|
|
@@ -1116,7 +1116,7 @@ def cmd_modelfile(args):
|
|
|
1116
1116
|
sys.exit(1)
|
|
1117
1117
|
|
|
1118
1118
|
model = args.model
|
|
1119
|
-
print(bold(f"\n⚛️ AgentNova R02.
|
|
1119
|
+
print(bold(f"\n⚛️ AgentNova R02.6 Modelfile") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
|
|
1120
1120
|
print()
|
|
1121
1121
|
|
|
1122
1122
|
try:
|
|
@@ -1181,7 +1181,7 @@ def cmd_skills(args):
|
|
|
1181
1181
|
loader = SkillLoader()
|
|
1182
1182
|
skills = loader.list_skills()
|
|
1183
1183
|
|
|
1184
|
-
print(bold("\n⚛️ AgentNova R02.
|
|
1184
|
+
print(bold("\n⚛️ AgentNova R02.6 Skills") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
|
|
1185
1185
|
|
|
1186
1186
|
if not skills:
|
|
1187
1187
|
print(yellow(" No skills found."))
|
|
@@ -1266,7 +1266,7 @@ def cmd_run(args):
|
|
|
1266
1266
|
if acp_plugin:
|
|
1267
1267
|
bootstrap_result = acp_plugin.bootstrap(claim_primary=False) # AgentNova is secondary
|
|
1268
1268
|
|
|
1269
|
-
print(bold("⚛️ AgentNova R02.
|
|
1269
|
+
print(bold("⚛️ AgentNova R02.6") + dim(" · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
|
|
1270
1270
|
print(f"Prompt: {args.prompt}")
|
|
1271
1271
|
|
|
1272
1272
|
# Log user message to ACP
|
|
@@ -1359,7 +1359,7 @@ def cmd_chat(args):
|
|
|
1359
1359
|
parts.append("]")
|
|
1360
1360
|
status = " ".join(parts)
|
|
1361
1361
|
|
|
1362
|
-
print(bold(f"\n⚛️ AgentNova R02.
|
|
1362
|
+
print(bold(f"\n⚛️ AgentNova R02.6 chat") + dim(f" {status} · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
|
|
1363
1363
|
print(dim(" Type 'exit', 'quit', or Ctrl+C to quit."))
|
|
1364
1364
|
print(dim(" Type '/help' to see all available commands."))
|
|
1365
1365
|
print(dim(" Type '/ollama' to manage Ollama models (works with remote Ollama)."))
|
|
@@ -1909,7 +1909,7 @@ def cmd_agent(args):
|
|
|
1909
1909
|
parts.append("]")
|
|
1910
1910
|
status = " ".join(parts)
|
|
1911
1911
|
|
|
1912
|
-
print(bold(f"\n⚛️ AgentNova R02.
|
|
1912
|
+
print(bold(f"\n⚛️ AgentNova R02.6 agent mode") + dim(f" {status} · Written by VTSTech · https://www.vts-tech.org · https://github.com/VTSTech/AgentNova"))
|
|
1913
1913
|
print(dim(" Agent mode: Give tasks and the agent will work autonomously."))
|
|
1914
1914
|
print(dim(" Type '/help' to see available commands."))
|
|
1915
1915
|
print(dim(" ─────────────────────────────────────"))
|
|
@@ -2291,11 +2291,14 @@ def cmd_test(args):
|
|
|
2291
2291
|
"14": "GSM8K benchmark - 50 math questions",
|
|
2292
2292
|
"14_acp": "GSM8K benchmark with ACP tracking",
|
|
2293
2293
|
"15": "Quick diagnostic - 5 questions, ~30s/model",
|
|
2294
|
+
"15_acp": "Quick diagnostic with ACP tracking",
|
|
2295
|
+
"16": "Agent Mode test - 7 autonomous task tests",
|
|
2296
|
+
"16_acp": "Agent Mode test with ACP tracking",
|
|
2294
2297
|
"backend": "Backend demo - Ollama/BitNet switching",
|
|
2295
2298
|
}
|
|
2296
2299
|
|
|
2297
2300
|
# Quick test set (skips long-running benchmarks)
|
|
2298
|
-
QUICK_TESTS = ["01", "02", "03", "04", "05", "10", "11", "15"]
|
|
2301
|
+
QUICK_TESTS = ["01", "02", "03", "04", "05", "10", "11", "15", "16"]
|
|
2299
2302
|
|
|
2300
2303
|
if args.list:
|
|
2301
2304
|
print(bold("\n⚛️ AgentNova Test Examples"))
|
|
@@ -2457,7 +2460,7 @@ def build_parser() -> argparse.ArgumentParser:
|
|
|
2457
2460
|
|
|
2458
2461
|
parser = argparse.ArgumentParser(
|
|
2459
2462
|
prog="agentnova",
|
|
2460
|
-
description="⚛️ AgentNova R02.
|
|
2463
|
+
description="⚛️ AgentNova R02.6 - local agentic AI powered by Ollama",
|
|
2461
2464
|
)
|
|
2462
2465
|
|
|
2463
2466
|
sub = parser.add_subparsers(dest="command", metavar="command")
|