CryptoPatrick / agents
Portrait of isu, The Interlocutor #17 of 26

Agents/Language & dialogue

Information State Update Available v0.1.6

isu

The Interlocutor

Dialogue management with Information State Update theory.

8Downloads, all time
8Last 90 days
1Releases since Oct 2026

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.

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

VersionDateDownloads
0.1.68 Oct 20268

Documentation

The manual.

The crate's README as published on crates.io. The full API reference is on docs.rs.

Read the README


Title
ISU

Rust implementation of Information State Update.

What is ISU • Features • How To Use • Documentation • License

🛎 Important Notices

📌 Table of Contents

Table of Contents
  1. What is ISU
  2. Features
  3. How to Use
  4. Documentation
  5. Author
  6. Support
  7. Contributing
  8. License

🤔 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:

  1. Information State: Central repository for dialogue context
  2. Update Rules: Formal rules for state transitions
  3. Dialogue Management: Control flow for turn-taking and planning
  4. 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

CryptoPatrick

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.