ennodia 0.3.0 → 0.4.1
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/CONTRIBUTING.md +2 -19
- package/README.md +51 -31
- package/docs/comparisons/agent-frameworks.md +5 -5
- package/docs/comparisons/autogen.md +4 -4
- package/docs/comparisons/chathub.md +4 -4
- package/docs/comparisons/index.md +4 -4
- package/docs/comparisons/langgraph.md +4 -4
- package/docs/comparisons/mixture-of-agents.md +5 -5
- package/docs/comparisons/model-merging.md +5 -5
- package/docs/comparisons/openrouter.md +4 -4
- package/docs/concepts/compositional-audits.md +8 -6
- package/docs/concepts/data-governance.md +5 -9
- package/docs/concepts/how-ennodia-works.md +2 -2
- package/docs/concepts/interfaces-and-core.md +1 -1
- package/docs/concepts/second-opinions.md +5 -5
- package/docs/evidence/index.md +6 -13
- package/docs/evidence/measurement.md +6 -5
- package/docs/getting-started.md +9 -6
- package/docs/guides/agent-skills.md +6 -5
- package/docs/guides/budgets-and-limits.md +8 -6
- package/docs/guides/pragmatic-mode.md +2 -0
- package/docs/guides/recipes.md +1 -4
- package/docs/guides/running-better-audits.md +7 -7
- package/docs/guides/troubleshooting.md +0 -2
- package/docs/guides/understand-results.md +0 -2
- package/docs/index.md +2 -4
- package/docs/install.md +11 -9
- package/docs/questions.md +56 -0
- package/docs/reference/controlled-english.md +1 -3
- package/docs/reference/ennodia-io.md +7 -7
- package/docs/reference/mcp-tools.md +69 -15
- package/docs/reference/supported-harnesses.md +9 -4
- package/docs/roadmap.md +0 -2
- package/package.json +4 -11
- package/skills/pragmatic/SKILL.md +2 -0
- package/src/cli.ts +31 -15
- package/src/compare.ts +37 -1
- package/src/core.ts +2 -4
- package/src/diagnosis.ts +48 -1
- package/src/harnesses.ts +54 -25
- package/src/index.ts +4 -0
- package/src/runs.ts +17 -8
- package/src/server.ts +55 -2
- package/src/tasks.ts +145 -37
- package/src/version.ts +1 -1
- package/bench/README.md +0 -34
- package/bench/bug-recall/run.ts +0 -339
- package/bench/bug-recall/scorer.ts +0 -424
- package/bench/fixtures/bug-recall/001-missing-await/input.ts +0 -33
- package/bench/fixtures/bug-recall/001-missing-await/oracle.json +0 -28
- package/bench/fixtures/bug-recall/001-missing-await/responses/claude-code-solo.md +0 -1
- package/bench/fixtures/bug-recall/001-missing-await/responses/codex-solo.md +0 -1
- package/bench/fixtures/bug-recall/001-missing-await/responses/ennodia-parallel-compare.md +0 -1
- package/bench/fixtures/bug-recall/002-timeout-drain/input.ts +0 -40
- package/bench/fixtures/bug-recall/002-timeout-drain/oracle.json +0 -28
- package/bench/fixtures/bug-recall/002-timeout-drain/responses/claude-code-solo.md +0 -1
- package/bench/fixtures/bug-recall/002-timeout-drain/responses/codex-solo.md +0 -1
- package/bench/fixtures/bug-recall/002-timeout-drain/responses/ennodia-parallel-compare.md +0 -1
- package/bench/fixtures/bug-recall/003-schema-contract/input.ts +0 -22
- package/bench/fixtures/bug-recall/003-schema-contract/oracle.json +0 -28
- package/bench/fixtures/bug-recall/003-schema-contract/responses/claude-code-solo.md +0 -1
- package/bench/fixtures/bug-recall/003-schema-contract/responses/codex-solo.md +0 -1
- package/bench/fixtures/bug-recall/003-schema-contract/responses/ennodia-parallel-compare.md +0 -1
- package/bench/fixtures/bug-recall/004-cancel-propagation/input.ts +0 -28
- package/bench/fixtures/bug-recall/004-cancel-propagation/oracle.json +0 -28
- package/bench/fixtures/bug-recall/004-cancel-propagation/responses/claude-code-solo.md +0 -1
- package/bench/fixtures/bug-recall/004-cancel-propagation/responses/codex-solo.md +0 -1
- package/bench/fixtures/bug-recall/004-cancel-propagation/responses/ennodia-parallel-compare.md +0 -1
- package/bench/results/.gitkeep +0 -1
- package/docs/evidence/building-ennodia.md +0 -66
- package/docs/evidence/docs-drift.md +0 -73
- package/docs/evidence/skill-trial.md +0 -68
- package/docs/reference/benchmarks.md +0 -64
- package/examples/docs-drift/README.md +0 -8
- package/examples/docs-drift/archive/migration.md +0 -4
- package/examples/docs-drift/check.ts +0 -7
- package/examples/docs-drift/config.ts +0 -8
- package/examples/docs-drift/demo.ts +0 -54
- package/examples/docs-drift/recorded-run.json +0 -16
- package/examples/skill-trial/README.md +0 -8
- package/examples/skill-trial/check.ts +0 -15
- package/examples/skill-trial/contract.md +0 -7
- package/examples/skill-trial/recorded-trial.json +0 -42
- package/examples/skill-trial/retry.ts +0 -4
package/CONTRIBUTING.md
CHANGED
|
@@ -104,15 +104,14 @@ exists solely on that channel.
|
|
|
104
104
|
- `bin/ennodia`
|
|
105
105
|
- source files that the Bun runtime needs
|
|
106
106
|
- README, LICENSE, CONTRIBUTING, and documentation files
|
|
107
|
-
- benchmark fixtures
|
|
108
107
|
|
|
109
108
|
The core npm package must not include these items:
|
|
110
109
|
|
|
111
110
|
- `.github/`, `AGENTS.md`, or `CLAUDE.md`
|
|
112
111
|
- `bun.lock`, `src/dev/`, or `src/io.ts`
|
|
113
|
-
- `*.test.ts`, `packages/`, or `website/`
|
|
112
|
+
- `*.test.ts`, `bench/`, `packages/`, or `website/`
|
|
114
113
|
|
|
115
|
-
JSR publishes the TypeScript source and docs
|
|
114
|
+
JSR publishes the TypeScript source and docs.
|
|
116
115
|
The IO npm package must include `bin/ennodia-io`, its `src/` files, and its
|
|
117
116
|
README. It has an exact runtime dependency on the matching `ennodia` version.
|
|
118
117
|
The release workflow publishes the core package first. The IO package stays
|
|
@@ -152,22 +151,6 @@ Community aggregators (Glama, PulseMCP, mcp.so, Smithery) index
|
|
|
152
151
|
GitHub and the official registry automatically or accept one-time
|
|
153
152
|
submissions. They do not need per-release updates.
|
|
154
153
|
|
|
155
|
-
## Benchmarks
|
|
156
|
-
|
|
157
|
-
The deterministic benchmark suite is:
|
|
158
|
-
|
|
159
|
-
```sh
|
|
160
|
-
bun run bench:bug-recall
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
Live harness benchmarks use:
|
|
164
|
-
|
|
165
|
-
```sh
|
|
166
|
-
bun run bench:bug-recall:live
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Live runs are intentionally not part of `bun run verify`.
|
|
170
|
-
|
|
171
154
|
## Security
|
|
172
155
|
|
|
173
156
|
Do not commit credentials, provider tokens, `.env` files, or private tool
|
package/README.md
CHANGED
|
@@ -3,32 +3,42 @@
|
|
|
3
3
|
<img alt="Ennodia" src="docs/assets/logo.svg" width="235" height="50">
|
|
4
4
|
</picture>
|
|
5
5
|
|
|
6
|
-
**
|
|
6
|
+
**Ennodia isn't another agent. It connects the agents you use.**
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
Stay in Codex, Claude Code, or any agent you like.
|
|
9
|
+
When a task needs another model, your agent hands that part over through Ennodia and brings the answer back.
|
|
10
|
+
Ennodia runs on your computer, and each agent uses your own account.
|
|
11
11
|
|
|
12
12
|
```text
|
|
13
|
-
|
|
14
|
-
Give one available agent the failing test and our attempted fixes.
|
|
15
|
-
Request a different explanation and a way to test it.
|
|
16
|
-
Bring the findings back here.
|
|
13
|
+
Have Gemini listen to meeting.mp3 through Ennodia and tell me what was decided.
|
|
17
14
|
```
|
|
18
15
|
|
|
19
|
-
##
|
|
16
|
+
## Why use it
|
|
20
17
|
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
18
|
+
- **Keep the app you like.** Ennodia has no window of its own. You work in your agent as before, and it can now reach the others.
|
|
19
|
+
- **Your agents work together.** Any agent can hand part of a task to any other and get the answer back in your chat.
|
|
20
|
+
- **Nothing to pay, nothing to join.** Ennodia is free and open source, with no account. It uses the agents and plans you have.
|
|
21
|
+
- **It grows with your agents.** It is a set of tools, not a framework or a method. Each new model one agent gains becomes an ability for all of them.
|
|
22
|
+
- **It stays on your computer.** Every handoff leaves a receipt there: who did the work, how long it took, and what came back.
|
|
23
|
+
- **Less to keep up with.** You don't need to follow every new model. Name the task, and your agent hands it to one that can do it.
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
Next on the [roadmap](https://ennodia.cherninlab.com/docs/roadmap/): Ennodia reads its receipts, so your agent stops repeating what failed.
|
|
26
|
+
|
|
27
|
+
## What each agent adds
|
|
28
|
+
|
|
29
|
+
No model leads every task, so each agent you connect brings an ability the others lack.
|
|
30
|
+
|
|
31
|
+
- **Listen.** Gemini hears audio files. Codex hands it the file path and gets back what Gemini heard.
|
|
32
|
+
- **Draw.** Codex draws with GPT Image. Claude Code can hand it a brief and get the images back.
|
|
33
|
+
- **Review.** Two other agents review the same patch in fresh sessions. Compare maps where they agree and differ.
|
|
34
|
+
- **Read.** Kimi K3 in OpenCode reads long documents. Your agent hands it a spec and gets back the rules, each with its line number.
|
|
35
|
+
|
|
36
|
+
When your own agent has the ability, it does the task itself, with no handoff.
|
|
37
|
+
[See each route](https://ennodia.cherninlab.com/#abilities) and the [public scores behind each strength](https://ennodia.cherninlab.com/#evidence).
|
|
28
38
|
|
|
29
39
|
## Install
|
|
30
40
|
|
|
31
|
-
Send this address to your
|
|
41
|
+
Send this address to your agent:
|
|
32
42
|
|
|
33
43
|
```text
|
|
34
44
|
try-ennodia.cherninlab.com
|
|
@@ -47,15 +57,28 @@ For manual setup, add this Model Context Protocol (MCP) server to your client:
|
|
|
47
57
|
}
|
|
48
58
|
```
|
|
49
59
|
|
|
60
|
+
Ennodia loads six core tools by default: about 10,000 characters of tool definitions in each session.
|
|
61
|
+
Add `"--tools", "all"` to `args` for the [full tool set](https://ennodia.cherninlab.com/docs/reference/mcp-tools/#tool-sets).
|
|
62
|
+
|
|
50
63
|
Requirements: Bun `1.3.14` or newer, a compatible MCP client, and a supported agent with working provider access.
|
|
51
64
|
`npx` downloads Ennodia. Bun runs it. You can also use `bunx ennodia`.
|
|
52
65
|
|
|
53
66
|
[Get your first result](https://ennodia.cherninlab.com/docs/getting-started/) ·
|
|
54
67
|
[Installation for agents](https://ennodia.cherninlab.com/docs/install/)
|
|
55
68
|
|
|
56
|
-
##
|
|
69
|
+
## How a handoff works
|
|
57
70
|
|
|
58
|
-
|
|
71
|
+
1. Your agent calls `ennodia_run` with the task, the agent or model to use, and a time limit.
|
|
72
|
+
2. Ennodia starts that agent's own command-line tool in a fresh session, with its own tools and your account for it.
|
|
73
|
+
3. The answer comes back to your conversation, with its status and a receipt saved on your computer.
|
|
74
|
+
|
|
75
|
+
Your conversation history stays in your agent.
|
|
76
|
+
For two or more answers, Compare maps agreements, contradictions, and gaps.
|
|
77
|
+
When one answer is complete as it stands, Compare can choose it, and `ennodia_run` returns it unchanged.
|
|
78
|
+
|
|
79
|
+
## Supported agents
|
|
80
|
+
|
|
81
|
+
Codex CLI, Claude Code, OpenCode, Kilo Code, Kiro CLI, Cline, Hermes Agent, and Antigravity.
|
|
59
82
|
Model availability and tool permissions depend on the installed agent and its provider configuration.
|
|
60
83
|
Discovery finds executable commands. It does not verify authentication or model access.
|
|
61
84
|
Codex workers use a read-only sandbox by default.
|
|
@@ -68,14 +91,11 @@ Native agents can also select unrequested skills from their own environment.
|
|
|
68
91
|
[Using skills](https://ennodia.cherninlab.com/docs/guides/agent-skills/) ·
|
|
69
92
|
[Understand results](https://ennodia.cherninlab.com/docs/guides/understand-results/)
|
|
70
93
|
|
|
71
|
-
##
|
|
72
|
-
|
|
73
|
-
- [Building Ennodia with Ennodia](https://ennodia.cherninlab.com/docs/evidence/building-ennodia/): a worker patch, a failed login, and primary-agent corrections.
|
|
74
|
-
- [Find stale documentation](https://ennodia.cherninlab.com/docs/evidence/docs-drift/): a small review with known answers.
|
|
75
|
-
- [Try a skill separately](https://ennodia.cherninlab.com/docs/evidence/skill-trial/): two attempts against the same contract.
|
|
94
|
+
## Evidence
|
|
76
95
|
|
|
77
|
-
|
|
78
|
-
[Measurement plan](https://ennodia.cherninlab.com/docs/evidence/measurement/)
|
|
96
|
+
- [Can Gemini hear this file?](https://ennodia.cherninlab.com/articles/can-gemini-hear-this-file/): a Codex conversation hands an audio file to Gemini through Antigravity.
|
|
97
|
+
- [Measurement plan](https://ennodia.cherninlab.com/docs/evidence/measurement/): how Ennodia compares single agents with teams on public benchmarks.
|
|
98
|
+
- [Audio routing pilot](bench/audio-routing/pilot-2026-09-26.md): Codex got 10 of 10 speech questions right through Gemini, and 4 of 10 alone. Across all 30 clips the gain was not significant, and each answer took about twice as long.
|
|
79
99
|
|
|
80
100
|
## Data and limits
|
|
81
101
|
|
|
@@ -83,9 +103,10 @@ Ennodia runs locally without an Ennodia-hosted service.
|
|
|
83
103
|
Selected agents can send material to their configured model providers.
|
|
84
104
|
Terminal run history is stored locally and can be disabled with `ENNODIA_HISTORY=0`.
|
|
85
105
|
|
|
106
|
+
Each handoff costs time and uses your agents' own quotas and charges.
|
|
107
|
+
General time or token savings have not been established.
|
|
86
108
|
Ennodia can limit child tasks and estimated input tokens.
|
|
87
109
|
Those estimates exclude internal harness work and are not provider bills.
|
|
88
|
-
Automatic agent updates and recommendations learned from past results remain future work.
|
|
89
110
|
|
|
90
111
|
[Data governance](https://ennodia.cherninlab.com/docs/concepts/data-governance/) ·
|
|
91
112
|
[Budgets](https://ennodia.cherninlab.com/docs/guides/budgets-and-limits/) ·
|
|
@@ -93,8 +114,8 @@ Automatic agent updates and recommendations learned from past results remain fut
|
|
|
93
114
|
|
|
94
115
|
## Technical reference and contribution
|
|
95
116
|
|
|
96
|
-
The main
|
|
97
|
-
Compare
|
|
117
|
+
The main entry point is `ennodia_run`.
|
|
118
|
+
The full tool set adds raw tasks, separate Compare calls, budget estimates, and the Plan Advisor, which proposes explicit tasks before execution.
|
|
98
119
|
|
|
99
120
|
[MCP tools](https://ennodia.cherninlab.com/docs/reference/mcp-tools/) ·
|
|
100
121
|
[Experimental Ennodia IO](https://ennodia.cherninlab.com/docs/reference/ennodia-io/) ·
|
|
@@ -107,7 +128,6 @@ bun run verify
|
|
|
107
128
|
|
|
108
129
|
### Experimental Pragmatic mode
|
|
109
130
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
[Pragmatic mode](docs/guides/pragmatic-mode.md) keeps bulky evidence outside the main conversation and returns findings for verification.
|
|
131
|
+
[Pragmatic mode](docs/guides/pragmatic-mode.md) runs independent model attempts, tailored plans, and skill trials, then compares the evidence.
|
|
132
|
+
It keeps bulky evidence outside the main conversation and returns findings for your agent to verify.
|
|
113
133
|
Savings are not yet validated.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Ennodia vs
|
|
2
|
+
title: Ennodia vs agent frameworks
|
|
3
3
|
description: How Ennodia differs from general-purpose agent frameworks such as LangGraph, AutoGen, CrewAI, and similar systems.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -11,14 +11,14 @@ Ennodia is less general on purpose. Its small Model Context Protocol (MCP)
|
|
|
11
11
|
interface lets a primary agent request help from installed agent command-line
|
|
12
12
|
interfaces (CLIs). The primary agent can then inspect the result.
|
|
13
13
|
|
|
14
|
-
## Choose an
|
|
14
|
+
## Choose an agent framework when
|
|
15
15
|
|
|
16
16
|
- You define the agent workflow.
|
|
17
17
|
- You need custom roles, memory, state, routing, or persistence.
|
|
18
18
|
- The agent system is part of your application or service.
|
|
19
19
|
- You want code-level control over every edge in the workflow.
|
|
20
20
|
|
|
21
|
-
## Choose Ennodia
|
|
21
|
+
## Choose Ennodia when
|
|
22
22
|
|
|
23
23
|
- You do not want to build an agent system.
|
|
24
24
|
- You want a local MCP tool that works with installed agent CLIs.
|
|
@@ -29,13 +29,13 @@ interfaces (CLIs). The primary agent can then inspect the result.
|
|
|
29
29
|
remains a separate, validated action.
|
|
30
30
|
- You want the primary agent to remain in charge.
|
|
31
31
|
|
|
32
|
-
## Key
|
|
32
|
+
## Key difference
|
|
33
33
|
|
|
34
34
|
Agent frameworks provide components for custom agent systems. Ennodia is an
|
|
35
35
|
orchestration helper for an active agent. Its Plan Advisor produces inert plan
|
|
36
36
|
data. It does not create a persistent autonomous team or execute the proposal.
|
|
37
37
|
|
|
38
|
-
## Common
|
|
38
|
+
## Common mistake
|
|
39
39
|
|
|
40
40
|
Do not claim that Ennodia is more powerful than a framework. It is deliberately
|
|
41
41
|
smaller. A user can add multi-agent review to a current local workflow. This
|
|
@@ -11,14 +11,14 @@ systems.
|
|
|
11
11
|
Ennodia is not a framework for a new multi-agent application. It is a local
|
|
12
12
|
Model Context Protocol (MCP) server that an active agent can call.
|
|
13
13
|
|
|
14
|
-
## Choose AutoGen
|
|
14
|
+
## Choose AutoGen when
|
|
15
15
|
|
|
16
16
|
- You want to create a multi-agent system in application code.
|
|
17
17
|
- You need programmable agent roles, event handling, message passing, and custom
|
|
18
18
|
workflow control.
|
|
19
19
|
- Your product needs a framework-level architecture.
|
|
20
20
|
|
|
21
|
-
## Choose Ennodia
|
|
21
|
+
## Choose Ennodia when
|
|
22
22
|
|
|
23
23
|
- The primary workflow uses Codex, Claude Code, OpenCode,
|
|
24
24
|
Antigravity, or another MCP-capable client.
|
|
@@ -29,13 +29,13 @@ Model Context Protocol (MCP) server that an active agent can call.
|
|
|
29
29
|
- You want a Plan Advisor to suggest explicit harness, model, and skill
|
|
30
30
|
assignments. Plan Advisor has no execution control.
|
|
31
31
|
|
|
32
|
-
## Key
|
|
32
|
+
## Key difference
|
|
33
33
|
|
|
34
34
|
AutoGen helps developers create multi-agent applications. Ennodia lets one agent
|
|
35
35
|
request help from other installed agents. A Plan Advisor can propose a bounded
|
|
36
36
|
team. The proposal stays inert until the caller explicitly starts it.
|
|
37
37
|
|
|
38
|
-
## Common
|
|
38
|
+
## Common mistake
|
|
39
39
|
|
|
40
40
|
Do not compare them only by "number of agents." The important question is the
|
|
41
41
|
location of the orchestration. It can be in a custom application framework or a
|
|
@@ -10,14 +10,14 @@ web, browser extension, desktop, and mobile access.
|
|
|
10
10
|
Ennodia is not a chat user interface (UI). An AI agent calls Ennodia during a
|
|
11
11
|
task.
|
|
12
12
|
|
|
13
|
-
## Choose ChatHub
|
|
13
|
+
## Choose ChatHub when
|
|
14
14
|
|
|
15
15
|
- A human wants to compare chatbot answers visually.
|
|
16
16
|
- The main workflow is interactive chat, not local Model Context Protocol (MCP)
|
|
17
17
|
tool orchestration.
|
|
18
18
|
- You want a polished multi-chat interface across hosted chatbots.
|
|
19
19
|
|
|
20
|
-
## Choose Ennodia
|
|
20
|
+
## Choose Ennodia when
|
|
21
21
|
|
|
22
22
|
- A primary agent needs help and can call MCP tools.
|
|
23
23
|
- You want local agent command-line interfaces (CLIs) to run as child tasks.
|
|
@@ -26,12 +26,12 @@ task.
|
|
|
26
26
|
- You want a Judge to map the differences. You want a Result Advisor to
|
|
27
27
|
recommend an answer. The user does not need to grade all responses.
|
|
28
28
|
|
|
29
|
-
## Key
|
|
29
|
+
## Key difference
|
|
30
30
|
|
|
31
31
|
ChatHub helps a person compare chatbot outputs. Ennodia helps an agent delegate
|
|
32
32
|
work to other local agents and inspect what happened.
|
|
33
33
|
|
|
34
|
-
## Common
|
|
34
|
+
## Common mistake
|
|
35
35
|
|
|
36
36
|
Do not call Ennodia "ChatHub for agents." Explain that Ennodia provides task
|
|
37
37
|
orchestration and traces. It does not provide a human chat comparison interface.
|
|
@@ -17,7 +17,7 @@ interface (API) subset to the same agents.
|
|
|
17
17
|
Some adjacent tools have similar descriptions. They usually have different
|
|
18
18
|
purposes.
|
|
19
19
|
|
|
20
|
-
## Choose the
|
|
20
|
+
## Choose the right page
|
|
21
21
|
|
|
22
22
|
| Question | Page |
|
|
23
23
|
| --- | --- |
|
|
@@ -30,7 +30,7 @@ purposes.
|
|
|
30
30
|
| Is Ennodia model merging? | [Ennodia vs Model Merging](./model-merging/) |
|
|
31
31
|
| What is the broader pattern? | [Second Opinions as Infrastructure](/docs/concepts/second-opinions/) |
|
|
32
32
|
|
|
33
|
-
## What Ennodia
|
|
33
|
+
## What Ennodia is
|
|
34
34
|
|
|
35
35
|
Ennodia is:
|
|
36
36
|
|
|
@@ -47,7 +47,7 @@ Ennodia is:
|
|
|
47
47
|
Result Advisor recommends an answer
|
|
48
48
|
- a native Agent Skills bridge for harnesses that support `SKILL.md` folders
|
|
49
49
|
|
|
50
|
-
## What Ennodia
|
|
50
|
+
## What Ennodia is not
|
|
51
51
|
|
|
52
52
|
Ennodia is not:
|
|
53
53
|
|
|
@@ -64,7 +64,7 @@ Durable model and skill preference memory is roadmap work. By default, Ennodia
|
|
|
64
64
|
stores terminal run history locally. In-progress run and task state remains
|
|
65
65
|
process-local.
|
|
66
66
|
|
|
67
|
-
## Other
|
|
67
|
+
## Other related work
|
|
68
68
|
|
|
69
69
|
Some related ideas do not need a full page yet:
|
|
70
70
|
|
|
@@ -10,14 +10,14 @@ manage, and deploy long-running, stateful agents.
|
|
|
10
10
|
Ennodia is intentionally narrower. It does not require a custom graph,
|
|
11
11
|
state machine, durable agent state, or application runtime.
|
|
12
12
|
|
|
13
|
-
## Choose LangGraph
|
|
13
|
+
## Choose LangGraph when
|
|
14
14
|
|
|
15
15
|
- You create an agentic application.
|
|
16
16
|
- You need custom graph nodes, edges, state, persistence, or deployment control.
|
|
17
17
|
- You want to model a workflow as programmable application infrastructure.
|
|
18
18
|
- You own the application code and want a framework embedded in that code.
|
|
19
19
|
|
|
20
|
-
## Choose Ennodia
|
|
20
|
+
## Choose Ennodia when
|
|
21
21
|
|
|
22
22
|
- You have a primary agent in a Model Context Protocol (MCP) client.
|
|
23
23
|
- You want that agent to request help from other installed local agent
|
|
@@ -28,7 +28,7 @@ state machine, durable agent state, or application runtime.
|
|
|
28
28
|
validated start request.
|
|
29
29
|
- You want a small MCP surface without a full application framework.
|
|
30
30
|
|
|
31
|
-
## Key
|
|
31
|
+
## Key difference
|
|
32
32
|
|
|
33
33
|
LangGraph helps developers create agent systems. Ennodia lets one agent delegate
|
|
34
34
|
work to other local agents during a task.
|
|
@@ -36,7 +36,7 @@ work to other local agents during a task.
|
|
|
36
36
|
Plan Advisor does not change this boundary: it can propose explicit worker
|
|
37
37
|
assignments, but it cannot define arbitrary graph behavior or execute the plan.
|
|
38
38
|
|
|
39
|
-
## Common
|
|
39
|
+
## Common mistake
|
|
40
40
|
|
|
41
41
|
Do not treat Ennodia as a lighter LangGraph runtime. Ennodia does not replace a
|
|
42
42
|
programmable graph framework. It gives an active agent a simple way to request
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Ennodia vs Mixture-of-Agents and
|
|
2
|
+
title: Ennodia vs Mixture-of-Agents and ensembles
|
|
3
3
|
description: How Ennodia differs from Mixture-of-Agents papers, large language model ensembles, majority voting, and benchmark-oriented aggregation.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -11,14 +11,14 @@ or task-specific aggregation over multiple model outputs.
|
|
|
11
11
|
Ennodia uses some related ideas, but it is not primarily a benchmark ensemble
|
|
12
12
|
or formal voting engine.
|
|
13
13
|
|
|
14
|
-
## Choose Mixture-of-Agents or an
|
|
14
|
+
## Choose Mixture-of-Agents or an ensemble when
|
|
15
15
|
|
|
16
16
|
- You define an inference strategy.
|
|
17
17
|
- You want a repeatable aggregation method over model outputs.
|
|
18
18
|
- You need benchmarked quality gains for a specific task family.
|
|
19
19
|
- You want majority vote, quorum, weighting, or another formal decision rule.
|
|
20
20
|
|
|
21
|
-
## Choose Ennodia
|
|
21
|
+
## Choose Ennodia when
|
|
22
22
|
|
|
23
23
|
- You want to run real local agent command-line interfaces (CLIs), not only raw
|
|
24
24
|
model calls.
|
|
@@ -27,13 +27,13 @@ or formal voting engine.
|
|
|
27
27
|
a result.
|
|
28
28
|
- You need practical local delegation more than a research-grade ensemble.
|
|
29
29
|
|
|
30
|
-
## Key
|
|
30
|
+
## Key difference
|
|
31
31
|
|
|
32
32
|
Mixture-of-Agents and ensemble methods focus on output aggregation. Ennodia
|
|
33
33
|
focuses on visible local agent orchestration. It then uses model-led Compare
|
|
34
34
|
when multiple answers are available.
|
|
35
35
|
|
|
36
|
-
## Common
|
|
36
|
+
## Common mistake
|
|
37
37
|
|
|
38
38
|
Do not describe Ennodia Compare as consensus. The Judge maps the candidate
|
|
39
39
|
outputs, and the Result Advisor recommends an answer. It does not implement
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Ennodia vs
|
|
2
|
+
title: Ennodia vs model merging
|
|
3
3
|
description: How Ennodia differs from model merging tools such as mergekit and other weight-level model-combination approaches.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -10,14 +10,14 @@ describes it as tools for model-checkpoint merging strategies.
|
|
|
10
10
|
|
|
11
11
|
Ennodia does not change model weights.
|
|
12
12
|
|
|
13
|
-
## Choose
|
|
13
|
+
## Choose model merging when
|
|
14
14
|
|
|
15
15
|
- You control compatible model weights.
|
|
16
16
|
- You want one merged model artifact.
|
|
17
17
|
- You want changes to happen before inference.
|
|
18
18
|
- You evaluate merge recipes, checkpoints, or open-weight model behavior.
|
|
19
19
|
|
|
20
|
-
## Choose Ennodia
|
|
20
|
+
## Choose Ennodia when
|
|
21
21
|
|
|
22
22
|
- You want separate agents to run at task time.
|
|
23
23
|
- You want to keep provider subscriptions and installed command-line interfaces
|
|
@@ -26,12 +26,12 @@ Ennodia does not change model weights.
|
|
|
26
26
|
output.
|
|
27
27
|
- You do not want to produce or host a new model artifact.
|
|
28
28
|
|
|
29
|
-
## Key
|
|
29
|
+
## Key difference
|
|
30
30
|
|
|
31
31
|
Model merging changes the model artifact. Ennodia coordinates multiple agents at
|
|
32
32
|
runtime.
|
|
33
33
|
|
|
34
|
-
## Common
|
|
34
|
+
## Common mistake
|
|
35
35
|
|
|
36
36
|
Do not describe Ennodia as model merging, fine-tuning, or weight composition. It
|
|
37
37
|
is runtime orchestration over installed local agents.
|
|
@@ -19,7 +19,7 @@ installed local agents.
|
|
|
19
19
|
|
|
20
20
|
Ennodia does not sell hosted model access or proxy provider billing.
|
|
21
21
|
|
|
22
|
-
## Choose OpenRouter
|
|
22
|
+
## Choose OpenRouter when
|
|
23
23
|
|
|
24
24
|
- You want one hosted API for many models.
|
|
25
25
|
- You want provider routing, fallback, and pricing controls behind one endpoint.
|
|
@@ -27,7 +27,7 @@ Ennodia does not sell hosted model access or proxy provider billing.
|
|
|
27
27
|
command-line interface (CLI) runs.
|
|
28
28
|
- You want centralized hosted model access outside a local desktop agent installation.
|
|
29
29
|
|
|
30
|
-
## Choose Ennodia
|
|
30
|
+
## Choose Ennodia when
|
|
31
31
|
|
|
32
32
|
- Your primary agent has a task in a Model Context Protocol (MCP) client.
|
|
33
33
|
- You want that agent to request help from installed local agent command-line
|
|
@@ -41,7 +41,7 @@ Ennodia does not sell hosted model access or proxy provider billing.
|
|
|
41
41
|
automatic execution. Plan Advisor cannot start the proposal.
|
|
42
42
|
- You want a local HTTP bridge over those same agent runs.
|
|
43
43
|
|
|
44
|
-
## Key
|
|
44
|
+
## Key difference
|
|
45
45
|
|
|
46
46
|
OpenRouter routes hosted model API calls. Ennodia coordinates local agent
|
|
47
47
|
subprocesses and can expose that local orchestration through MCP or IO.
|
|
@@ -49,7 +49,7 @@ subprocesses and can expose that local orchestration through MCP or IO.
|
|
|
49
49
|
OpenRouter provides infrastructure for application developers. Ennodia is a
|
|
50
50
|
local collaboration tool for agents in a code or research workflow.
|
|
51
51
|
|
|
52
|
-
## Common
|
|
52
|
+
## Common mistake
|
|
53
53
|
|
|
54
54
|
Do not describe Ennodia as a cheaper OpenRouter or an OpenRouter replacement.
|
|
55
55
|
It solves a different problem: visible delegation to installed local agents.
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Compositional
|
|
2
|
+
title: Compositional audits
|
|
3
3
|
description: Split large reviews into focused slices, route them to local agents, and combine the results without losing traceability.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
The tools on this page are in the [full tool set](/docs/reference/mcp-tools/#tool-sets). Add `--tools all` to the Ennodia server arguments to load them.
|
|
7
|
+
|
|
6
8
|
Large reviews work better when each agent gets a small, explicit slice. Ennodia
|
|
7
9
|
supports this pattern with `ennodia_start_compositional`, existing task polling,
|
|
8
10
|
and `ennodia_start_compare`. The `compositional-audit` skill gives reviewers a
|
|
9
11
|
consistent rubric.
|
|
10
12
|
|
|
11
|
-
## When
|
|
13
|
+
## When to use it
|
|
12
14
|
|
|
13
15
|
Use a compositional audit when the request mixes multiple risk types, such as:
|
|
14
16
|
|
|
@@ -20,7 +22,7 @@ Use a compositional audit when the request mixes multiple risk types, such as:
|
|
|
20
22
|
One broad prompt can make every reviewer repeat the same surface-level answer.
|
|
21
23
|
Slices make each response easier to verify and combine.
|
|
22
24
|
|
|
23
|
-
## Good
|
|
25
|
+
## Good slice shape
|
|
24
26
|
|
|
25
27
|
A useful slice includes:
|
|
26
28
|
|
|
@@ -48,7 +50,7 @@ Return under 450 words:
|
|
|
48
50
|
4. concrete recommendation
|
|
49
51
|
```
|
|
50
52
|
|
|
51
|
-
## Current
|
|
53
|
+
## Current workflow
|
|
52
54
|
|
|
53
55
|
Install the skill into the harnesses you want to use:
|
|
54
56
|
|
|
@@ -150,14 +152,14 @@ When `compareReady` is true, pass the returned `readyTaskIds` to
|
|
|
150
152
|
}
|
|
151
153
|
```
|
|
152
154
|
|
|
153
|
-
## What
|
|
155
|
+
## What to avoid
|
|
154
156
|
|
|
155
157
|
- Do not send the entire plan to every shard if the goal is faster, deeper review.
|
|
156
158
|
- Do not mix unrelated evidence in one slice.
|
|
157
159
|
- Do not treat failed, empty, or access-limited shard output as a normal review.
|
|
158
160
|
- Do not claim consensus when the slices disagree.
|
|
159
161
|
|
|
160
|
-
## Current
|
|
162
|
+
## Current boundary
|
|
161
163
|
|
|
162
164
|
`ennodia_estimate_compositional_budget` resolves and budgets slices without
|
|
163
165
|
starting child agents. `ennodia_start_compositional` starts and budgets the shard
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Data
|
|
2
|
+
title: Data governance
|
|
3
3
|
description: What Ennodia stores, what it does not store, and where data can leave the machine.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -8,7 +8,7 @@ task output, or telemetry to an Ennodia-hosted service. The selected child agent
|
|
|
8
8
|
CLIs can still contact their own model providers according to their own
|
|
9
9
|
configuration, subscriptions, and policies.
|
|
10
10
|
|
|
11
|
-
## What Ennodia
|
|
11
|
+
## What Ennodia stores
|
|
12
12
|
|
|
13
13
|
Live process state is held in memory while the server runs. It includes run
|
|
14
14
|
status, task IDs, command summaries, stdout/stderr captures, failures, timing,
|
|
@@ -44,7 +44,7 @@ A concurrent append in the short compaction window can also be lost.
|
|
|
44
44
|
Set `ENNODIA_HISTORY=0` to disable durable history. Set
|
|
45
45
|
`ENNODIA_HISTORY_DIR=/path/to/dir` to move the history file.
|
|
46
46
|
|
|
47
|
-
## What Ennodia
|
|
47
|
+
## What Ennodia does not know
|
|
48
48
|
|
|
49
49
|
Budget estimates are preflight input-token estimates, not provider bills. They
|
|
50
50
|
exclude provider-side system prompts, file reads performed inside a child
|
|
@@ -52,17 +52,13 @@ agent, tool loops, output tokens, cache behavior, and private subscription
|
|
|
52
52
|
state. Subscription quota is reported as unknown unless a supported local
|
|
53
53
|
surface exposes a reliable value.
|
|
54
54
|
|
|
55
|
-
## Explicit
|
|
55
|
+
## Explicit writes
|
|
56
56
|
|
|
57
57
|
`ennodia_install_skills` can write bundled `SKILL.md` folders into project or
|
|
58
58
|
user skill locations. It defaults to `dryRun: true`, and project-scope installs
|
|
59
59
|
require an explicit `cwd`.
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
provided. Those results are ignored by default because live outputs can include
|
|
63
|
-
model text and environment metadata.
|
|
64
|
-
|
|
65
|
-
## Practical Guidance
|
|
61
|
+
## Practical guidance
|
|
66
62
|
|
|
67
63
|
Use Ennodia for work that you are willing to send to the selected local agent
|
|
68
64
|
CLIs. Use `cwd` deliberately. Prefer short staged case files over broad prompts.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: How Ennodia
|
|
2
|
+
title: How Ennodia works
|
|
3
3
|
description: A visible orchestration pipeline for optional plan advice, routing, budget checks, task watching, recovery, Judge, and Result Advisor passes.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -8,7 +8,7 @@ turns one request into a visible orchestration. The normal entrypoint is
|
|
|
8
8
|
`ennodia_run`. Lower-level task and Compare tools stay available for debugging
|
|
9
9
|
and manual control.
|
|
10
10
|
|
|
11
|
-
## Pipeline at a
|
|
11
|
+
## Pipeline at a glance
|
|
12
12
|
|
|
13
13
|
| Stage | What happens | Main tools |
|
|
14
14
|
| --- | --- | --- |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Second
|
|
2
|
+
title: Second opinions as infrastructure
|
|
3
3
|
description: How to use Ennodia for independent artificial intelligence (AI) panels, decomposed reviews, and red-team prompts.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -11,7 +11,7 @@ delegation to installed local agents with a visible trace. Compare turns
|
|
|
11
11
|
multiple answers into a disagreement map and one usable result. The Judge maps
|
|
12
12
|
the evidence, and the Result Advisor recommends the answer.
|
|
13
13
|
|
|
14
|
-
## Three
|
|
14
|
+
## Three patterns
|
|
15
15
|
|
|
16
16
|
### Replicate
|
|
17
17
|
|
|
@@ -79,7 +79,7 @@ Fan out prompts that argue against a proposal from different angles.
|
|
|
79
79
|
Use this when the primary agent has a plausible plan and you want
|
|
80
80
|
independent pressure before committing.
|
|
81
81
|
|
|
82
|
-
## Staging
|
|
82
|
+
## Staging pattern
|
|
83
83
|
|
|
84
84
|
For larger reviews, have the primary agent stage a folder containing the case
|
|
85
85
|
file: relevant paths, screenshots, dataset summaries, contracts, or decision
|
|
@@ -87,7 +87,7 @@ criteria. Then pass `cwd` to Ennodia so child agents can inspect the same local
|
|
|
87
87
|
context independently. Keep staged material deliberate. Do not give every agent
|
|
88
88
|
an unbounded workspace when a smaller evidence bundle will do.
|
|
89
89
|
|
|
90
|
-
## Skills
|
|
90
|
+
## Skills carry expertise
|
|
91
91
|
|
|
92
92
|
Use Agent Skills as reusable rubrics. A skill can define the review standard,
|
|
93
93
|
expected evidence, output shape, and escalation rules. Ennodia installs bundled
|
|
@@ -104,7 +104,7 @@ run without inlining the full instructions into every prompt.
|
|
|
104
104
|
- Exam or rubric QA: send the same staged rubric to multiple agents. Compare
|
|
105
105
|
where their grading differs.
|
|
106
106
|
|
|
107
|
-
## Honest
|
|
107
|
+
## Honest constraints
|
|
108
108
|
|
|
109
109
|
Ennodia supports careful review. A run usually takes minutes, not seconds.
|
|
110
110
|
Compare adds two serial model passes after the child agents finish.
|