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.
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.
Quick Start
- Install the chat extra
bash pip install praisonai[chat] - Launch the UI
bash praisonai chatOpens at
http://localhost:8000. Use--port 3000for a custom port. - 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
Seamlessly interact with multiple AI agents in a single interface
Tool VisualizationSee agent tool calls and their results in real-time
Streaming ResponsesReal-time streaming of agent responses
Session ManagementPersistent sessions with full history
Multi-Agent Chat
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
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
| Variable | Description | Default |
|---|---|---|
PRAISONAI_CHAT_PORT | Server port | 8000 |
PRAISONAI_CHAT_HOST | Server host | 0.0.0.0 |
CHAINLIT_HOST | Host the UI binds to (drives auth mode) | 127.0.0.1 |
CHAINLIT_USERNAME | Username for authentication | admin |
CHAINLIT_PASSWORD | Password for authentication | admin |
PRAISONAI_ALLOW_DEFAULT_CREDS | Allow admin/admin on external bind (unsafe) | false |
CHAINLIT_AUTH_SECRET | Auth secret for sessions | Auto-generated |
Security
The chat UI enforces bind-aware authentication — stricter security when bound to external interfaces.
| Interface | Security Mode | Credentials |
|---|---|---|
Loopback (127.0.0.1, localhost) | Permissive | admin/admin allowed |
External (0.0.0.0, LAN, public) | Strict | Custom credentials required |
# Safe for external deployment
export CHAINLIT_USERNAME=myuser
export CHAINLIT_PASSWORD=mypass
praisonai chat --host 0.0.0.0Complete 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:
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 agentsUpstream Updates
PraisonAI Chat is based on Chainlit, an excellent open-source framework. We maintain compatibility with upstream updates.
To sync with upstream improvements:
cd PraisonAIChat
make sync-upstreamHow It Works
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.