neoagent 2.4.4-beta.9 → 2.5.0
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.
- package/README.md +64 -57
- package/docs/agent-run-lifecycle.md +65 -0
- package/docs/agents-and-users.md +48 -0
- package/docs/architecture.md +59 -0
- package/docs/automation-architecture.md +50 -0
- package/docs/automation.md +54 -70
- package/docs/capabilities.md +16 -118
- package/docs/clients-and-devices.md +43 -0
- package/docs/configuration.md +104 -117
- package/docs/development.md +82 -0
- package/docs/devices.md +62 -0
- package/docs/getting-started.md +47 -57
- package/docs/index.md +41 -30
- package/docs/integrations-architecture.md +48 -0
- package/docs/integrations.md +56 -51
- package/docs/memory-architecture.md +90 -0
- package/docs/memory.md +78 -0
- package/docs/migration.md +12 -5
- package/docs/models.md +64 -0
- package/docs/operations.md +46 -30
- package/docs/persistence.md +49 -0
- package/docs/recordings-and-health.md +41 -0
- package/docs/runtime-and-tools.md +52 -0
- package/docs/security-boundaries.md +65 -111
- package/docs/skills.md +32 -45
- package/docs/why-neoagent.md +47 -16
- package/landing/index.html +0 -4
- package/lib/install_helpers.js +1 -0
- package/lib/manager.js +12 -2
- package/package.json +2 -2
- package/server/public/.last_build_id +1 -1
- package/server/public/flutter_bootstrap.js +1 -1
- package/server/public/main.dart.js +4 -4
- package/docs/supermemory-memory-review.md +0 -852
package/docs/why-neoagent.md
CHANGED
|
@@ -1,21 +1,52 @@
|
|
|
1
|
-
#
|
|
1
|
+
# NeoAgent, OpenClaw, and Hermes
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This page describes product emphasis, not a universal ranking. The projects
|
|
4
|
+
change quickly, and the right choice depends on the interfaces and operating
|
|
5
|
+
model you need.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
The comparison was reviewed on June 14, 2026 against the public
|
|
8
|
+
[OpenClaw repository](https://github.com/openclaw/openclaw),
|
|
9
|
+
[Hermes Agent repository](https://github.com/NousResearch/hermes-agent), and
|
|
10
|
+
the current NeoAgent source.
|
|
6
11
|
|
|
7
|
-
| | NeoAgent | OpenClaw |
|
|
8
|
-
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
| **Recovery** | `neoagent status`, `neoagent logs`, `neoagent update`, `neoagent fix` | Doctor-style diagnostics plus channel/node tooling |
|
|
12
|
+
| Area | NeoAgent | OpenClaw | Hermes Agent |
|
|
13
|
+
|---|---|---|---|
|
|
14
|
+
| Primary experience | Operator UI backed by a self-hosted service | Gateway and assistant across channels, nodes, and companion surfaces | Terminal UI or messaging gateway |
|
|
15
|
+
| Persistent memory | Local structured facts, temporal updates, provenance, hybrid retrieval | Project-defined memory and plugin surfaces | Built-in Markdown memory with optional external memory providers |
|
|
16
|
+
| Android operation | Direct ADB control of a host-attached device or emulator | Android companion/node capabilities | Android and Termux-oriented capabilities |
|
|
17
|
+
| Desktop and browser | Isolated runtime, paired desktop companion, paired Chrome extension | Node and companion ecosystem | Local and remote execution backends |
|
|
18
|
+
| Multi-user administration | User accounts, admin interface, optional service email, per-user runtime | Gateway-centered deployment model | Primarily personal-agent configuration |
|
|
19
|
+
| Automation | Schedules, account events, weather events, webhooks, notification runs | Cron, hooks, webhooks, and channel/node events | Cron, gateway events, and tool-driven workflows |
|
|
20
|
+
| Interfaces | Web, Android, desktop, launcher, messaging, extension, wearable firmware | Broad channel, platform, node, and companion ecosystem | Terminal plus Telegram, Discord, Slack, WhatsApp, Signal, email, and other integrations |
|
|
21
|
+
| Migration into NeoAgent | Native importer target | Skills, memory files, and selected keys can be imported | Skills, memory files, and selected keys can be imported |
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
## Choose NeoAgent when
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
- You want a visual operator interface for agents, runs, memory, tasks,
|
|
26
|
+
accounts, devices, and administration.
|
|
27
|
+
- Direct Android control over ADB is central to the deployment.
|
|
28
|
+
- You want structured memory and integration ingestion without a separate
|
|
29
|
+
memory service.
|
|
30
|
+
- You need multiple users or specialist agents with separate state.
|
|
31
|
+
- Launcher mode, Health Connect, recordings, or the bundled device interfaces
|
|
32
|
+
are part of the use case.
|
|
33
|
+
|
|
34
|
+
## Consider OpenClaw when
|
|
35
|
+
|
|
36
|
+
- Its larger gateway, node, channel, plugin, or companion ecosystem is the main
|
|
37
|
+
requirement.
|
|
38
|
+
- You need an existing OpenClaw-specific integration or community resource.
|
|
39
|
+
- Its distributed assistant architecture better matches your devices.
|
|
40
|
+
|
|
41
|
+
## Consider Hermes when
|
|
42
|
+
|
|
43
|
+
- A terminal-first workflow is preferable.
|
|
44
|
+
- Its skill ecosystem, remote execution options, or model workflow fits the
|
|
45
|
+
task.
|
|
46
|
+
- Built-in Markdown memory or one of its external memory providers is already
|
|
47
|
+
part of your setup.
|
|
48
|
+
|
|
49
|
+
NeoAgent's memory architecture is documented in [Memory](memory.md). The
|
|
50
|
+
project does not claim superior recall without a reproducible, published
|
|
51
|
+
benchmark that records the dataset, models, retrieval settings, judge, token
|
|
52
|
+
budget, latency, and run artifacts.
|
package/landing/index.html
CHANGED
|
@@ -890,7 +890,6 @@ p { margin: 0; text-wrap: pretty; }
|
|
|
890
890
|
</nav>
|
|
891
891
|
<div class="nav-right">
|
|
892
892
|
<a class="signin" href="/app">Sign in</a>
|
|
893
|
-
<a class="btn btn-primary" href="#cta">Get early access</a>
|
|
894
893
|
</div>
|
|
895
894
|
<button class="nav-toggle" aria-label="Menu">
|
|
896
895
|
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 6h18M3 12h18M3 18h18" stroke-linecap="round"></path></svg>
|
|
@@ -900,7 +899,6 @@ p { margin: 0; text-wrap: pretty; }
|
|
|
900
899
|
<a href="#features">Features</a>
|
|
901
900
|
<a href="#channels">Channels</a>
|
|
902
901
|
<a href="#how">How it works</a>
|
|
903
|
-
<a class="btn btn-primary" href="#cta">Get early access</a>
|
|
904
902
|
</div>
|
|
905
903
|
</header>
|
|
906
904
|
|
|
@@ -919,7 +917,6 @@ p { margin: 0; text-wrap: pretty; }
|
|
|
919
917
|
</h1>
|
|
920
918
|
<p class="lede">NeoAgent watches, listens, and acts across your devices, browser, voice, and messaging — one operator that quietly handles your digital world.</p>
|
|
921
919
|
<div class="hero-actions">
|
|
922
|
-
<a class="btn btn-primary btn-lg" href="#cta">Get early access</a>
|
|
923
920
|
<a class="btn btn-soft btn-lg" href="#features">Explore features
|
|
924
921
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 12h14M13 6l6 6-6 6" stroke-linecap="round" stroke-linejoin="round"></path></svg>
|
|
925
922
|
</a>
|
|
@@ -1201,7 +1198,6 @@ p { margin: 0; text-wrap: pretty; }
|
|
|
1201
1198
|
<h2>The agent that just <em>handles it.</em></h2>
|
|
1202
1199
|
<p>Be first to put NeoAgent to work across your devices, channels, and life. We'll send your invite as spots open up.</p>
|
|
1203
1200
|
<div class="hero-actions" style="justify-content:center;">
|
|
1204
|
-
<a class="btn btn-primary btn-lg" href="#">Get early access</a>
|
|
1205
1201
|
<a class="btn btn-soft btn-lg" href="#features">Explore features</a>
|
|
1206
1202
|
</div>
|
|
1207
1203
|
</div>
|
package/lib/install_helpers.js
CHANGED
package/lib/manager.js
CHANGED
|
@@ -1593,7 +1593,12 @@ async function cmdInstall() {
|
|
|
1593
1593
|
if (platform === 'macos' && commandExists('launchctl')) {
|
|
1594
1594
|
installMacService();
|
|
1595
1595
|
} else if (platform === 'linux' && commandExists('systemctl')) {
|
|
1596
|
-
|
|
1596
|
+
try {
|
|
1597
|
+
installLinuxService();
|
|
1598
|
+
} catch (err) {
|
|
1599
|
+
logWarn(`systemd setup failed (${err.message}); falling back to detached process`);
|
|
1600
|
+
startFallback();
|
|
1601
|
+
}
|
|
1597
1602
|
} else {
|
|
1598
1603
|
startFallback();
|
|
1599
1604
|
}
|
|
@@ -1730,7 +1735,12 @@ async function cmdFix() {
|
|
|
1730
1735
|
if (platform === 'macos' && commandExists('launchctl')) {
|
|
1731
1736
|
installMacService();
|
|
1732
1737
|
} else if (platform === 'linux' && commandExists('systemctl')) {
|
|
1733
|
-
|
|
1738
|
+
try {
|
|
1739
|
+
installLinuxService();
|
|
1740
|
+
} catch (err) {
|
|
1741
|
+
logWarn(`systemd setup failed (${err.message}); falling back to detached process`);
|
|
1742
|
+
startFallback();
|
|
1743
|
+
}
|
|
1734
1744
|
} else {
|
|
1735
1745
|
startFallback();
|
|
1736
1746
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "neoagent",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Proactive personal AI agent with no limits",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"main": "server/index.js",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"dev:test": "./dev/test.sh",
|
|
36
36
|
"docs:dev": "docusaurus start",
|
|
37
37
|
"docs:build": "docusaurus build",
|
|
38
|
-
"docs:preview": "docusaurus serve build",
|
|
38
|
+
"docs:preview": "docusaurus serve --dir build",
|
|
39
39
|
"flutter:run:web": "cd flutter_app && flutter run -d chrome --dart-define=NEOAGENT_WEB_BUILD_ID=$(node ../scripts/web_build_id.js)",
|
|
40
40
|
"flutter:build:web": "cd flutter_app && flutter build web --output ../server/public --dart-define=NEOAGENT_BACKEND_URL=${NEOAGENT_BACKEND_URL:-} --dart-define=NEOAGENT_WEB_BUILD_ID=$(node ../scripts/web_build_id.js)",
|
|
41
41
|
"manage": "node bin/neoagent.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
19c1d10149165130fbea47cda54945d1
|
|
@@ -37,6 +37,6 @@ _flutter.buildConfig = {"engineRevision":"77e2e94772b6eb43759e34ed1ad7da4674e19c
|
|
|
37
37
|
|
|
38
38
|
_flutter.loader.load({
|
|
39
39
|
serviceWorkerSettings: {
|
|
40
|
-
serviceWorkerVersion: "
|
|
40
|
+
serviceWorkerVersion: "1413531917" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
|
|
41
41
|
}
|
|
42
42
|
});
|
|
@@ -134794,7 +134794,7 @@ r===$&&A.b()
|
|
|
134794
134794
|
p.push(A.jQ(q,A.ja(!1,new A.a_(B.uG,A.d8(new A.cA(B.jt,new A.a7M(r,q),q),q,q),q),!1,B.H,!0),q,q,0,0,0,q))}r=!1
|
|
134795
134795
|
if(!s.ay)if(!s.ch){r=s.e
|
|
134796
134796
|
r===$&&A.b()
|
|
134797
|
-
r=B.b.u("
|
|
134797
|
+
r=B.b.u("mqe7vfz7-dda61c3").length!==0&&r.b}if(r){r=s.d
|
|
134798
134798
|
r===$&&A.b()
|
|
134799
134799
|
r=r.aP&&!r.ai?84:0
|
|
134800
134800
|
s=s.e
|
|
@@ -140506,7 +140506,7 @@ $S:0}
|
|
|
140506
140506
|
A.a_5.prototype={}
|
|
140507
140507
|
A.SP.prototype={
|
|
140508
140508
|
nb(a){var s=this
|
|
140509
|
-
if(B.b.u("
|
|
140509
|
+
if(B.b.u("mqe7vfz7-dda61c3").length===0||s.a!=null)return
|
|
140510
140510
|
s.AU()
|
|
140511
140511
|
s.a=A.on(B.RH,new A.bc7(s))},
|
|
140512
140512
|
AU(){var s=0,r=A.l(t.H),q,p=2,o=[],n=this,m,l,k,j,i,h,g,f
|
|
@@ -140524,7 +140524,7 @@ if(!t.f.b(k)){s=1
|
|
|
140524
140524
|
break}i=J.a3(k,"buildId")
|
|
140525
140525
|
h=i==null?null:B.b.u(J.p(i))
|
|
140526
140526
|
j=h==null?"":h
|
|
140527
|
-
if(J.bi(j)===0||J.d(j,"
|
|
140527
|
+
if(J.bi(j)===0||J.d(j,"mqe7vfz7-dda61c3")){s=1
|
|
140528
140528
|
break}n.b=!0
|
|
140529
140529
|
n.F()
|
|
140530
140530
|
p=2
|
|
@@ -140541,7 +140541,7 @@ case 2:return A.i(o.at(-1),r)}})
|
|
|
140541
140541
|
return A.k($async$AU,r)},
|
|
140542
140542
|
vE(){var s=0,r=A.l(t.H),q,p=2,o=[],n=this,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1
|
|
140543
140543
|
var $async$vE=A.h(function(a2,a3){if(a2===1){o.push(a3)
|
|
140544
|
-
s=p}for(;;)switch(s){case 0:if(B.b.u("
|
|
140544
|
+
s=p}for(;;)switch(s){case 0:if(B.b.u("mqe7vfz7-dda61c3").length===0||n.c){s=1
|
|
140545
140545
|
break}n.c=!0
|
|
140546
140546
|
n.F()
|
|
140547
140547
|
p=4
|