Agents/Language & dialogue
isu
The Interlocutor
Dialogue management with Information State Update theory.
Downloads per day
Last 90 days · 8 total · peak 7
Dossier
What isu does.
Implements Information State Update (issue-based) dialogue management for conversational agents.
From the crate: “Rust implementation of Information State Update theory, applicable in Issue-Based Dialogue Management and Conversational Agent Architecture.”
- Codename
- The Interlocutor
- Role
- Information State Update
- Character
- Keeps track of what has been asked, answered and agreed. Polite, and never forgets an open question.
- Domain
- Language & dialogue
- Enlisted
- 8 October 2026
- Last release
- v0.1.6, 8 October 2026
- Keywords
agent,ai,dialogue,isu,nlp
Use cases
Put it to work.
- Build a dialogue manager that tracks questions under discussion.
- Research issue-based dialogue in Rust.
Getting started
Call it in.
Add it to a Rust project, then follow the example. The full API is on docs.rs.
Install
cargo add isu
Example
use isu::*;
use std::collections::{HashMap, HashSet};
// Create domain knowledge
let preds0 = HashSet::from(["expensive".to_string()]);
let preds1 = HashMap::from([("city".to_string(), "location".to_string())]);
let sorts = HashMap::from([
("location".to_string(), HashSet::from(["paris".to_string(), "london".to_string()]))
]);
let domain = Domain::new(preds0, preds1, sorts);
let database = TravelDB::new();
let grammar = SimpleGenGrammar::new();
// Create dialogue manager
let mut ibis = IBISController::new(domain, database, grammar);
// Run interactive dialogue
ibis.run();Build with a prompt
Add the Rust crate `isu` (version 0.1.6) to this project with `cargo add isu`. I want to use it for this: Implements Information State Update (issue-based) dialogue management for conversational agents. Before writing code, read its README at https://crates.io/crates/isu and the API docs at https://docs.rs/isu. Use only the functions, types and signatures that appear there; do not invent API names. Write a minimal working example and one test that runs it.
Paste this into Claude Code or another coding agent.
Specs
- Version
- 0.1.6
- License
- MIT
- Edition
- Rust 2024
- Size
- 1,688 lines of code, 91 of comments
- Package
- 28.9 KB compressed
- Dependencies
- cfg, criterion, proptest, serde, thiserror, tracing
- Used by
- 0 crates on crates.io
- Docs
- docs.rs, built
- Repository
- cryptopatrick/isu · 0★ · 0 forks · 0 open issues · pushed 15 Oct 2025
Release history
| Version | Date | Downloads |
|---|---|---|
| 0.1.6 | 8 Oct 2026 | 8 |
Documentation
The manual.
The crate's README as published on crates.io. The full API reference is on docs.rs.
Read the README
ISU
Rust implementation of Information State Update.
What is ISU • Features • How To Use • Documentation • License
🛎 Important Notices
masterbranch file paths are not considered stable. Verify your repository URI references- cloning this repository is not recommended (due to Repo size) unless you are going to be contributing to development
📌 Table of Contents
Table of Contents
🤔 What is ISU
isu is a comprehensive Rust library that implements Information State Update (ISU) theory, a formal framework for dialogue management in conversational AI systems. This library provides the core components needed to build sophisticated dialogue managers following the Issue-Based Information State (IBIS) approach.
Use Cases
- Chatbots & Virtual Assistants: Build sophisticated conversational agents
- Dialogue Research: Experiment with ISU theory and dialogue management strategies
- Task-Oriented Systems: Implement goal-driven dialogue systems (booking, support, etc.)
- Multi-turn Conversations: Handle complex dialogue flows with context tracking
- Educational Tools: Learn and teach dialogue management concepts
Architecture
The library follows ISU theory principles:
- Information State: Central repository for dialogue context
- Update Rules: Formal rules for state transitions
- Dialogue Management: Control flow for turn-taking and planning
- Semantic Interpretation: Mapping between natural language and formal representations
📷 Features
Core Data Structures
- Value: Generic containers with type constraints and validation
- Stack/StackSet: LIFO data structures with uniqueness guarantees
- TSet: Typed sets with optional type checking
- Record: Key-value stores with dynamic type validation
Dialogue Management
- IBIS Controller: Full implementation of Issue-Based Information State dialogue management
- Information State: Tracks dialogue context, beliefs, commitments, and questions under discussion (QUD)
- Dialogue Moves: Support for greetings, questions, answers, and ICM (Information State Update Control Mechanisms)
Semantic Types & Questions
- Propositions: Structured representation of facts with polarity
- Questions: Support for wh-questions, yes/no questions, and alternative questions
- Individuals & Predicates: Typed semantic objects with domain validation
- Answer Types: Short answers, propositions, and yes/no responses
Natural Language Processing
- Grammar System: Configurable generation and interpretation of dialogue moves
- CFG Support: Context-free grammar parsing capabilities
- Multi-modal Input: Support for different input handling strategies (interactive, demo, batch)
Knowledge Management
- Domain Knowledge: Formal representation of predicates, sorts, and individuals
- Database Integration: Query interface for external knowledge sources
- Plan Constructors: Conditional planning with findout, consult, and response strategies
Travel Domain Example
- Complete implementation of a travel booking dialogue system
- Demonstrates price queries, destination planning, and multi-turn conversations
- Includes sample database entries and conversational flows
🚙 How to Use
Requirements
Revup requires python 3.8 or higher and git 2.43 or higher. Revup works with Linux, OSX, and Windows (limited testing). Follow instructions here to get the latest git version for your OS. Revup uses flags only present in newer git versions.
Installation
Install with cargo.
cargo add isu
Example
The examples/ directory contains:
travel.rs: Complete travel booking dialogue system- Domain-specific implementations and configurations
- Various input handling strategies (interactive, demo, batch)
use isu::*;
use std::collections::{HashMap, HashSet};
// Create domain knowledge
let preds0 = HashSet::from(["expensive".to_string()]);
let preds1 = HashMap::from([("city".to_string(), "location".to_string())]);
let sorts = HashMap::from([
("location".to_string(), HashSet::from(["paris".to_string(), "london".to_string()]))
]);
let domain = Domain::new(preds0, preds1, sorts);
let database = TravelDB::new();
let grammar = SimpleGenGrammar::new();
// Create dialogue manager
let mut ibis = IBISController::new(domain, database, grammar);
// Run interactive dialogue
ibis.run();
📚 Documentation
Comprehensive documentation is available at docs.rs/isu, including:
- API reference for all public types and functions
- Tutorial on building dialogue systems
- Examples of different dialogue management strategies
- Performance considerations and best practices
🖊 Author
Keybase Verification:
https://keybase.io/cryptopatrick/sigs/8epNh5h2FtIX1UNNmf8YQ-k33M8J-Md4LnAN
🐣 Support
Leave a ⭐ if you think this project is cool.
🤝 Contributing
Found a bug? Missing a specific feature? Contributions are welcome! Please see our contributing guidelines for details on:
- Code style and testing requirements
- Submitting bug reports and feature requests
- Development setup and workflow
🗄 License
This project is licensed under MIT. See LICENSE for details.
Resources
Same unit
Other agents.
-
gf-coreRust runtime for Grammatical Framework.
-
pgf2jsonThis crate is an Application Programming Interface to load and interpret grammars compiled in Portable Grammar Format (PGF). The PGF format is produced as a final output from the GF compiler. The library provides methods for generating JSON output of a correctly formed PGF file. The API is meant to be used for embedding GF grammars in Rust programs.
-
squadleader-scenario
Scenario builder tools for the SquadLeader system.
-
hugin
A visual cpu profiler.