Skip to content

Chat Session

v1.0.0

The Chat Session LOP manages structured multi-agent conversations where multiple Agent LOPs take turns responding in a round-robin rotation. It handles agent ordering, round tracking, retry logic for failed responses, and optional goal-based guidance that can steer the conversation at specific points.

  • Round-robin agent rotation across configurable rounds
  • Automatic retry with escalating prompts when agents return empty responses
  • Goal-driven guidance injected at specific message indices to steer conversation direction
  • Structured JSON mode for character-tagged dialogue
  • Pause, resume, and extend sessions mid-conversation
  • Rate limit detection with automatic session termination

None. Agents are added individually through the Controls page or programmatically via a list of operator paths.

  • conversation_dat: Full chat history with columns for role, message, agent ID, timestamp, and round number
  • event_history_dat: Session lifecycle events (start, agent additions, round advances)
  • agent_states_dat: Current status of each agent (IDLE, READY, ACTIVE, COMPLETE, ERROR)
  • config_dat: Active session configuration stored as JSON

Setting Up a Basic Multi-Agent Conversation

Section titled “Setting Up a Basic Multi-Agent Conversation”
  1. Place a Chat Session LOP in your network.
  2. Create two or more Agent LOPs and configure each with a distinct system prompt and model.
  3. On the Controls page, drag an Agent LOP onto the Agent OP field and pulse Add Single Agent. Repeat for each agent.
  4. On the Session page, set Max Rounds to control how many full rotations occur.
  5. Optionally enter a Chat System Message on the Controls page to set the conversation topic.
  6. Pulse Begin / Restart Session on the Controls page to start the conversation.

The agents will take turns responding, cycling through the roster each round. Monitor progress with the read-only Current Round, Agent Count, and Chat is Active indicators on the Session page.

  1. Pulse Pause Session on the Controls page to halt the rotation.
  2. Enter your message in the Message field.
  3. Pulse Send User Message to inject it into the conversation history.
  4. Pulse Play Session to resume from where the conversation left off.

If the session finishes its rounds but you want more dialogue, pulse Extend Session (+1 round) on the Controls page. This adds one additional round and automatically resumes the conversation with the next agent in rotation. You can extend multiple times.

  1. On the Session page, set Role Mode to Structured JSON.
  2. Each agent’s response will be expected in {"character": "agent_id", "message": "..."} format.
  3. The operator automatically extracts the message content from the JSON structure for the conversation log.

This mode is useful when you need agents to stay in character and want structured output for downstream processing.

The operator tracks its state through these statuses visible in the read-only Status field:

StatusMeaning
IDLENo session configured
READYAgents loaded, session about to start
ACTIVEConversation in progress
PAUSEDSession paused by user
COMPLETEAll rounds finished
ERRORAn unrecoverable error occurred
RATE LIMITAPI rate limit hit, session terminated

When an agent returns an empty or invalid response, the operator automatically retries up to the number set in Max Empty Retries on the Session page. Each retry appends a system-level prompt instructing the agent to provide a valid response. If all retries are exhausted, the conversation advances to the next agent.

  • Configure each Agent LOP with a distinct persona or role before adding it to the session. The Chat Session does not override agent system prompts — it layers its own system message on top.
  • Start with a low Max Rounds value (3-5) to validate the conversation flow before running longer sessions.
  • Use Pause Session and Send User Message to steer a conversation that is going off-track.
  • Keep Max Empty Retries at 2-3 to avoid excessive API calls on unresponsive agents.
  • Enable Set Pars From Python on the Session page if you want programmatic session configuration to persist to the parameter panel for visual feedback.
  • “You must add at least one agent”: No agents have been registered. Use Add Single Agent on the Controls page or pass an agent list when calling Begin Session programmatically.
  • Session ends immediately with RATE LIMIT status: The API provider returned a 429 error. Wait before retrying or switch to a different model/provider on the Agent LOPs.
  • Agents return empty responses repeatedly: Check that each Agent LOP is properly configured with a valid model and API key. Increase Max Empty Retries if the issue is intermittent.
  • Conversation stalls: Verify all agent operator paths are still valid. Check the agent_states_dat output for any agents stuck in ERROR state.
Status (Status) op('chat_session').par.Status Str
Default:
"" (Empty String)
Chat is Active (Active) op('chat_session').par.Active Toggle
Default:
False
Current Round (Currentround) op('chat_session').par.Currentround Int
Default:
0
Range:
0 to 1
Slider Range:
0 to 1
Currentagent (Currentagent) op('chat_session').par.Currentagent Menu
Default:
"" (Empty String)
Options:
Agent Count (Agentcount) op('chat_session').par.Agentcount Int
Default:
0
Range:
0 to 1
Slider Range:
0 to 1
Template Name (Template) op('chat_session').par.Template Str
Default:
"" (Empty String)
Role Mode (Rolemode) op('chat_session').par.Rolemode Menu
Default:
default
Options:
default, structured
Max Rounds (Maxrounds) op('chat_session').par.Maxrounds Int
Default:
0
Range:
0 to 1
Slider Range:
0 to 10
Max Empty Retries (Maxretries) op('chat_session').par.Maxretries Int
Default:
0
Range:
0 to 1
Slider Range:
0 to 1
Set Pars From Python (Setpars) op('chat_session').par.Setpars Toggle
Default:
True
Begin / Restart Session (Beginsession) op('chat_session').par.Beginsession Pulse
Default:
False
Extend Session (+1 round) (Extendsession) op('chat_session').par.Extendsession Pulse
Default:
False
End Session (Endsession) op('chat_session').par.Endsession Pulse
Default:
False
Pause Session (Pausesession) op('chat_session').par.Pausesession Pulse
Default:
False
Play Session (Playsession) op('chat_session').par.Playsession Pulse
Default:
False
Clear Conversation (Clearconversation) op('chat_session').par.Clearconversation Pulse
Default:
False
Chat System Message (Systemmessage) op('chat_session').par.Systemmessage Str
Default:
"" (Empty String)
Send User Message (Usermessage) op('chat_session').par.Usermessage Pulse
Default:
False
Message (Message) op('chat_session').par.Message Str
Default:
"" (Empty String)
Add Single Agent (Addsingleagent) op('chat_session').par.Addsingleagent Pulse
Default:
False
Agent OP (Agentop) op('chat_session').par.Agentop OP
Default:
"" (Empty String)
Reset / Remove Agents (Resetsession) op('chat_session').par.Resetsession Pulse
Default:
False
v1.0.02024-11-06

Initial release