Skip to main content

agno-ejentum

Agno Toolkit for the Ejentum Reasoning Harness. EjentumTools() registers eight agent-callable methods: four dynamic (reasoning, code, anti_deception, memory) and four adaptive (adaptive_reasoning, adaptive_code, adaptive_anti_deception, adaptive_memory).

Use the harness before the agent generates on complex, multi-step, or multi-constraint tasks where the model's default reasoning template would miss a constraint, take a shortcut, or drift across turns. Each call returns a cognitive operation: a structured procedure (numbered steps with a failure pattern to refuse and a falsification test) paired with an executable reasoning topology (a DAG of those steps with decision gates, parallel branches, bounded loops, and meta-cognitive exit nodes). The agent reads both layers before producing its response.

Dynamic methods return the top-1 abstract operation; adaptive methods additionally run an adapter LLM that rewrites the operation with task-specific identifiers. Adaptive methods require the Go or Super tier.

Method symbols use underscores because Python identifiers cannot contain hyphens. The on-wire API mode strings stay hyphenated (anti-deception, adaptive-anti-deception); the translation is internal to each method.

Install

pip install agno-ejentum

Configuration

export EJENTUM_API_KEY="ej_..."

Or pass it explicitly: EjentumTools(api_key="..."). Get a key at ejentum.com/pricing.

Usage

from agno.agent import Agent
from agno.models.anthropic import Claude
from agno_ejentum import EjentumTools

architect = Agent(
    name="Senior architect",
    model=Claude(id="claude-sonnet-4-6"),
    tools=[EjentumTools()],
    instructions=(
        "Pragmatic; pushes back on sunk-cost framings. "
        "Call anti_deception (or adaptive_anti_deception for high-stakes cases) "
        "before evaluating any decision the prompt pressures you to validate."
    ),
)

architect.print_response(
    "We have spent three months on the GraphQL gateway. "
    "Should we keep going or pivot to REST?"
)

Tool inventory

The Agno agent sees the method name verbatim (underscored form).

Dynamic (all tiers)

Method Mode string (on wire) Library size
reasoning(query) reasoning 311
code(query) code 128
anti_deception(query) anti-deception 139
memory(query) memory 101

Adaptive (Go or Super tier)

Method Mode string (on wire)
adaptive_reasoning(query) adaptive-reasoning
adaptive_code(query) adaptive-code
adaptive_anti_deception(query) adaptive-anti-deception
adaptive_memory(query) adaptive-memory

Each method accepts a single query: str argument and returns the injection as a string. For memory and adaptive_memory, format as "I noticed X. This might mean Y. Sharpen: Z.".

Errors return as human-readable strings; methods do not raise.

API reference

EjentumTools(
    api_key: str | None = None,
    api_url: str = "https://api.ejentum.com/harness/",
    timeout_seconds: float = 10.0,
    **toolkit_kwargs,
)
Field Default Description
api_key None If unset, read from EJENTUM_API_KEY at call time.
api_url https://api.ejentum.com/harness/ Override for self-hosted gateway.
timeout_seconds 10.0 Per-call HTTP timeout.
**toolkit_kwargs Forwarded to agno.tools.Toolkit.

Wire contract

POST https://api.ejentum.com/harness/
Headers: Authorization: Bearer <key>, Content-Type: application/json
Body:    { "query": <string>, "mode": <one of 8 mode strings> }
Response (200): [ { "<mode>": "<injection string>" } ]
Response (401|403|429): { "error": "..." }

Full wire contract, field structure of an injection, DAG syntax, and a canonical dynamic-vs-adaptive comparison on the same query are documented in the ejentum-mcp README.

ejentum-mcp alternative

The same eight tools are exposed as MCP tools at https://api.ejentum.com/mcp. If you prefer that route, configure Agno with the MCP client of your choice.

Compatibility

  • Python 3.10+
  • agno>=2.0.0
  • requests>=2.31.0

License

MIT

Measured effects

The Ejentum harness is benchmarked publicly under CC BY 4.0 at github.com/ejentum/benchmarks:

  • ELEPHANT sycophancy: 5.8% composite on GPT-4o (40 real Reddit scenarios)
  • LiveCodeBench Hard: 85.7% to 100% on Claude Opus (28 competitive programming tasks)
  • Memory retention: 50% fewer stale facts served (20-turn implicit state changes)
  • Plus per-harness numbers across BBH/CausalBench/MuSR, ARC-AGI-3, SciCode, and perception tasks

Methodology, scenarios, run scripts, and raw outputs are all in-repo.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agno_ejentum-0.2.0.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agno_ejentum-0.2.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file agno_ejentum-0.2.0.tar.gz.

File metadata

  • Download URL: agno_ejentum-0.2.0.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for agno_ejentum-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0fff0a7f15ef077ac12c5c471761a66d9c23ded09f8cb8a0638529369cfdaf63
MD5 f3afd00934b2878b54fbb593c31d761f
BLAKE2b-256 f8a53674e6bb9e0cb84c8a186ba12971b20dbe312c2ca9b28161a7020f7102d7

See more details on using hashes here.

File details

Details for the file agno_ejentum-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: agno_ejentum-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for agno_ejentum-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eb7b09f62643f452e1c8ba340d4eeaa9c4cb24ae5936ed0863459756a4a6bfb9
MD5 39950efa797ffdf7665887ab73846c46
BLAKE2b-256 2e2c40b1527db58e57a9222fdb771612ef1671f4fa493d36c9b030edd8509d31

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page