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.
Files changed (84) hide show
  1. package/CONTRIBUTING.md +2 -19
  2. package/README.md +51 -31
  3. package/docs/comparisons/agent-frameworks.md +5 -5
  4. package/docs/comparisons/autogen.md +4 -4
  5. package/docs/comparisons/chathub.md +4 -4
  6. package/docs/comparisons/index.md +4 -4
  7. package/docs/comparisons/langgraph.md +4 -4
  8. package/docs/comparisons/mixture-of-agents.md +5 -5
  9. package/docs/comparisons/model-merging.md +5 -5
  10. package/docs/comparisons/openrouter.md +4 -4
  11. package/docs/concepts/compositional-audits.md +8 -6
  12. package/docs/concepts/data-governance.md +5 -9
  13. package/docs/concepts/how-ennodia-works.md +2 -2
  14. package/docs/concepts/interfaces-and-core.md +1 -1
  15. package/docs/concepts/second-opinions.md +5 -5
  16. package/docs/evidence/index.md +6 -13
  17. package/docs/evidence/measurement.md +6 -5
  18. package/docs/getting-started.md +9 -6
  19. package/docs/guides/agent-skills.md +6 -5
  20. package/docs/guides/budgets-and-limits.md +8 -6
  21. package/docs/guides/pragmatic-mode.md +2 -0
  22. package/docs/guides/recipes.md +1 -4
  23. package/docs/guides/running-better-audits.md +7 -7
  24. package/docs/guides/troubleshooting.md +0 -2
  25. package/docs/guides/understand-results.md +0 -2
  26. package/docs/index.md +2 -4
  27. package/docs/install.md +11 -9
  28. package/docs/questions.md +56 -0
  29. package/docs/reference/controlled-english.md +1 -3
  30. package/docs/reference/ennodia-io.md +7 -7
  31. package/docs/reference/mcp-tools.md +69 -15
  32. package/docs/reference/supported-harnesses.md +9 -4
  33. package/docs/roadmap.md +0 -2
  34. package/package.json +4 -11
  35. package/skills/pragmatic/SKILL.md +2 -0
  36. package/src/cli.ts +31 -15
  37. package/src/compare.ts +37 -1
  38. package/src/core.ts +2 -4
  39. package/src/diagnosis.ts +48 -1
  40. package/src/harnesses.ts +54 -25
  41. package/src/index.ts +4 -0
  42. package/src/runs.ts +17 -8
  43. package/src/server.ts +55 -2
  44. package/src/tasks.ts +145 -37
  45. package/src/version.ts +1 -1
  46. package/bench/README.md +0 -34
  47. package/bench/bug-recall/run.ts +0 -339
  48. package/bench/bug-recall/scorer.ts +0 -424
  49. package/bench/fixtures/bug-recall/001-missing-await/input.ts +0 -33
  50. package/bench/fixtures/bug-recall/001-missing-await/oracle.json +0 -28
  51. package/bench/fixtures/bug-recall/001-missing-await/responses/claude-code-solo.md +0 -1
  52. package/bench/fixtures/bug-recall/001-missing-await/responses/codex-solo.md +0 -1
  53. package/bench/fixtures/bug-recall/001-missing-await/responses/ennodia-parallel-compare.md +0 -1
  54. package/bench/fixtures/bug-recall/002-timeout-drain/input.ts +0 -40
  55. package/bench/fixtures/bug-recall/002-timeout-drain/oracle.json +0 -28
  56. package/bench/fixtures/bug-recall/002-timeout-drain/responses/claude-code-solo.md +0 -1
  57. package/bench/fixtures/bug-recall/002-timeout-drain/responses/codex-solo.md +0 -1
  58. package/bench/fixtures/bug-recall/002-timeout-drain/responses/ennodia-parallel-compare.md +0 -1
  59. package/bench/fixtures/bug-recall/003-schema-contract/input.ts +0 -22
  60. package/bench/fixtures/bug-recall/003-schema-contract/oracle.json +0 -28
  61. package/bench/fixtures/bug-recall/003-schema-contract/responses/claude-code-solo.md +0 -1
  62. package/bench/fixtures/bug-recall/003-schema-contract/responses/codex-solo.md +0 -1
  63. package/bench/fixtures/bug-recall/003-schema-contract/responses/ennodia-parallel-compare.md +0 -1
  64. package/bench/fixtures/bug-recall/004-cancel-propagation/input.ts +0 -28
  65. package/bench/fixtures/bug-recall/004-cancel-propagation/oracle.json +0 -28
  66. package/bench/fixtures/bug-recall/004-cancel-propagation/responses/claude-code-solo.md +0 -1
  67. package/bench/fixtures/bug-recall/004-cancel-propagation/responses/codex-solo.md +0 -1
  68. package/bench/fixtures/bug-recall/004-cancel-propagation/responses/ennodia-parallel-compare.md +0 -1
  69. package/bench/results/.gitkeep +0 -1
  70. package/docs/evidence/building-ennodia.md +0 -66
  71. package/docs/evidence/docs-drift.md +0 -73
  72. package/docs/evidence/skill-trial.md +0 -68
  73. package/docs/reference/benchmarks.md +0 -64
  74. package/examples/docs-drift/README.md +0 -8
  75. package/examples/docs-drift/archive/migration.md +0 -4
  76. package/examples/docs-drift/check.ts +0 -7
  77. package/examples/docs-drift/config.ts +0 -8
  78. package/examples/docs-drift/demo.ts +0 -54
  79. package/examples/docs-drift/recorded-run.json +0 -16
  80. package/examples/skill-trial/README.md +0 -8
  81. package/examples/skill-trial/check.ts +0 -15
  82. package/examples/skill-trial/contract.md +0 -7
  83. package/examples/skill-trial/recorded-trial.json +0 -42
  84. 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, but not benchmark fixtures.
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
- **Keep your agent. Get another way forward.**
6
+ **Ennodia isn't another agent. It connects the agents you use.**
7
7
 
8
- When a task stalls, Ennodia lets your primary artificial intelligence (AI) agent try another agent, model, or skill.
9
- The findings come back to the same conversation.
10
- You keep your familiar interface and decide what to try next.
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
- Use Ennodia MCP to get a second opinion on this bug.
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
- ## When it helps
16
+ ## Why use it
20
17
 
21
- - A task is stuck and you want to check another approach.
22
- - A skill looks useful, but you want to try it in a separate task first.
23
- - Two answers disagree and you need to identify the next check.
24
- - An unsuccessful attempt can help you avoid repeating the same approach under the same conditions.
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
- Your main agent checks the findings and integrates useful work.
27
- Additional attempts consume time and resources. General time or token savings have not been established.
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 primary agent:
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
- ## Use your installed agents and skills
69
+ ## How a handoff works
57
70
 
58
- Supported agents: Codex CLI, Claude Code, OpenCode, Kilo Code, Kiro CLI, Cline, Hermes Agent, and Antigravity.
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
- ## See it in practice
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
- The existing saved-answer benchmark is a regression check, not a live speed or cost comparison.
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 entrypoint is `ennodia_run`. The optional Plan Advisor proposes explicit tasks before execution.
97
- Compare examines completed answers and returns advice with its evidence and limitations.
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
- Version 0.3.0 supports independent model attempts, tailored planning, skill trials and evidence comparison.
111
- The published `ennodia@next` recipes retain the earlier single-worker restriction.
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 Agent Frameworks
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 Agent Framework When
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 When
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 Difference
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 Mistake
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 When
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 When
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 Difference
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 Mistake
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 When
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 When
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 Difference
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 Mistake
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 Right Page
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 Is
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 Is Not
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 Related Work
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 When
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 When
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 Difference
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 Mistake
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 Ensembles
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 Ensemble When
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 When
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 Difference
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 Mistake
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 Model Merging
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 Model Merging When
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 When
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 Difference
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 Mistake
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 When
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 When
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 Difference
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 Mistake
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 Audits
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 To Use It
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 Slice Shape
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 Workflow
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 To Avoid
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 Boundary
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 Governance
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 Stores
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 Does Not Know
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 Writes
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
- Benchmark runs write under `bench/results/bug-recall/` unless `--out` is
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 Works
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 Glance
11
+ ## Pipeline at a glance
12
12
 
13
13
  | Stage | What happens | Main tools |
14
14
  | --- | --- | --- |
@@ -3,7 +3,7 @@ title: Interfaces and Core
3
3
  description: How Ennodia's Model Context Protocol (MCP) interface and shared core behavior relate to each other.
4
4
  ---
5
5
 
6
- ## Current Shape
6
+ ## Current shape
7
7
 
8
8
  Ennodia has a Model Context Protocol (MCP) interface and a shared Core.
9
9
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: Second Opinions as Infrastructure
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 Patterns
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 Pattern
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 Carry Expertise
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 Constraints
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.