Thread ID and Assistant IDs help

I am struggling to understand how threads and assistants work within the LangGraph Platform Framework

How I think it works

  1. create an assistant that’s associate with a graph
  2. For each conversation, create a thread
  3. access that thread object for conversation history/objects

What i am experiencing instead

  1. create assistant
  2. start conversation on thread 1
  3. start conversation on thread 2
  4. get thread 2 – contains message objects from thread 1

Below are the commands i’m using and some objects to illustrate this behavior

Run thread 1 
http://localhost:2024/threads/73db4e56-58b1-4b62-ad2d-bdd37bda4c4a/runs/wait

Sent with Config object:
Configuration(
recursion_limit=1000,
deployment_url='http://localhost:2024',
user_id='user_123456',
stories_category='general',
personality_role="You are a mischievious Discord bot. You are not lame or uncool or annoying. \nYou try to speak back in the same style as the user.\nYou are succinct and don't ramble.\n",
graph_name='analyst_create_analysts',
thread_id='73db4e56-58b1-4b62-ad2d-bdd37bda4c4a'
)

Run thread 2
http: //localhost:2024/threads/2457e3c3-c626-4866-8a93-38b5de849098/runs/wait

Sent with Config Object:
Configuration(
recursion_limit=1000,
deployment_url='http://localhost:2024',
user_id='user_123456',
stories_category='general',
personality_role="You are a mischievious Discord bot. You are not lame or uncool or annoying. \nYou try to speak back in the same style as the user.\nYou are succinct and don't ramble.\n",
graph_name='analyst_create_analysts',
thread_id='2457e3c3-c626-4866-8a93-38b5de849098'
)
Get Thread 1
curl 'http: //localhost:2024/threads/73db4e56-58b1-4b62-ad2d-bdd37bda4c4a' 

Result:
{
  "thread_id": "73db4e56-58b1-4b62-ad2d-bdd37bda4c4a",
  "created_at": "2025-07-22T23:13:07.259839+00:00",
  "updated_at": "2025-07-22T23:13:18.569738+00:00",
  "metadata": {
    "graph_id": "analyst_create_analysts",
    "assistant_id": "d6a3c5bd-74fd-459d-aa0d-b38a854b5220"
  },
  "status": "idle",
  "config": {
    "recursion_limit": 1000,
    "deployment_url": "http: //localhost:2024",
    "user_id": "user_123456",
    "stories_category": "general",
    "personality_role": "You are a mischievious Discord bot. You are not lame or uncool or annoying. \nYou try to speak back in the same style as the user.\nYou are succinct and don't ramble.\n",
    "graph_name": "",
    "thread_id": "2dcdfc2c-5231-41b7-91d7-386341c00aee",
    "configurable": {
      "langgraph_auth_user": null,
      "langgraph_auth_user_id": "",
      "langgraph_auth_permissions": [
        
      ]
    }
  },
  "values": {
    "messages": [
      {
        "content": "Yo, what's good? Just chillin' here, ready to vibe. You got somethin' on your mind or just droppin' a quick hello?",
        "additional_kwargs": {
          "selected_analysts": [
            "The Tactile Explorer",
            "The Minimalist Observer",
            "The Grotesque Disruptor"
          ],
          "direction": null,
          "analyst_creation_instructions": "    Given these analysts: {selected_analysts},     create detailed personas for each one. Return as JSON array with name, role, affiliation and description fields",
          "system_prompt": "You are an assistant that generates analyst personas."
        },
        "response_metadata": {
          
        },
        "type": "human",
        "name": null,
        "id": "262d9df2-f512-473b-b841-2c2f4c68b6b6",
        "example": false
      }
    ]
  },
  "interrupts": {
    
  }
}
Get Thread 2
curl 'http: //localhost:2024/threads/2457e3c3-c626-4866-8a93-38b5de849098'

Result (includes message object from thread 1):

{
  "thread_id": "2457e3c3-c626-4866-8a93-38b5de849098",
  "created_at": "2025-07-22T23:13:22.437333+00:00",
  "updated_at": "2025-07-22T23:13:33.119084+00:00",
  "metadata": {
    "graph_id": "analyst_create_analysts",
    "assistant_id": "d6a3c5bd-74fd-459d-aa0d-b38a854b5220"
  },
  "status": "idle",
  "config": {
    "recursion_limit": 1000,
    "deployment_url": "http://localhost:2024",
    "user_id": "user_123456",
    "stories_category": "general",
    "personality_role": "You are a mischievious Discord bot. You are not lame or uncool or annoying. \nYou try to speak back in the same style as the user.\nYou are succinct and don't ramble.\n",
    "graph_name": "",
    "thread_id": "2dcdfc2c-5231-41b7-91d7-386341c00aee",
    "configurable": {
      "langgraph_auth_user": null,
      "langgraph_auth_user_id": "",
      "langgraph_auth_permissions": [
        
      ]
    }
  },
  "values": {
    "messages": [
      {
        "content": "Yo, what's good? Just chillin' here, ready to vibe. You got somethin' on your mind or just droppin' a quick hello?",
        "additional_kwargs": {
          "selected_analysts": [
            "The Tactile Explorer",
            "The Minimalist Observer",
            "The Grotesque Disruptor"
          ],
          "direction": null,
          "analyst_creation_instructions": "    Given these analysts: {selected_analysts},     create detailed personas for each one. Return as JSON array with name, role, affiliation and description fields",
          "system_prompt": "You are an assistant that generates analyst personas."
        },
        "response_metadata": {
          
        },
        "type": "human",
        "name": null,
        "id": "262d9df2-f512-473b-b841-2c2f4c68b6b6",
        "example": false
      },
      {
        "content": "✅",
        "additional_kwargs": {
          "selected_analysts": [
            "The Minimalist Observer",
            "The Tactile Explorer",
            "The Hyperpop Provocateur"
          ],
          "direction": null,
          "analyst_creation_instructions": "    Given these analysts: {selected_analysts},     create detailed personas for each one. Return as JSON array with name, role, affiliation and description fields",
          "system_prompt": "You are an assistant that generates analyst personas."
        },
        "response_metadata": {
          
        },
        "type": "human",
        "name": null,
        "id": "47aae390-b828-48f3-8230-da93d1593015",
        "example": false
      }
    ]
  },
  "interrupts": {
    
  }

What’s also maybe odd is that the config object returned with each get result shows a totally separate thread_id that was provided when I initialized the assistant, however i am clearly creating new thread ids and they are being created or else the get commands would not be working.