PraisonAI Chat

Modern AI Agent Chat Interface for PraisonAI

PraisonAI Chat is a modern chat UI for your agents with streaming replies, tool-call visualization, and session history.

python
from praisonaiagents import Agent

agent = Agent(name="chat-ui", instructions="Help users in the PraisonAI Chat interface.")
agent.start("Explain what you can do in this session.")

The user types in PraisonAI Chat; the agent streams replies with tool calls and session history visible in the UI.

Diagram

PraisonAI Chat

👤 User Input

🤖 Agent

💬 Streamed Response

Quick Start

  1. Install the chat extra
    bash
    pip install praisonai[chat]
  2. Launch the UI
    bash
    praisonai chat

    Opens at http://localhost:8000. Use --port 3000 for a custom port.

  3. Or start programmatically
    python
    from praisonaiagents import Agent
    from praisonai.chat import start_chat_server
    
    agent = Agent(
        name="Assistant",
        instructions="You are a helpful AI assistant."
    )
    
    start_chat_server(agent=agent, port=8000)

Features

Multi-Agent Chat

python
from praisonaiagents import Agent
from praisonai.chat import start_chat_server

# Define multiple agents
researcher = Agent(
    name="Researcher",
    role="Research specialist",
    instructions="You research topics thoroughly."
)

writer = Agent(
    name="Writer", 
    role="Content writer",
    instructions="You write clear, engaging content."
)

# Start chat with multiple agents
start_chat_server(agents=[researcher, writer], port=8000)

Configuration

ChatConfig Options

python
from praisonai.chat import start_chat_server, ChatConfig

config = ChatConfig(
    host="0.0.0.0",      # Host to bind to
    port=8000,           # Port number
    debug=False,         # Enable debug mode
    auth_enabled=False,  # Enable authentication
    session_id=None,     # Custom session ID
)

start_chat_server(config=config)

Environment Variables

VariableDescriptionDefault
PRAISONAI_CHAT_PORTServer port8000
PRAISONAI_CHAT_HOSTServer host0.0.0.0
CHAINLIT_HOSTHost the UI binds to (drives auth mode)127.0.0.1
CHAINLIT_USERNAMEUsername for authenticationadmin
CHAINLIT_PASSWORDPassword for authenticationadmin
PRAISONAI_ALLOW_DEFAULT_CREDSAllow admin/admin on external bind (unsafe)false
CHAINLIT_AUTH_SECRETAuth secret for sessionsAuto-generated

Security

The chat UI enforces bind-aware authentication — stricter security when bound to external interfaces.

InterfaceSecurity ModeCredentials
Loopback (127.0.0.1, localhost)Permissiveadmin/admin allowed
External (0.0.0.0, LAN, public)StrictCustom credentials required
bash
# Safe for external deployment
export CHAINLIT_USERNAME=myuser
export CHAINLIT_PASSWORD=mypass
praisonai chat --host 0.0.0.0
Bind-Aware Authentication

Complete security configuration guide

UI Features

Chain of Thought Visualization

The chat interface displays agent reasoning steps, showing how agents arrive at their responses.

Tool Call Panel

When agents use tools, the UI displays:

  • Tool name
  • Input arguments
  • Tool output/results
  • Execution time

Session History

  • Automatic session persistence
  • Resume previous conversations
  • Export chat history

Integration with PraisonAI Agents

PraisonAI Chat integrates seamlessly with the full PraisonAI agent framework:

python
from praisonaiagents import Agent, Task, AgentTeam
from praisonaiagents.tools import internet_search

researcher = Agent(
    name="Researcher",
    role="Research specialist",
    tools=[internet_search]
)

writer = Agent(
    name="Writer",
    role="Content writer"
)

# Define tasks
research_task = Task(
    description="Research {topic}",
    agent=researcher,
    expected_output="Research findings"
)

write_task = Task(
    description="Write article based on research",
    agent=writer,
    expected_output="Article content"
)

# Create the agents system
agents = AgentTeam(
    agents=[researcher, writer],
    tasks=[research_task, write_task]
)

# The chat UI will automatically detect and use these agents

Upstream Updates

PraisonAI Chat is based on Chainlit, an excellent open-source framework. We maintain compatibility with upstream updates.

To sync with upstream improvements:

bash
cd PraisonAIChat
make sync-upstream

How It Works

Diagram
AgentChatUIUserAgentChatUIUserType messageForward to agentProcess with toolsStream response tokensDisplay streamed reply + tool calls

Best Practices

Start with a single agent

Validate prompts and tools in chat before adding multi-agent complexity. One well-instructed agent is easier to debug than a team.

Enable streaming for long replies

Use streaming so users see progress during tool calls and multi-step reasoning instead of waiting for a full response.

Persist sessions in production

Configure session storage when users return across visits. Ephemeral sessions are fine for local dev only.

Pin the chat extra version

Install praisonai[chat] in CI and production with a pinned version so the UI and SDK stay compatible.

License

PraisonAI Chat is licensed under the Apache 2.0 License. See THIRD_PARTY_NOTICES.md for attribution.

Related