aici logo

aici

microsoft/aici

Builds Controllers for Constrained LLM Output in Real-time Using Wasm

GraphCanon updated today · GitHub synced today

2.1k stars85 forksLast push 1y Rust MIT

Decision brief

Builds real-time controllers using Wasm modules for directing LLM output securely and efficiently.

Good fit when

  • When you need to implement secure, fast, and flexible real-time control over the output of large language models via WebAssembly modules.
  • For projects where you want tight integration between custom control logic and the underlying LLM inference engine to process text generation dynamically.

Avoid when

  • If your use case requires only constrained decoding without additional control logic, consider using LLGuidance library as a more specialized alternative.
  • Avoid if you are looking for a less experimental solution, since AICI is noted as a prototype and may not fit production scenarios requiring stability.
Pricing:
freemium
Requirements:
Requires a compatible LLM inference engine such as llama.cpp, HuggingFace Transformers, or rLLM.

Observed Jul 14, 2026 · Source: enrich:decision_facts

Verify the decision

Maintenance and security

Full trust report
Maintenance
Dormant (574d since push)
As of today
Provenance
Not a fork · Organization account
As of today
Security (OSV)
No lockfile
As of 1mo

Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.

Backing

Company context for Microsoft. Display-only - separate from trust and ranking.

Company
Microsoft·GitHub org profile·1mo
Employees
221,000·Wikidata (P1128 employees)·1mo
Commercial model
Pure OSS·GitHub org profile (public repos)·1mo

Install

cargo add aici
crates.io

How it fits your stack(4)

Typed graph edges - alternatives, integrations, successors, and dependencies. Ranked by relationship type, not raw GitHub stars.

Relationship graph

Optional deeper exploration of typed edges and category neighbours.

Similar tools

Same-category neighbours not already linked as typed edges.

Evidence and technical details

Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.

Overview

AICI enables the creation of real-time controllers that constrain and direct Large Language Model (LLM) output via WebAssembly modules running alongside the LLM inference engine.

Capability facts

Languages
rust

Source: github.language · Aug 20, 2026

Categories

Graph entities

Compatibility

Sourced claims from the README excerpt - not unsourced marketing copy.

Python runtimePython

Source: README excerpt (regex_v1, Aug 20, 2026)

or be interpreted inside Wasm (Python, JavaScript, ...)
Source link

Tags

README

Artificial Intelligence Controller Interface (AICI)

LLGuidance library is an actively maintained evolution and specialization of AICI, recommended if all you want is constrained decoding.

The Artificial Intelligence Controller Interface (AICI) lets you build Controllers that constrain and direct output of a Large Language Model (LLM) in real time. Controllers are flexible programs capable of implementing constrained decoding, dynamic editing of prompts and generated text, and coordinating execution across multiple, parallel generations. Controllers incorporate custom logic during the token-by-token decoding and maintain state during an LLM request. This allows diverse Controller strategies, from programmatic or query-based decoding to multi-agent conversations to execute efficiently in tight integration with the LLM itself.

The purpose of AICI is to make it easy to build and experiment with both existing and entirely new Controller strategies for improving LLM generations. By abstracting away implementation details of the underlying LLM inference and serving engine, AICI aims to simplify the development of Controllers, make it easier to write fast Controllers, and ease compatibility across LLM inference and serving engines.

AICI is designed for both local and cloud execution, including (eventually) multi-tenant LLM deployments. Controllers are implemented as light-weight WebAssembly (Wasm) modules which run on the same machine as the LLM inference engine, utilizing the CPU while the GPU is busy with token generation. AICI is one layer in the inference stack, and is designed to allow control libraries such as Guidance, LMQL, and others to run on top of it and gain both efficiency and performance improvements, as well as portability across LLM inference and serving engines.

AICI currently integrates with llama.cpp, HuggingFace Transformers, and rLLM (custom tch-based LLM inference engine), with vLLM in the works.

AICI is:

  • Flexible: Controllers can be written in any language that can compile to Wasm (Rust, C, C++, ...), or be interpreted inside Wasm (Python, JavaScript, ...)
  • Secure: Controllers are sandboxed and cannot access the filesystem, network, or any other resources
  • Fast: Wasm modules are compiled to native code and run in parallel with the LLM inference engine, inducing only a minimal overhead to the generation process

AICI is a prototype, designed and built at Microsoft Research.

Table of Contents

  • Artificial Intelligence Controller Interface (AICI)
  • QuickStart: Example Walkthrough
    • Development Environment Setup
    • Build and start rLLM server and AICI Runtime
    • Control AI output using AICI controllers
  • Comprehensive Guide: Exploring Further
  • Architecture
  • Security
  • Performance
  • Flexibility
  • Acknowledgements
  • Contributing
  • Trademarks

QuickStart: Example Walkthrough

In this quickstart, we'll guide you through the following steps:

  • Set up rLLM Server and AICI Runtime.
  • Build and deploy a Controller.
  • Use AICI to control LLM output, so you can customize a LLM to follow specific rules when generating text.

Development Environment Setup

To compile AICI components, you need to set up your development environment for Rust. For this quickstart you also need Python 3.11 or later to create a controller.

Windows WSL / Linux / macOS

[!NOTE] Windows users: please use WSL2 or the included devcontainer. Adding native Wind

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.