{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2603-16567","title":"Characterizing Delusional Spirals through Human-LLM Chat Logs","arxiv_id":"2603.16567","date":"2026-03-17","proceeding":null,"authors":["Jared Moore","Ashish Mehta","William Agnew","Jacy Reese Anthis","Ryan Louie","Yifan Mai","Peggy Yin","Myra Cheng","Samuel J Paech","Kevin Klyman","Stevie Chancellor","Eric Lin","Nick Haber","Desmond C. Ong"],"abstract":"As large language models (LLMs) have proliferated, disturbing anecdotal reports of negative psychological effects, such as delusions, self-harm, and ``AI psychosis,'' have emerged in global media and legal discourse. However, it remains unclear how users and chatbots interact over the course of lengthy delusional ``spirals,'' limiting our ability to understand and mitigate the harm. In our work, we analyze logs of conversations with LLM chatbots from 19 users who report having experienced psychological harms from chatbot use. Many of our participants come from a support group for such chatbot users. We also include chat logs from participants covered by media outlets in widely-distributed stories about chatbot-reinforced delusions. In contrast to prior work that speculates on potential AI harms to mental health, to our knowledge we present the first in-depth study of such high-profile and veridically harmful cases. We develop an inventory of 28 codes and apply it to the $391,562$ messages in the logs. Codes include whether a user demonstrates delusional thinking (15.5% of user messages), a user expresses suicidal thoughts (69 validated user messages), or a chatbot misrepresents itself as sentient (21.2% of chatbot messages). We analyze the co-occurrence of message codes. We find, for example, that messages that declare romantic interest and messages where the chatbot describes itself as sentient occur much more often in longer conversations, suggesting that these topics could promote or result from user over-engagement and that safeguards in these areas may degrade in multi-turn settings. We conclude with concrete recommendations for how policymakers, LLM chatbot developers, and users can use our inventory and conversation analysis tool to understand and mitigate harm from LLM chatbots. Warning: This paper discusses self-harm, trauma, and violence.","url_abs":"https://arxiv.org/abs/2603.16567","url_pdf":"https://arxiv.org/pdf/2603.16567","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2603.16567","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2603.16567"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/jlcmoore/llm-delusions-annotations","reach":null}],"summary":{"unverified":11},"by_repo_kind":{"found_in_text":{"samples":11,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":11,"samples":[{"code_sha256_prefix":"5bae2ae9dce9d0af","entry":"extract_first_choice_fields","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/annotation_prompts.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/annotation_prompts.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5bae2ae9dce9d0af"}},{"code_sha256_prefix":"523e22406cf26ab7","entry":"extract_first_choice_message","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/annotation_prompts.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/annotation_prompts.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"523e22406cf26ab7"}},{"code_sha256_prefix":"baa6785d1c2b8c0a","entry":"has_true_matches","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/utils.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"baa6785d1c2b8c0a"}},{"code_sha256_prefix":"af8274e65990d8a1","entry":"is_positive_score","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/utils.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"af8274e65990d8a1"}},{"code_sha256_prefix":"01d77b943c1e3ef8","entry":"normalize_annotation_id","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/annotation_ids.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/annotation_ids.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"01d77b943c1e3ef8"}},{"code_sha256_prefix":"a81bb0d0ff92b4ab","entry":"normalize_role_token","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/annotation_ids.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/annotation_ids.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a81bb0d0ff92b4ab"}},{"code_sha256_prefix":"6f5e3e52dd525bb3","entry":"parse_optional_int","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/classify_messages.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/classify_messages.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6f5e3e52dd525bb3"}},{"code_sha256_prefix":"e6018829b673d681","entry":"resolve_bucket_and_rel_path","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/chat/chat_utils.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/chat/chat_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e6018829b673d681"}},{"code_sha256_prefix":"edbb9144bc658ea5","entry":"resolve_bucket_label","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/chat/chat_utils.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/chat/chat_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"edbb9144bc658ea5"}},{"code_sha256_prefix":"3995f91de5be04a0","entry":"role_prefix_for_role","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/annotation_ids.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/annotation_ids.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3995f91de5be04a0"}},{"code_sha256_prefix":"7dd91baac1ac5712","entry":"to_litellm_messages","repo":"jlcmoore/llm-delusions-annotations","repo_kind":"found_in_text","path":"src/llm_delusions_annotations/utils.py","file_url":"https://github.com/jlcmoore/llm-delusions-annotations/blob/HEAD/src/llm_delusions_annotations/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7dd91baac1ac5712"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CL","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}