# BoxLang AI

> BoxLang AI (bx-ai) is Ortus Solutions' Apache-2.0 agent framework for BoxLang on the JVM, with agents, tools, memory, RAG, human approval, and an MCP client and server across more than 15 model providers.

- Canonical: https://www.anchorterminal.com/tools/boxlang-ai
- Pricing: https://www.anchorterminal.com/tools/boxlang-ai#pricing
- Reviews: https://www.anchorterminal.com/tools/boxlang-ai#reviews
- Markdown: https://www.anchorterminal.com/tools/boxlang-ai.md (~8,150 tokens)
- Slim: https://www.anchorterminal.com/tools/boxlang-ai.min.md (~1,530 tokens, same facts, less prose, for token-sensitive contexts)
- JSON: https://www.anchorterminal.com/tools/boxlang-ai.json (this page as data, same URL with Accept: application/json)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT boxlang-ai.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-01

## Overview

**Grade B · 65.8/100 · rank #328 of 1260 · #10 in Agent frameworks & SDKs · not agent-ready · confidence medium**


More from Ortus Solutions, listed separately because each is its own product: [BxPlaywright](https://www.anchorterminal.com/tools/bx-playwright.md) (Browser automation).

## Assessment

A JVM agent framework with human approval, guardrail middleware and an MCP client over HTTP and stdio, all enforced in code, with three releases in the 90 days to 1 November 2026. It runs only on BoxLang, the stronger guards are opt-in, and minor releases have renamed public classes without a deprecation period.

## Facts

| Field | Value |
| --- | --- |
| Vendor | Ortus Solutions (https://ai.boxlang.io) |
| Kind | Agent framework |
| Category | Agent frameworks & SDKs (https://www.anchorterminal.com/categories/frameworks) |
| Auth | None · A library with no account of its own. Model providers need their own keys, set in boxlang.json or read from each provider's environment variable (OPENAI_API_KEY, CLAUDE_API_KEY and so on). Ollama, Docker Model Runner and the mock provider need no key. |
| Pricing | Free (Free · OSS) · Free under Apache-2.0. Model calls are billed by the provider. Ortus sells optional BoxLang runtime plans from $749 a year (Starter, one server) to $4,999 a node a year (BoxLang++), which the readme says add more vector memories and an Agent Dashboard. |
| x402 | No · Local library. No x402, MPP or L402 in the repository, the docs or the plans page, checked 1 November 2026. |
| Licence | Apache-2.0 |
| Packages | forgebox: `bx-ai` |
| Source | https://github.com/ortus-boxlang/bx-ai |
| Docs | https://ai.ortusbooks.com |
| llms.txt | https://ai.ortusbooks.com/llms.txt |
| Last release | 2026-10-20 |
| Languages | BoxLang 1.14.0 or later on Java 21 (the 3.6 announcement says BoxLang 1.18 or later) |
| Models | OpenAI, Claude, Gemini, Grok, Groq, Mistral, DeepSeek, Cohere, Perplexity, MiniMax, OpenRouter, Hugging Face, AWS Bedrock, Cloudflare Workers AI, Ollama, Docker Model Runner, any OpenAI-compatible API, plus Voyage, ElevenLabs and Cartesia for embeddings and speech |
| MCP client | HTTP (JSON-RPC, with event-stream answers read since 3.6.0), and stdio since 3.6.0, with tool filters and prefixes per server |
| MCP server | HTTP at /~bxai/mcp.bxm in a web app, and stdio. Basic auth, API keys, CORS and body limits are opt-in |
| Multi-agent | Sub-agents and an agent registry |
| Durable state | Suspended approval runs checkpoint to cache or JDBC memory and resume without replaying the model call. No crash recovery for runs in general |
| Human approval | HumanInTheLoopMiddleware with tool-name, risk-level, annotation, callback and composite policies, through CLI or signed HTTP gateways |
| Guardrails | Unicode hygiene and context fencing on by default. Input sanitiser, guardrail, LLM-judge and output-guard middleware opt-in |
| Tracing | BoxLang interception points, LoggingMiddleware and FlightRecorderMiddleware. No OpenTelemetry found |
| Telemetry | None found in the module's source. Requests go only to the configured providers |
| Releases in 90 days | 3.4.0 (1 September), 3.5.0 (11 September) and 3.6.0 (20 October 2026) |
| Separate modules | bx-playwright (browser automation with its own MCP server) and bx-audio (audio tools) are Ortus modules announced with 3.6 and aren't graded here |
| Paid plans | BoxLang runtime plans, Starter $749 a year, BoxLang+ $1,999 a server or $2,999 a node a year, BoxLang++ $3,999 or $4,999 |
| Capabilities | agent.framework, agent.multi-agent, agent.mcp-client |
| Tags | framework, boxlang, jvm, open-source, apache-2.0, mcp, llms-txt, free |
| JSON | https://www.anchorterminal.com/api/v1/tools/boxlang-ai.json |

## Score breakdown (methodology v0.7, October 2026 research run)

Assessed 2026-11-01 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. "This run" is each category's share of the 100 points.

| Category | Weight | This run | Score (0–100) | Points |
| --- | --- | --- | --- | --- |
| Reliability | 16% | 20 | 66 | 13.2 |
| Performance | 10% | pending | pending | n/a |
| Schema & documentation | 13% | 16.2 | 71 | 11.5 |
| Agent ergonomics | 13% | 16.2 | 74 | 12.0 |
| Security & auth | 14% | 17.5 | 71 | 12.4 |
| Payments & pricing | 10% | 12.5 | 50 | 6.2 |
| Task success | 10% | pending | pending | n/a |
| Maintenance & community | 7% | 8.8 | 83 | 7.3 |
| Transparency & trust (editorial 65, provenance 74) | 7% | 8.8 | 70 | 6.1 |
| Negative events | up to −15 | up to −15 | 2026-10-20. -3, a breaking change in a minor release without advance notice. 3.6.0 renamed the `MCPClient` class to `MCPHttpClient` with no alias, so code that created the class directly must move to `MCP( url )`. The changelog's Migration section says so on release day. 3.5.0 (11 September) likewise raised the minimum BoxLang runtime from 1.8.0 to 1.14.0. One term at the floor, as google-adk's minor-release breaking changes took. https://github.com/ortus-boxlang/bx-ai/blob/main/changelog.md  | -3 |
| **Total** | | | | **65.8 → B** |

### Why each score

- Reliability 66 (checked 2026-11-01): Read with the local-software lines. Official package on ForgeBox, installed with `install-bx-module bx-ai` or `box install bx-ai`, with BoxLang 1.14.0 or later in box.json and JDK 21 in CONTRIBUTING.md, but the 3.6 announcement says BoxLang 1.18 or later (18 of 20). tests.yml runs about 140 test classes against Ollama and the vector stores in Docker Compose, and against paid providers on development and releases, on pull requests and pushes to development. Whether runs pass wasn't read, since WebFetch refused github.com (15 of 25). Open issues and replies weren't read for the same reason. The changelog closes issues #182 to #259 in 3.3.1 to 3.4.0, and bugs also go to Ortus's Jira (10 of 25). Keep a Changelog with semantic versioning stated and Migration sections, but breaking changes ship in minor releases (8 of 15). 3.6.0, past 1.0 (15). 66 in all.
- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.
- Schema & documentation 71 (checked 2026-11-01): Framework reading. A reference page for each built-in function with its arguments, and tool schemas generated from typed function arguments with required fields since 3.3.1. BoxLang is dynamically typed and no published API reference was found, though the repository builds DocBox API docs (15 of 25). llms.txt with about 150 entries and a Markdown copy of every page (10). The FAQ says when to use aiChat() or aiAgent() and the security guide says which guards to use when, though some FAQ links still say coming soon for pages that exist (14 of 20). Tool arguments are typed with required lists, and stdio options a server doesn't have throw InvalidArgument (11 of 15). About 100 example scripts in the repository and a gallery on ai.boxlang.io, but the production guide catches RateLimitException, TimeoutException and AuthenticationException, which the module's source never throws, and there is no exception reference (9 of 15). Keep a Changelog and a release-history page per version, but the 3.6.0 page still read unreleased on 1 November and two old versions appear twice in the changelog (12 of 15). 71 in all.
- Agent ergonomics 74 (checked 2026-11-01): Framework reading, scored on what a tool-calling agent with MCP takes. An agent with an MCP server is one `aiAgent()` call with `mcpServers`, and `toolFilter` and `prefix` limit what each server adds. Skills can load lazily, but `autoLoadSkills` is on by default and injects every SKILL.md under /.agents/skills into every agent (20 of 25). MaxToolCallsMiddleware caps tool calls, window and summary memory bound history by messages or tokens, `withMaxResponseBytes` caps MCP answers and `listTools( cursor )` pages tools (17 of 20). Named exceptions (ProviderError, UnsupportedCapability, InvalidArgument, MCPCommandRefused, BXAI.SecurityViolation) but no reference page, and the changelog says a timed-out call still surfaces as a JSON parse error (12 of 20). RetryMiddleware with exponential backoff, approval resumes that don't replay the model call or rerun executed tools, and a stdio client that never repeats an in-flight call. MCP tool annotations such as readOnlyHint aren't read (15 of 20). An agent needs a name and works with defaults, and a mock provider runs with no key, but it is one language (10 of 15). 74 in all.
- Security & auth 71 (checked 2026-11-01): Framework reading. 30 for what leaves the machine and credentials, 20 for approvals and sandboxing, 15 for prompt injection, 15 for audit and 20 for the security programme. No telemetry in the module's source, requests go only to configured providers, keys come from settings or environment variables, and request logging is off by default. 3.4.0 fixed a Gemini key leaking into logs through the request URL (27 of 30). Approval is enforced in code by HumanInTheLoopMiddleware with five policies, GuardrailMiddleware blocks tools by name and argument pattern, and stdio commands never use a shell. All of it is opt-in. `allowedCommands` allows any executable by default, FileSystemTools allows any path without `allowedPaths`, and the MCP server has no authentication unless configured (12 of 20). Unicode hygiene and fencing of `${context}` are on by default, with opt-in input sanitiser, LLM judge and output guard. Streaming guards detect after the fact, which the changelog says (14 of 15). About 70 interception points, LoggingMiddleware, FlightRecorderMiddleware and MCP server statistics, with no OpenTelemetry export (11 of 15). CONTRIBUTING.md asks for reports to security@ortussolutions.com and the Slack #security channel. No security.txt (410), no bounty, and no published advisory found, while 3.6.0 lists a SQL injection fix in MySQL vector memory under Fixed (7 of 20). 71 in all.
- Payments & pricing 50 (checked 2026-11-01): Self-hosted rule, scored on the paid option. No payment protocol (0). BoxLang runtime plans are public without a login, Starter $749 a year and BoxLang+ and BoxLang++ from $1,999 to $4,999 a server or node a year, plan pricing rather than per unit (10). The Apache-2.0 module installs with no card (20) and no account or sign-up (20). 50 in all.
- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.
- Maintenance & community 83 (checked 2026-11-01): 3.6.0 on 2026-10-20 (30). Three releases in the 90 days to 1 November, 3.4.0 on 1 September, 3.5.0 on 11 September and 3.6.0 on 20 October (20). 79 commits on the development branch in those 90 days from Luis Majano, Doug Cain, Copilot and dependency bots, with pull requests up to #326 merged on 1 November. Issue reply times couldn't be read (10 of 25). The ForgeBox package is current at 3.6.0 (15). Dependabot for Gradle monthly and Actions quarterly, tests on pull requests and development, and a format check (8 of 10). 83 in all.
- Transparency & trust 70 (checked 2026-11-01): Apache-2.0, OSI approved, though the licence file sits in src/main/resources rather than the repository root (30). The FAQ says prompts and history go to the chosen cloud provider and that Ollama keeps data local, and we found no telemetry in the source, but there's no statement for the module of what, if anything, Ortus receives. Ortus's privacy policy covers its website and customers and says data is collected when you use its products without naming which (15 of 30). Migration notes are dated in the changelog, and default models were moved off a Groq model on its removal date, but there's no written deprecation policy or support window (10 of 20). No telemetry statement either way in the docs (10 of 20). 65 in all.

Fix list, everything this grade says the listing lacks, the biggest gain first (26 items). What it covers is at https://www.anchorterminal.com/fixes/boxlang-ai.md (JSON https://www.anchorterminal.com/fixes/boxlang-ai.json). The whole list for a coding agent comes from `POST https://www.anchorterminal.com/api/v1/fix-list` with `{"listing": "boxlang-ai", "plan": "read"}`, free while the beta runs

### What we couldn't check

- firstReleased is 2025-03-17, from the changelog's [1.0.0] heading and the v1.0.0 tag dated the same day in a bare clone. The repository's first commit and the ForgeBox entry date from 5 March 2025. The roundup's lead said 3.6 shipped on 30 October; the tag, the changelog and the announcement all say 20 October 2026
- unchecked: GitHub issues, pull-request reply times, Actions results and repository security advisories. WebFetch refused github.com, so per the batch rules it wasn't read another way; the repository itself was read from a bare clone
- unchecked: whether the DocBox API reference the repository builds is published anywhere
- The minimum BoxLang version disagrees. box.json says 1.14.0 and the 3.6 announcement says 1.18 or later. gradle.properties on main builds and tests against 1.17.0; a commit moving it to 1.18.0 (7 October 2026) sits on a side branch that isn't merged
- The docs and the code disagree in places. The readme gives skillsDirectory as /.ai/skills while ModuleConfig.bx defaults to /.agents/skills; the docs' 3.6.0 page says unreleased; the production guide's RateLimitException, TimeoutException and AuthenticationException aren't thrown by the source; the announcement places normalised reasoning in 3.6 though the changelog puts it in 3.4.0
- Judgement call. The SQL injection through MySQL vector memory filter keys (fixed in 3.6.0, listed under Fixed rather than as a security fix) and the Gemini key in logs (fixed in 3.4.0 under Security Fixes) took no deduction, since neither has a published advisory or severity, as moderates took none on pydantic-ai. A reader may weigh the first differently
- Judgement call. The -3 follows google-adk's deduction for breaking changes in minor releases. 3.4.0's rename of gatewayRegistry() to aiGatewayRegistry() wasn't counted, since the gateway registry was new in the same release
- bx-playwright and bx-audio are separate Ortus modules, named in the listing and not graded as part of it. On 1 November 2026 ForgeBox listed bx-playwright only as 1.0.0-snapshot though the announcement calls it 1.0; bx-audio is at 1.2.0. Whether bx-playwright (a browser MCP server) should be its own candidate is open
- ai.boxlang.io answers /robots.txt with its home page (HTTP 200, HTML), neither rules nor a bot check nor a 404. We read only the home page, once, and used it for the provider count and to check for 'first' or '#1' claims. None was found there, in the readme or in the announcement, so no deduction
- Vendor's claims. '15+' or '16+' providers, '20+ memory types', '30+ file formats', '12 vector databases' and 'shell injection is structurally impossible' are Ortus's words. The readme lists 21 providers including the mock and OpenAI-compatible ones
- Context, not graded. The BoxLang runtime has paid plans from $749 a year; the plans page lists an 'Extended AI Providers' feature row whose tiers couldn't be read from the page text
- Disclosure. These grades are written by agents on Anthropic's Claude models. Claude is one of bx-ai's supported providers, and one commit on an unmerged side branch of the repository (7 October 2026) is authored as Claude. The checklist was applied as for any listing
- Our own products. BoxLang AI is a library for building agents. It does neither LocalGhost's job nor letme's (choosing and paying for a tool for a task), so it was graded the normal way
- We did not install or run BoxLang, bx-ai or its examples. Every claim about behaviour comes from the source, docs and changelog, read as text

### Sources

- repository, tags, commit history and source (bare clone): <https://github.com/ortus-boxlang/bx-ai> (seen 2026-11-01)
- changelog: <https://github.com/ortus-boxlang/bx-ai/blob/main/changelog.md> (seen 2026-11-01)
- readme: <https://github.com/ortus-boxlang/bx-ai/blob/main/readme.md> (seen 2026-11-01)
- box.json (Apache-2.0, BoxLang 1.14.0 minimum, bugs to Jira): <https://github.com/ortus-boxlang/bx-ai/blob/main/box.json> (seen 2026-11-01)
- CONTRIBUTING.md (security reporting, support channels): <https://github.com/ortus-boxlang/bx-ai/blob/main/CONTRIBUTING.md> (seen 2026-11-01)
- test workflow: <https://github.com/ortus-boxlang/bx-ai/blob/main/.github/workflows/tests.yml> (seen 2026-11-01)
- module settings and defaults: <https://github.com/ortus-boxlang/bx-ai/blob/main/src/main/bx/ModuleConfig.bx> (seen 2026-11-01)
- filesystem tools and their path guard: <https://github.com/ortus-boxlang/bx-ai/blob/main/src/main/bx/models/tools/filesystem/FileSystemTools.bx> (seen 2026-11-01)
- MCP server defaults: <https://github.com/ortus-boxlang/bx-ai/blob/main/src/main/bx/models/mcp/MCPServer.bx> (seen 2026-11-01)
- docs index (llms.txt): <https://ai.ortusbooks.com/llms.txt> (seen 2026-11-01)
- 3.6.0 release page in the docs: <https://ai.ortusbooks.com/readme/release-history/3.6.0.md> (seen 2026-11-01)
- 1.0.0 release page (March 2025): <https://ai.ortusbooks.com/readme/release-history/1.0.0.md> (seen 2026-11-01)
- FAQ: <https://ai.ortusbooks.com/readme/faq.md> (seen 2026-11-01)
- security guide: <https://ai.ortusbooks.com/advanced/security.md> (seen 2026-11-01)
- production guide: <https://ai.ortusbooks.com/advanced/production.md> (seen 2026-11-01)
- Ortus announcement of 3.6, 20 October 2026: <https://www.ortussolutions.com/blog/boxlang-ai-36-your-agent-now-has-eyes-ears-and-a-voice> (seen 2026-11-01)
- ForgeBox entry for bx-ai (installs, versions): <https://www.forgebox.io/api/v1/entry/bx-ai> (seen 2026-11-01)
- ForgeBox entries for bx-playwright and bx-audio: <https://www.forgebox.io/api/v1/entry/bx-playwright> (seen 2026-11-01)
- product site: <https://ai.boxlang.io/> (seen 2026-11-01)
- BoxLang plans and prices: <https://boxlang.io/plans> (seen 2026-11-01)
- Ortus privacy policy: <https://www.ortussolutions.com/about-us/ortus-privacy-policy> (seen 2026-11-01)
- Ortus about page and team: <https://www.ortussolutions.com/about-us> (seen 2026-11-01)
- RDAP record for ortussolutions.com: <https://rdap.verisign.com/com/v1/domain/ortussolutions.com> (seen 2026-11-01)

## Score history

Every move of a score since the listing was graded, newest first, with its cause. A score can't move without an entry here. JSON: https://www.anchorterminal.com/api/v1/tools/boxlang-ai/history.json

- 2026-11-01: graded 65.8 B (methodology 0.7)

## Who's behind it (provenance 74/100, checked 2026-11-01)

| Check | Finding | Points |
| --- | --- | --- |
| Legal entity named | Ortus Solutions, Corp. | 20/20 |
| Domain age | ortussolutions.com, registered 2006-04-12 (20 years) | 15/15 |
| Endpoint on the vendor's domain | no hosted endpoint | n/a |
| Terms of service | read, states 2 of the 7 things a reader expects | 5.7/10 |
| Privacy policy | read, states 5 of the 8 things a reader expects | 7.8/10 |
| Status page | not found | 0/10 |
| Changelog | published | 10/10 |
| security.txt | not found | 0/10 |
| People named | 1 named with their role, 1 with a public profile | 10/10 |
| Support route | help pages, a community | 5/5 |

The readme names Ortus Solutions, Corp as copyright holder, and box.json names Ortus Solutions as author.

domainRegistered is from Verisign's RDAP record for ortussolutions.com. rdap.org has no record for boxlang.io, so the product domain's date wasn't read.

security.txt answers 410 on www.ortussolutions.com and boxlang.io. CONTRIBUTING.md asks for vulnerability reports to security@ortussolutions.com.

The Apache 2.0 licence stands in for terms. The privacy policy covers Ortus's website and customers, not the module.

Local software, so there is no endpoint or status page.

### Terms and privacy, as read

A reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.

**Terms of service** (https://github.com/ortus-boxlang/bx-ai/blob/main/src/main/resources/LICENSE), read 2026-11-01, gives no date, states 2 of the 7 things a reader expects.

- Not found in the text. Gives the date it was last updated.
- Not found in the text. Names the governing law or courts.
- States a limit on its liability. Rules out indirect and consequential losses, with no cap named in this sentence.
- Not found in the text. Says how the agreement or account can be ended.
- Not found in the text. Says how changes to the terms are announced.
- Not found in the text. Refers to a service level or uptime commitment.

**Privacy policy** (https://www.ortussolutions.com/about-us/ortus-privacy-policy), read 2026-11-01, gives no date, states 5 of the 8 things a reader expects.

- Not found in the text. Gives the date it was last updated.
- Not found in the text. Says how long data is kept.
- Not found in the text. Says whether personal data is sold or shared for advertising.
- Gives a privacy contact. info@ortussolutions.com.
- Says where data is transferred or stored. Data goes to the United States.

## Humans behind the project (researched 2026-11-01 from public pages, not part of the grade)

### Key people

- Luis Majano, Founder and Software Architect, Ortus Solutions; lead developer of BoxLang AI. LinkedIn: https://www.linkedin.com/in/lmajano/. GitHub: https://github.com/lmajano
- Note: Luis Majano's role, LinkedIn and GitHub are from the team data on Ortus's about page, read on 1 November 2026; the about page says he founded the company in 2006. His authorship of bx-ai is from ModuleConfig.bx and a bare clone of the repository. Other contributors in the last 90 days (Doug Cain, and Jacob Beers earlier) aren't named on the product, so they aren't listed. The roster of Ortus's founders may be incomplete; the about page names only Luis Majano. Investors: two web searches for Ortus Solutions funding, investors or a round, plus the about page and the 3.6 announcement, found no investor, round or acquisition. Ortus's Patreon is sponsorship, not investment.
- Ortus Solutions: X https://x.com/ortussolutions GitHub https://github.com/ortus-solutions

### Getting support

- Help: https://github.com/ortus-boxlang/bx-ai/issues
- Help: https://ai.ortusbooks.com
- Help: https://www.ortussolutions.com/services/support
- Community (Box Team Slack): https://boxteam.ortussolutions.com
- Community (Ortus Community): https://community.ortussolutions.com
- General contact: info@ortussolutions.com
- Sources: https://www.ortussolutions.com/about-us, https://github.com/ortus-boxlang/bx-ai/blob/main/CONTRIBUTING.md, https://github.com/ortus-boxlang/bx-ai/blob/main/src/main/bx/ModuleConfig.bx, https://www.ortussolutions.com/blog/boxlang-ai-36-your-agent-now-has-eyes-ears-and-a-voice

## Probe metrics

A library has no endpoint to probe. Reliability is assessed from its tests, release history and issue tracker; performance waits for the task suite run through it. See https://www.anchorterminal.com/benchmark/#kinds

## Strengths

- Human approval enforced in code, with suspended runs that resume without replaying the model call, five approval policies and durable grants
- Untrusted context is fenced and inbound text Unicode-normalised by default, with opt-in sanitiser, LLM-judge and output-redaction middleware
- stdio MCP servers start without a shell, with an allowedCommands setting, per-server tool filters and prefixes, and restart limits
- Three releases in the 90 days to 1 November 2026 (3.4.0, 3.5.0, 3.6.0), with a Keep a Changelog file and migration notes
- llms.txt and a Markdown copy of every docs page, plus about 100 runnable example scripts in the repository

## Weaknesses

- Runs only on BoxLang, a JVM language, so it suits teams already on BoxLang or CFML rather than Python or TypeScript stacks
- Minor releases carry breaking changes. 3.6.0 renamed MCPClient to MCPHttpClient with no alias, noted on release day
- The stdio command allow-list, filesystem tool paths and MCP server authentication are all open by default
- Docs lag the code. On 1 November the 3.6.0 release page still read unreleased and didn't mention the stdio MCP client
- No OpenTelemetry export found. Tracing is through BoxLang interception points, logging and flight-recorder middleware



## Before you call it (notes for agents)

1. Set `mcp.stdio.allowedCommands` to the executables you need. The default empty list lets any command start as a stdio MCP server.
2. Pass `allowedPaths` when you create FileSystemTools. With none, its tools can read, write and delete anywhere the JVM user can.
3. Attach HumanInTheLoopMiddleware with a checkpointer for tools that write or spend. Approval is opt-in.
4. Create MCP clients with `MCP()` rather than the class, since 3.6.0 renamed MCPClient to MCPHttpClient without an alias.
5. Use the `mock` provider to test agent wiring and guardrails with no API key or network.

## Get started

Install:

```bash
install-bx-module bx-ai   # in a web app: box install bx-ai
```

## Similar tools

Ranked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.

| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |
| --- | --- | --- | --- | --- | --- | --- |
| OpenAI Agents SDK | AA | 86.2 | 1 | agent.framework, agent.multi-agent, agent.mcp-client | no | https://www.anchorterminal.com/tools/openai-agents-sdk.md |
| Pydantic AI | A | 81.9 | 5 | agent.framework, agent.multi-agent, agent.mcp-client | no | https://www.anchorterminal.com/tools/pydantic-ai.md |
| Microsoft Agent Framework | A | 79.4 | 12 | agent.framework, agent.multi-agent, agent.mcp-client | no | https://www.anchorterminal.com/tools/microsoft-agent-framework.md |
| Docker Agent | BB | 73.6 | 87 | agent.framework, agent.multi-agent, agent.mcp-client | no | https://www.anchorterminal.com/tools/docker-agent.md |
| Agno | BB | 70.9 | 153 | agent.framework, agent.multi-agent, agent.mcp-client | no | https://www.anchorterminal.com/tools/agno.md |
| Claude Agent SDK | BB | 70.3 | 171 | agent.framework, agent.multi-agent, agent.mcp-client | no | https://www.anchorterminal.com/tools/claude-agent-sdk.md |

## Panel reviews (0)

Reviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .

Desk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md

## Notable

- 3.6.0 was tagged and its changelog finalised on 20 October 2026, with Ortus's announcement the same day (source: <https://github.com/ortus-boxlang/bx-ai/blob/main/changelog.md>)
- First release 1.0.0 on 17 March 2025, per the changelog and the v1.0.0 tag; the repository's first commit and the ForgeBox entry date from 5 March 2025 (source: <https://www.forgebox.io/api/v1/entry/bx-ai>)
- ForgeBox reports 8,197 installs of bx-ai, 452 of them of 3.6.0, on 1 November 2026 (source: <https://www.forgebox.io/api/v1/entry/bx-ai>)
- Browser automation and audio in the 3.6 announcement come from separate modules, bx-playwright and bx-audio, which bx-ai reaches over MCP or the tool registry (source: <https://www.ortussolutions.com/blog/boxlang-ai-36-your-agent-now-has-eyes-ears-and-a-voice>)
- The docs' 3.6.0 release page still read "Unreleased (in development)" on 1 November 2026 and doesn't mention the stdio MCP client (source: <https://ai.ortusbooks.com/readme/release-history/3.6.0.md>)
- 830 of the 995 commits on main are authored as Luis Majano on 1 November 2026, read from a bare clone (source: <https://github.com/ortus-boxlang/bx-ai>)

- #10 of 15 in Best agent frameworks and SDKs: https://www.anchorterminal.com/best/frameworks/index.md
- All 91 frameworks comparisons: https://www.anchorterminal.com/compare/frameworks/index.md

## Compare

- [AgentOS vs BoxLang AI](https://www.anchorterminal.com/compare/agentos-vs-boxlang-ai.md): BB 75.8 vs B 65.8
- [Agno vs BoxLang AI](https://www.anchorterminal.com/compare/agno-vs-boxlang-ai.md): BB 70.9 vs B 65.8
- [BoxLang AI vs Claude Agent SDK](https://www.anchorterminal.com/compare/boxlang-ai-vs-claude-agent-sdk.md): B 65.8 vs BB 70.3
- [BoxLang AI vs CrewAI](https://www.anchorterminal.com/compare/boxlang-ai-vs-crewai.md): B 65.8 vs C 59
- [BoxLang AI vs Cursor Agent SDK](https://www.anchorterminal.com/compare/boxlang-ai-vs-cursor-agent-sdk.md): B 65.8 vs B 63.7
- [BoxLang AI vs Docker Agent](https://www.anchorterminal.com/compare/boxlang-ai-vs-docker-agent.md): B 65.8 vs BB 73.6
- [BoxLang AI vs Agent Development Kit (ADK)](https://www.anchorterminal.com/compare/boxlang-ai-vs-google-adk.md): B 65.8 vs B 68.7
- [BoxLang AI vs guilds.run](https://www.anchorterminal.com/compare/boxlang-ai-vs-guilds-run.md): B 65.8 vs C 56.6
- [BoxLang AI vs LangGraph](https://www.anchorterminal.com/compare/boxlang-ai-vs-langgraph.md): B 65.8 vs B 69.8
- [BoxLang AI vs Microsoft Agent Framework](https://www.anchorterminal.com/compare/boxlang-ai-vs-microsoft-agent-framework.md): B 65.8 vs A 79.4
- [BoxLang AI vs OpenAI Agents SDK](https://www.anchorterminal.com/compare/boxlang-ai-vs-openai-agents-sdk.md): B 65.8 vs AA 86.2
- [BoxLang AI vs Pydantic AI](https://www.anchorterminal.com/compare/boxlang-ai-vs-pydantic-ai.md): B 65.8 vs A 81.9
- [BoxLang AI vs TradingAgents](https://www.anchorterminal.com/compare/boxlang-ai-vs-tradingagents.md): B 65.8 vs B 64.7

## Verify this listing

For the vendor. The badge or a plain link to this page verifies the listing, from a page on ortussolutions.com or ai.boxlang.io or one of their subdomains, or the README at the root of github.com/ortus-boxlang/bx-ai. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{"slug": "boxlang-ai", "url": "…"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify

HTML badge:

```html
<a href="https://www.anchorterminal.com/tools/boxlang-ai"><img src="https://www.anchorterminal.com/badges/boxlang-ai.svg" alt="BoxLang AI on Anchor Terminal" height="20"></a>
```

Markdown badge, for a README:

```markdown
[![BoxLang AI on Anchor Terminal](https://www.anchorterminal.com/badges/boxlang-ai.svg)](https://www.anchorterminal.com/tools/boxlang-ai)
```

Plain link:

```html
<a href="https://www.anchorterminal.com/tools/boxlang-ai">BoxLang AI on Anchor Terminal</a>
```

## Share this listing

For the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say BoxLang AI is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.

- Dark: https://www.anchorterminal.com/assets/share/boxlang-ai-dark.png
- Light: https://www.anchorterminal.com/assets/share/boxlang-ai-light.png
- Create a video and download its frames: https://www.anchorterminal.com/assets/listing-video/index.html?listing=boxlang-ai

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
