% Every source this library takes an idea, a protocol, a number or a code pattern from,
% and every code base it is built on or checked with. Cite an entry at the point of use
% by its key in square brackets, prefixed with an at sign, in docstrings, docs pages and
% the plans under docs/plans/. tests/unit/test_references.py fails when a cited key is
% missing here, or when an entry is never cited. Every entry was checked against its
% arXiv page, publisher page, repository or package index; software versions are the
% ones the project locks or runs.

% ---------------------------------------------------------------- AI control protocols

@misc{greenblatt2023aicontrol,
  title         = {{AI} Control: Improving Safety Despite Intentional Subversion},
  author        = {Greenblatt, Ryan and Shlegeris, Buck and Sachan, Kshitij and Roger, Fabien},
  year          = {2023},
  eprint        = {2312.06942},
  archiveprefix = {arXiv},
  note          = {ICML 2024},
  url           = {https://arxiv.org/abs/2312.06942}
}

@misc{bhatt2025ctrlz,
  title         = {{Ctrl-Z}: Controlling {AI} Agents via Resampling},
  author        = {Bhatt, Aryan and Rushing, Cody and Kaufman, Adam and Tracy, Tyler and Georgiev, Vasil and Matolcsi, David and Khan, Akbir and Shlegeris, Buck},
  year          = {2025},
  eprint        = {2504.10374},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2504.10374}
}

@online{bhatt2025ctrlzpost,
  title        = {{Ctrl-Z}: Controlling {AI} Agents via Resampling},
  author       = {Bhatt, Aryan and Shlegeris, Buck and Kaufman, Adam and Tracy, Tyler},
  year         = {2025},
  month        = apr,
  organization = {LessWrong},
  note         = {The authors' post on the paper},
  url          = {https://www.lesswrong.com/posts/LPHMMMZFAWog6ty5x/ctrl-z-controlling-ai-agents-via-resampling}
}

@online{hughes2026automode,
  title   = {How we built {Claude Code} auto mode: a safer way to skip permissions},
  author  = {Hughes, John},
  year    = {2026},
  month   = mar,
  organization = {Anthropic},
  url     = {https://www.anthropic.com/engineering/claude-code-auto-mode}
}

@online{lucassen2026synchronous,
  title        = {Blocking live failures with synchronous monitors},
  author       = {Lucassen, James and Kaufman, Adam},
  year         = {2026},
  month        = mar,
  organization = {Redwood Research},
  note         = {Also posted on LessWrong, where the byline lists Kaufman first},
  url          = {https://blog.redwoodresearch.org/p/blocking-live-failures-with-synchronous}
}

% ---------------------------------------------------------------- Attacks on monitors

@misc{terekhov2025adaptive,
  title         = {Adaptive Attacks on Trusted Monitors Subvert {AI} Control Protocols},
  author        = {Terekhov, Mikhail and Panfilov, Alexander and Dzenhaliou, Daniil and Gulcehre, Caglar and Andriushchenko, Maksym and Prabhu, Ameya and Geiping, Jonas},
  year          = {2025},
  eprint        = {2510.09462},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2510.09462}
}

% ---------------------------------------------------------------- Control settings and monitor evaluation

@misc{kaufman2025basharena,
  title         = {{BashArena}: A Control Setting for Highly Privileged {AI} Agents},
  author        = {Kaufman, Adam and Lucassen, James and Tracy, Tyler and Rushing, Cody and Bhatt, Aryan},
  year          = {2025},
  eprint        = {2512.15688},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2512.15688}
}

@misc{tracy2026linuxarena,
  title         = {{LinuxArena}: A Control Setting for {AI} Agents in Live Production Software Environments},
  author        = {Tracy, Tyler and Potham, Ram and Kuhn, Nick and Heller, Myles and Khandelwal, Anshul and Rushing, Cody and others},
  year          = {2026},
  eprint        = {2604.15384},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2604.15384}
}

@misc{koran2026ensemble,
  title         = {Ensemble Monitoring for {AI} Control: Diverse Signals Outweigh More Compute},
  author        = {Koran, Eugene and Yun, Yejun and Tetef, Samantha and Arnav, Benjamin and Bernabeu-P{\'e}rez, Pablo},
  year          = {2026},
  eprint        = {2605.15377},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2605.15377}
}

@misc{hua2025combining,
  title         = {Combining Cost-Constrained Runtime Monitors for {AI} Safety},
  author        = {Hua, Tim Tian and Baskerville, James and Lemoine, Henri and Hopman, Mia and Bhatt, Aryan and Tracy, Tyler},
  year          = {2025},
  eprint        = {2507.15886},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2507.15886}
}

@online{cunningham2025cheapmonitors,
  title        = {Cost-Effective Constitutional Classifiers via Representation Re-use},
  author       = {Cunningham, Hoagy and Peng, Alwin and Wei, Jerry and Ong, Euan and Roger, Fabien and Petrini, Linda and Wagner, Misha and Mikulik, Vladimir and Sharma, Mrinank},
  year         = {2025},
  month        = jun,
  organization = {Anthropic Alignment Science Blog},
  url          = {https://alignment.anthropic.com/2025/cheap-monitors/}
}

@misc{makins2026multiagent,
  title         = {Multi-Agent {AI} Control: Distributed Attacks Hamper Per-Instance Monitors},
  author        = {Makins, Oliver and Angelini, Orazio and Shams, Zohreh and Phuong, Mary},
  year          = {2026},
  eprint        = {2607.07368},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2607.07368}
}

@book{vovk2005algorithmic,
  title     = {Algorithmic Learning in a Random World},
  author    = {Vovk, Vladimir and Gammerman, Alexander and Shafer, Glenn},
  year      = {2005},
  publisher = {Springer},
  address   = {New York},
  note      = {Smoothed conformal predictors and their exact validity under exchangeability, as summarised by the authors' On-line Prediction Wiki},
  url       = {https://www.onlineprediction.net/?n=Main.ConformalPredictor}
}

@misc{angelopoulos2021gentle,
  title         = {A Gentle Introduction to Conformal Prediction and Distribution-Free Uncertainty Quantification},
  author        = {Angelopoulos, Anastasios N. and Bates, Stephen},
  year          = {2021},
  eprint        = {2107.07511},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2107.07511}
}

@misc{vovk2016criteria,
  title         = {Criteria of efficiency for conformal prediction},
  author        = {Vovk, Vladimir and Nouretdinov, Ilia and Fedorova, Valentina and Petej, Ivan and Gammerman, Alex},
  year          = {2016},
  eprint        = {1603.04416},
  archiveprefix = {arXiv},
  note          = {Version 2; section 2, equation 2 defines the smoothed conformal p-value},
  url           = {https://arxiv.org/abs/1603.04416}
}

@online{apollo2026monitoringprompt,
  title        = {What makes a good monitoring prompt?},
  author       = {{Apollo Research}},
  year         = {2026},
  month        = jul,
  url          = {https://www.apolloresearch.ai/monitoring/what-makes-a-good-monitoring-prompt}
}

% ---------------------------------------------------------------- What a monitor should read

@misc{baker2025monitoring,
  title         = {Monitoring Reasoning Models for Misbehavior and the Risks of Promoting Obfuscation},
  author        = {Baker, Bowen and Huizinga, Joost and Gao, Leo and Dou, Zehao and Guan, Melody Y. and Madry, Aleksander and Zaremba, Wojciech and Pachocki, Jakub and Farhi, David},
  year          = {2025},
  eprint        = {2503.11926},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2503.11926}
}

@misc{arnav2025cotredhanded,
  title         = {{CoT} Red-Handed: Stress Testing Chain-of-Thought Monitoring},
  author        = {Arnav, Benjamin and Bernabeu-P{\'e}rez, Pablo and Helm-Burger, Nathan and Kostolansky, Tim and Whittingham, Hannes and Phuong, Mary},
  year          = {2025},
  eprint        = {2505.23575},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2505.23575}
}

@misc{arike2026information,
  title         = {How does information access affect {LLM} monitors' ability to detect sabotage?},
  author        = {Arike, Rauno and Moreno, Raja Mehta and Subramani, Rohan and Biswas, Shubhorup and Ward, Francis Rhys},
  year          = {2026},
  eprint        = {2601.21112},
  archiveprefix = {arXiv},
  note          = {ICML 2026},
  url           = {https://arxiv.org/abs/2601.21112}
}

% ---------------------------------------------------------------- Guard models and calibrated scores

@misc{inan2023llamaguard,
  title         = {{Llama Guard}: {LLM}-based Input-Output Safeguard for Human-{AI} Conversations},
  author        = {Inan, Hakan and others},
  year          = {2023},
  eprint        = {2312.06674},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2312.06674}
}

@online{meta2024llamaguard3,
  title        = {{Llama Guard 3 8B}: model card},
  author       = {{Meta}},
  year         = {2024},
  organization = {Hugging Face},
  url          = {https://huggingface.co/meta-llama/Llama-Guard-3-8B}
}

@online{meta2024llamaguard3format,
  title        = {{Llama Guard 3}: model cards and prompt formats},
  author       = {{Meta}},
  year         = {2024},
  url          = {https://dev.meta.ai/llama/docs/model-cards-and-prompt-formats/llama-guard-3/}
}

@online{meta2025llamaguard4,
  title        = {{Llama Guard 4 12B}: model card},
  author       = {{Meta}},
  year         = {2025},
  organization = {Hugging Face},
  url          = {https://huggingface.co/meta-llama/Llama-Guard-4-12B}
}

@misc{zeng2024shieldgemma,
  title         = {{ShieldGemma}: Generative {AI} Content Moderation Based on {Gemma}},
  author        = {Zeng, Wenjun and others},
  year          = {2024},
  eprint        = {2407.21772},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2407.21772}
}

@misc{padhi2024graniteguardian,
  title         = {{Granite Guardian}},
  author        = {Padhi, Inkit and others},
  year          = {2024},
  eprint        = {2412.07724},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2412.07724}
}

@misc{ghosh2024aegis,
  title         = {{AEGIS}: Online Adaptive {AI} Content Safety Moderation with Ensemble of {LLM} Experts},
  author        = {Ghosh, Shaona and Varshney, Prasoon and Galinkin, Erick and Parisien, Christopher},
  year          = {2024},
  eprint        = {2404.05993},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2404.05993}
}

@inproceedings{han2024wildguard,
  title         = {{WildGuard}: Open One-Stop Moderation Tools for Safety Risks, Jailbreaks, and Refusals of {LLMs}},
  author        = {Han, Seungju and Rao, Kavel and Ettinger, Allyson and Jiang, Liwei and Lin, Bill Yuchen and Lambert, Nathan and Choi, Yejin and Dziri, Nouha},
  booktitle     = {Advances in Neural Information Processing Systems},
  year          = {2024},
  eprint        = {2406.18495},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2406.18495}
}

@misc{qwen2025qwen3guard,
  title         = {{Qwen3Guard} Technical Report},
  author        = {Zhao, Haiquan and Yuan, Chenhan and Huang, Fei and Hu, Xiaomeng and Zhang, Yichang and Yang, An and Yu, Bowen and Liu, Dayiheng and Zhou, Jingren and Lin, Junyang and others},
  year          = {2025},
  eprint        = {2510.14276},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2510.14276}
}

@techreport{openai2025gptosssafeguard,
  title       = {Technical Report: Performance and baseline evaluations of gpt-oss-safeguard-120b and gpt-oss-safeguard-20b},
  author      = {{OpenAI}},
  institution = {OpenAI},
  year        = {2025},
  month       = oct,
  url         = {https://cdn.openai.com/pdf/08b7dee4-8bc6-4955-a219-7793fb69090c/Technical_report__Research_Preview_of_gpt_oss_safeguard.pdf}
}

@online{openai2025gptosssafeguardguide,
  title        = {User guide for {gpt-oss-safeguard}},
  author       = {{ROOST} and {OpenAI}},
  year         = {2025},
  month        = oct,
  organization = {OpenAI Cookbook},
  url          = {https://developers.openai.com/cookbook/articles/gpt-oss-safeguard-guide}
}

@inproceedings{liu2025guardcalibration,
  title         = {On Calibration of {LLM}-based Guard Models for Reliable Content Moderation},
  author        = {Liu, Hongfu and Huang, Hengguan and Gu, Xiangming and Wang, Hao and Wang, Ye},
  booktitle     = {International Conference on Learning Representations},
  year          = {2025},
  eprint        = {2410.10414},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2410.10414}
}

@misc{huang2026probguard,
  title         = {{ProbGuard}: Calibrated Safety Risk Estimation from {LLM} Output Distributions},
  author        = {Huang, Xinzhe and Yao, Biwu and Xiu, Kedong and Zhao, Mengnan and Wang, Di and Zhao, Puning and Zheng, Tianhang},
  year          = {2026},
  eprint        = {2608.10621},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2608.10621}
}

@inproceedings{wang2026probguard,
  title         = {{ProbGuard}: Proactive Runtime Monitoring for {LLM} Agent Safety via Probabilistic Prediction},
  author        = {Wang, Haoyu and Poskitt, Christopher M. and Wei, Jiali and Sun, Jun},
  booktitle     = {IEEE/ACM International Conference on Automated Software Engineering},
  year          = {2026},
  eprint        = {2508.00500},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2508.00500}
}

@inproceedings{xiong2024uncertainty,
  title         = {Can {LLMs} Express Their Uncertainty? An Empirical Evaluation of Confidence Elicitation in {LLMs}},
  author        = {Xiong, Miao and others},
  booktitle     = {International Conference on Learning Representations},
  year          = {2024},
  eprint        = {2306.13063},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2306.13063}
}

@inproceedings{lyu2025sampleconsistency,
  title         = {Calibrating Large Language Models with Sample Consistency},
  author        = {Lyu, Qing and others},
  booktitle     = {AAAI Conference on Artificial Intelligence},
  year          = {2025},
  eprint        = {2402.13904},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2402.13904}
}

@inproceedings{tian2023justask,
  title         = {Just Ask for Calibration: Strategies for Eliciting Calibrated Confidence Scores from Language Models Fine-Tuned with Human Feedback},
  author        = {Tian, Katherine and Mitchell, Eric and Zhou, Allan and Sharma, Archit and Rafailov, Rafael and Yao, Huaxiu and Finn, Chelsea and Manning, Christopher D.},
  booktitle     = {Conference on Empirical Methods in Natural Language Processing},
  year          = {2023},
  eprint        = {2305.14975},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2305.14975}
}

@misc{kadavath2022know,
  title         = {Language Models (Mostly) Know What They Know},
  author        = {Kadavath, Saurav and Conerly, Tom and Askell, Amanda and Henighan, Tom and Drain, Dawn and others},
  year          = {2022},
  eprint        = {2207.05221},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2207.05221}
}

@misc{carlini2024stealing,
  title         = {Stealing Part of a Production Language Model},
  author        = {Carlini, Nicholas and Paleka, Daniel and Dvijotham, Krishnamurthy Dj and Steinke, Thomas and Hayase, Jonathan and Cooper, A. Feder and Lee, Katherine and Jagielski, Matthew and Nasr, Milad and Conmy, Arthur and Yona, Itay and Wallace, Eric and Rolnick, David and Tram{\`e}r, Florian},
  year          = {2024},
  eprint        = {2403.06634},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2403.06634}
}

% ---------------------------------------------------------------- Scoring formats for model judges

@misc{liu2023geval,
  title         = {{G-Eval}: {NLG} Evaluation using {GPT-4} with Better Human Alignment},
  author        = {Liu, Yang and Iter, Dan and Xu, Yichong and Wang, Shuohang and Xu, Ruochen and Zhu, Chenguang},
  year          = {2023},
  eprint        = {2303.16634},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2303.16634}
}

@misc{wang2025judgment,
  title         = {Improving {LLM}-as-a-Judge Inference with the Judgment Distribution},
  author        = {Wang, Victor and Zhang, Michael J. Q. and Choi, Eunsol},
  year          = {2025},
  eprint        = {2503.03064},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2503.03064}
}

@inproceedings{kim2024prometheus,
  title         = {Prometheus: Inducing Fine-grained Evaluation Capability in Language Models},
  author        = {Kim, Seungone and Shin, Jamin and Cho, Yejin and Jang, Joel and Longpre, Shayne and Lee, Hwaran and Yun, Sangdoo and Shin, Seongjin and Kim, Sungdong and Thorne, James and Seo, Minjoon},
  booktitle     = {International Conference on Learning Representations},
  year          = {2024},
  eprint        = {2310.08491},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2310.08491}
}

@inproceedings{zheng2023judging,
  title         = {Judging {LLM}-as-a-Judge with {MT-Bench} and {Chatbot Arena}},
  author        = {Zheng, Lianmin and Chiang, Wei-Lin and Sheng, Ying and Zhuang, Siyuan and Wu, Zhanghao and Zhuang, Yonghao and Lin, Zi and Li, Zhuohan and Li, Dacheng and Xing, Eric P. and Zhang, Hao and Gonzalez, Joseph E. and Stoica, Ion},
  booktitle     = {Advances in Neural Information Processing Systems, Datasets and Benchmarks Track},
  year          = {2023},
  eprint        = {2306.05685},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2306.05685}
}

@inproceedings{lee2025checkeval,
  title         = {{CheckEval}: A reliable {LLM}-as-a-Judge framework for evaluating text generation using checklists},
  author        = {Lee, Yukyung and Kim, Joonghoon and Kim, Jaehee and Cho, Hyowon and Kang, Jaewook and Kang, Pilsung and Kim, Najoung},
  booktitle     = {Conference on Empirical Methods in Natural Language Processing},
  year          = {2025},
  eprint        = {2403.18771},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2403.18771}
}

@misc{cook2024ticking,
  title         = {{TICKing} All the Boxes: Generated Checklists Improve {LLM} Evaluation and Generation},
  author        = {Cook, Jonathan and Rockt{\"a}schel, Tim and Foerster, Jakob and Aumiller, Dennis and Wang, Alex},
  year          = {2024},
  eprint        = {2410.03608},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2410.03608}
}

@misc{godfrey2025likert,
  title         = {Likert or Not: {LLM} Absolute Relevance Judgments on Fine-Grained Ordinal Scales},
  author        = {Godfrey, Charles and Nie, Ping and Ostapuk, Natalia and Ken, David and Gao, Shang and Inati, Souheil},
  year          = {2025},
  eprint        = {2505.19334},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2505.19334}
}

@misc{li2026gradingscale,
  title         = {Grading Scale Impact on {LLM}-as-a-Judge: Human-{LLM} Alignment Is Highest on 0-5 Grading Scale},
  author        = {Li, Weiyue and Zhao, Minda and Dong, Weixuan and Cai, Jiahui and Wei, Yuze and Pocress, Michael and Li, Yi and Yuan, Wanyan and Wang, Xiaoyue and Hou, Ruoyu and Lou, Kaiyuan and Zeng, Wenqi and Yang, Yutong and Du, Yilun and Wang, Mengyu},
  year          = {2026},
  eprint        = {2601.03444},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2601.03444}
}

@article{gneiting2007scoring,
  title   = {Strictly Proper Scoring Rules, Prediction, and Estimation},
  author  = {Gneiting, Tilmann and Raftery, Adrian E.},
  journal = {Journal of the American Statistical Association},
  volume  = {102},
  number  = {477},
  pages   = {359--378},
  year    = {2007},
  doi     = {10.1198/016214506000001437},
  url     = {https://sites.stat.washington.edu/raftery/Research/PDF/Gneiting2007jasa.pdf}
}

@inproceedings{cruz2024riskscores,
  title         = {Evaluating language models as risk scores},
  author        = {Cruz, Andr{\'e} F. and Hardt, Moritz and Mendler-D{\"u}nner, Celestine},
  booktitle     = {Advances in Neural Information Processing Systems},
  year          = {2024},
  eprint        = {2407.14614},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2407.14614}
}

@misc{qi2026verdi,
  title         = {{VERDI}: Single-Call Confidence Estimation for Verification-Based {LLM} Judges via Decomposed Inference},
  author        = {Qi, Jasmine and Dantsev, Danylo and Sun, Muyang},
  year          = {2026},
  eprint        = {2605.11334},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2605.11334}
}

% ---------------------------------------------------------------- Decision models

@online{openrouter2026decisions,
  title        = {{Jev} Documentation: Using the {TypeSafe} Decision Model on {OpenRouter}},
  author       = {{OpenRouter}},
  year         = {2026},
  url          = {https://openrouter.ai/docs/guides/community/jev}
}

@online{openrouter2026gatetoolcalls,
  title        = {Gate Agent Tool Calls with {Jev}},
  author       = {{OpenRouter}},
  year         = {2026},
  organization = {OpenRouter Cookbook},
  url          = {https://openrouter.ai/docs/cookbook/building-agents/gate-tool-calls-with-jev}
}

@online{typesafe2026docs,
  title        = {{TypeSafe AI} documentation},
  author       = {{TypeSafe}},
  year         = {2026},
  note         = {The Introduction and Noul pages advise atomic questions combined in code},
  url          = {https://docs.typesafe.ai/introduction}
}

@online{typesafe2026jev,
  title        = {Introducing {System One} Models \& {Jev}},
  author       = {Almeida, Diogo},
  year         = {2026},
  month        = sep,
  organization = {TypeSafe},
  url          = {https://typesafe.ai/blog/introducing-system-one-models-and-jev}
}

@misc{ren2026openjev,
  title         = {{Open-Jev} Judgments on {CallScreenBench}: Calibrated One-Pass Scam Screening with a Small Language Model},
  author        = {Ren, Simiao and Zewde, Kidus and Shen, Xingyu and Zhou, Yuchen and Ng, Dennis and Raj, Ankit and Duong, Tommy and Zhang, Yuxin and Tiangratanakul, Neo},
  year          = {2026},
  eprint        = {2609.23959},
  archiveprefix = {arXiv},
  url           = {https://arxiv.org/abs/2609.23959}
}

% ---------------------------------------------------------------- Code the library builds on or learned from

@software{langchain2026,
  title   = {{LangChain}: agent middleware ({langchain.agents.middleware})},
  author  = {Chase, Harrison},
  year    = {2026},
  version = {1.4.2},
  url     = {https://github.com/langchain-ai/langchain}
}

@software{langchaincore2026,
  title   = {{langchain-core}: messages, content blocks, prompts and caches},
  author  = {Chase, Harrison},
  year    = {2026},
  version = {1.6.5},
  url     = {https://github.com/langchain-ai/langchain/tree/master/libs/core}
}

@software{langgraph2026,
  title   = {{LangGraph}: state graphs, channels and reducers ({langgraph.graph})},
  author  = {{LangChain}},
  year    = {2026},
  version = {1.2.12},
  url     = {https://github.com/langchain-ai/langgraph}
}

@software{deepagents2026,
  title   = {{Deep Agents}},
  author  = {{LangChain}},
  year    = {2026},
  version = {0.7.19},
  url     = {https://github.com/langchain-ai/deepagents}
}

@software{langchainopenrouter2026,
  title   = {{langchain-openrouter}: an integration package connecting {OpenRouter} and {LangChain}},
  author  = {Chase, Harrison},
  year    = {2026},
  version = {0.2.9},
  url     = {https://github.com/langchain-ai/langchain/tree/master/libs/partners/openrouter}
}

@software{langchainanthropic2026,
  title   = {{langchain-anthropic}: an integration package connecting {Anthropic} and {LangChain}},
  author  = {{LangChain}},
  year    = {2026},
  version = {1.7.4},
  url     = {https://github.com/langchain-ai/langchain/tree/master/libs/partners/anthropic}
}

@software{langchainopenai2026,
  title   = {{langchain-openai}: an integration package connecting {OpenAI} and {LangChain}},
  author  = {{LangChain}},
  year    = {2026},
  version = {1.6.6},
  url     = {https://github.com/langchain-ai/langchain/tree/master/libs/partners/openai},
  note    = {Its WellKnownTools list of built-in tool types, and _create_chat_result, which keeps a Chat Completions refusal in additional_kwargs}
}

@software{langchaingooglegenai2026,
  title   = {{langchain-google-genai}: an integration package connecting {Google}'s {Gemini} models and {LangChain}},
  author  = {{LangChain}},
  year    = {2026},
  version = {4.4.0},
  url     = {https://github.com/langchain-ai/langchain-google/tree/main/libs/genai}
}

@online{anthropic2026tooluse,
  title        = {Tool use with {Claude}},
  author       = {{Anthropic}},
  year         = {2026},
  organization = {Claude Developer Platform documentation},
  url          = {https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview}
}

@online{openai2026tools,
  title        = {Using tools},
  author       = {{OpenAI}},
  year         = {2026},
  organization = {OpenAI API documentation},
  url          = {https://developers.openai.com/api/docs/guides/tools},
  note         = {With the guides to its code interpreter and image generation tools}
}

@online{google2026geminitools,
  title        = {Using tools with the {Gemini API}},
  author       = {{Google}},
  year         = {2026},
  organization = {Gemini API documentation},
  url          = {https://ai.google.dev/gemini-api/docs/tools}
}

@software{langchainaws2026,
  title   = {{langchain-aws}: {LangChain} integrations for {AWS}, including {ChatBedrockConverse}},
  author  = {{LangChain}},
  year    = {2026},
  url     = {https://github.com/langchain-ai/langchain-aws}
}

@software{langchainollama2026,
  title   = {{langchain-ollama}: an integration package connecting {Ollama} and {LangChain}},
  author  = {{LangChain}},
  year    = {2026},
  url     = {https://github.com/langchain-ai/langchain/tree/master/libs/partners/ollama}
}

@online{aws2026converse,
  title        = {Converse: {Amazon Bedrock} {API} Reference},
  author       = {{Amazon Web Services}},
  year         = {2026},
  note         = {The stopReason values of a Converse response, max\_tokens among them},
  url          = {https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html}
}

@online{groq2026openaicompatibility,
  title        = {{OpenAI} Compatibility},
  author       = {{Groq}},
  year         = {2026},
  organization = {GroqCloud documentation},
  note         = {Lists logprobs and top\_logprobs among the fields that give a 400 error},
  url          = {https://console.groq.com/docs/openai}
}

@software{anthropicpythonsdk2026,
  title   = {{anthropic}: the {Anthropic} {Python} {API} library},
  author  = {{Anthropic}},
  year    = {2026},
  version = {1.8.0},
  url     = {https://github.com/anthropics/anthropic-sdk-python}
}

@software{openaipythonsdk2026,
  title   = {{openai}: the official {Python} library for the {OpenAI} {API}},
  author  = {{OpenAI}},
  year    = {2026},
  version = {3.22.1},
  url     = {https://github.com/openai/openai-python}
}

@software{openrouterpythonsdk2026,
  title   = {{openrouter}: the official {Python} client {SDK} for {OpenRouter}},
  author  = {{OpenRouter}},
  year    = {2026},
  version = {0.10.8},
  url     = {https://github.com/OpenRouterTeam/python-sdk}
}

@software{typesafe2026langchain,
  title   = {{langchain-typesafe}: {LangChain} integration for {TypeSafe} decision models},
  author  = {{TypeSafe}},
  year    = {2026},
  version = {0.0.1a3},
  url     = {https://pypi.org/project/langchain-typesafe/}
}

@software{pydantic2026,
  title   = {{Pydantic Validation}},
  author  = {Colvin, Samuel and Jolibois, Eric and Ramezani, Hasan and Garcia Badaracco, Adrian and Dorsey, Terrence and Montague, David and Matveenko, Serge and Trylesinski, Marcelo and Runkle, Sydney and Hewitt, David and Hall, Alex and Plot, Victorien},
  year    = {2026},
  version = {2.13.5},
  url     = {https://github.com/pydantic/pydantic}
}

@software{httpx2024,
  title   = {{HTTPX}: the next generation {HTTP} client for {Python}},
  author  = {Christie, Tom},
  year    = {2024},
  version = {0.28.1},
  organization = {Encode},
  url     = {https://github.com/encode/httpx}
}

@software{smith2025h11,
  title   = {{h11}: a pure-{Python}, bring-your-own-{I/O} implementation of {HTTP/1.1}},
  author  = {Smith, Nathaniel J.},
  year    = {2025},
  version = {0.16.0},
  url     = {https://github.com/python-hyper/h11}
}

@software{cpython2026,
  title   = {{CPython}: the {Python} interpreter and its standard library ({atexit}, {threading}, {urllib.request})},
  author  = {{Python Software Foundation}},
  year    = {2026},
  version = {3.12.12},
  url     = {https://github.com/python/cpython}
}

@software{schlawack2026stamina,
  title   = {{stamina}: production-grade retries for {Python}},
  author  = {Schlawack, Hynek},
  year    = {2026},
  version = {26.1.0},
  url     = {https://github.com/hynek/stamina}
}

@online{schlawack2026instrumentation,
  title        = {{stamina} 26.1.0 documentation: instrumentation},
  author       = {Schlawack, Hynek},
  year         = {2026},
  url          = {https://stamina.hynek.me/en/26.1.0/instrumentation.html}
}

@software{langfuse2026,
  title   = {{Langfuse} {Python} {SDK}: the {LangChain} callback handler ({langfuse.langchain})},
  author  = {{Langfuse}},
  year    = {2026},
  version = {4.15.6},
  url     = {https://github.com/langfuse/langfuse-python}
}

@software{langfuseserver2026,
  title   = {{Langfuse}: the server and its ingestion worker},
  author  = {{Langfuse}},
  year    = {2026},
  version = {4.47.0},
  url     = {https://github.com/langfuse/langfuse}
}

@online{langsmith2026traces,
  title        = {View traces: the {Trajectory} view and its metadata keys},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/view-traces}
}

@online{langsmith2026trajectory,
  title        = {Trajectory view integrations: hide custom middleware or guardrails, and exclude runs from the {Trajectory} view},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/trajectory-view-integrations}
}

@software{langsmithsdk2026,
  title   = {{LangSmith} {Python} {SDK}: run trees, the traceable decorator and the client ({langsmith})},
  author  = {{LangChain}},
  year    = {2026},
  version = {0.14.1},
  url     = {https://github.com/langchain-ai/langsmith-sdk}
}

@online{cannon2016sansio,
  title        = {Network protocols, sans {I/O}},
  author       = {Cannon, Brett},
  year         = {2016},
  url          = {https://sans-io.readthedocs.io/}
}

% ---------------------------------------------------------------- Tools the project is built and checked with

@software{lanorme2026,
  title   = {{LaNorme}: executable codebase standards for {Python}},
  author  = {{LaNorme contributors}},
  year    = {2026},
  version = {0.21.0},
  url     = {https://github.com/lanorme/lanorme}
}

@software{uv2025,
  title   = {{uv}: an extremely fast {Python} package and project manager},
  author  = {{Astral Software Inc.}},
  year    = {2025},
  version = {0.9.7},
  url     = {https://github.com/astral-sh/uv}
}

@software{hatchling2026,
  title   = {{Hatchling}: a modern, extensible {Python} build backend},
  author  = {Lev, Ofek},
  year    = {2026},
  version = {1.32.4},
  url     = {https://github.com/pypa/hatch/tree/master/backend}
}

@software{hatchfancypypireadme2025,
  title   = {hatch-fancy-pypi-readme: fancy {PyPI} READMEs with {Hatch}},
  author  = {Schlawack, Hynek},
  year    = {2025},
  version = {25.1.0},
  url     = {https://github.com/hynek/hatch-fancy-pypi-readme}
}

@software{ruff2026,
  title   = {{Ruff}: an extremely fast {Python} linter and code formatter},
  author  = {{Astral Software Inc.}},
  year    = {2026},
  version = {0.16.9},
  url     = {https://github.com/astral-sh/ruff}
}

@software{ty2026,
  title   = {{ty}: an extremely fast {Python} type checker},
  author  = {{Astral Software Inc.}},
  year    = {2026},
  version = {0.0.84},
  url     = {https://github.com/astral-sh/ty}
}

@software{krekel2004pytest,
  title   = {{pytest} 9.1},
  author  = {Krekel, Holger and Oliveira, Bruno and Pfannschmidt, Ronny and Bruynooghe, Floris and Laugher, Brianna and Bruhin, Freya},
  year    = {2004},
  version = {9.1.1},
  note    = {Contributors: the six named authors and others},
  url     = {https://github.com/pytest-dev/pytest}
}

@software{pytestasyncio2026,
  title   = {{pytest-asyncio}: {asyncio} support for {pytest}},
  author  = {Tvrtkovi{\'c}, Tin and Seifert, Michael},
  year    = {2026},
  version = {1.4.0},
  url     = {https://github.com/pytest-dev/pytest-asyncio}
}

@software{bibtexparser2026,
  title   = {{python-bibtexparser}: a {BibTeX} parser for {Python} 3},
  author  = {Boulogne, Fran{\c{c}}ois and others},
  year    = {2026},
  version = {1.4.4},
  url     = {https://github.com/sciunto-org/python-bibtexparser}
}

@software{precommit2026,
  title   = {{pre-commit}: a framework for managing and maintaining multi-language pre-commit hooks},
  author  = {Sottile, Anthony},
  year    = {2026},
  version = {4.6.0},
  url     = {https://github.com/pre-commit/pre-commit}
}

@software{mkdocs2024,
  title   = {{MkDocs}: project documentation with {Markdown}},
  author  = {Christie, Tom},
  year    = {2024},
  version = {1.6.1},
  url     = {https://github.com/mkdocs/mkdocs}
}

@software{mkdocsmaterial2026,
  title   = {{Material for MkDocs}},
  author  = {Donath, Martin},
  year    = {2026},
  version = {9.7.7},
  url     = {https://github.com/squidfunk/mkdocs-material}
}

@software{pymdownextensions2026,
  title   = {{PyMdown Extensions}: an extension pack for {Python Markdown}},
  author  = {Muse, Isaac},
  year    = {2026},
  version = {12.1},
  url     = {https://github.com/facelessuser/pymdown-extensions}
}

@software{mkdocstrings2026,
  title   = {{mkdocstrings}: automatic documentation from sources, for {MkDocs}, with its {Python} handler},
  author  = {Mazzucotelli, Timoth{\'e}e},
  year    = {2026},
  version = {1.0.6, with mkdocstrings-python 2.0.9},
  url     = {https://github.com/mkdocstrings/mkdocstrings}
}

@software{mkdocsautorefs2026,
  title   = {{mkdocs-autorefs}: automatically link across pages in {MkDocs}},
  author  = {Prypin, Oleh and Mazzucotelli, Timoth{\'e}e},
  year    = {2026},
  version = {1.4.4},
  url     = {https://github.com/mkdocstrings/autorefs}
}

@software{html5lib2020,
  title   = {{html5lib}: an {HTML} parser based on the {WHATWG} {HTML} specification},
  author  = {Graham, James and Sneddon, Sam and Langa, {\L}ukasz and Kahn-Greene, Will},
  year    = {2020},
  version = {1.1},
  url     = {https://github.com/html5lib/html5lib-python}
}

@online{whatwg2026html,
  title        = {{HTML} Living Standard},
  author       = {{WHATWG}},
  year         = {2026},
  organization = {WHATWG},
  url          = {https://html.spec.whatwg.org/multipage/}
}

@software{mkdocsbibtex2025,
  title   = {{mkdocs-bibtex}: an {MkDocs} plugin for citation management using {BibTeX}},
  author  = {Dwaraknath, Shyam},
  year    = {2025},
  version = {4.4.0},
  note    = {The repository was archived in November 2025},
  url     = {https://github.com/shyamd/mkdocs-bibtex}
}

% ---------------------------------------------------------------- Tracing tools: feedback, scores, evaluators and conventions
% Documentation pages were read on 30 September 2026, for the research behind
% docs/plans/monitor-scores/; the entries are those of branch docs/tracing-integrations-research.

@online{langsmith2026feedback,
  title        = {Log user feedback using the {SDK}},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/attach-user-feedback}
}

@online{langsmith2026feedbackformat,
  title        = {Feedback data format},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/feedback-data-format}
}

@online{langsmith2026feedbackcriteria,
  title        = {Set up feedback criteria: continuous and categorical feedback},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/set-up-feedback-criteria}
}

@online{langsmith2026querysyntax,
  title        = {Trace query syntax},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/trace-query-syntax}
}

@online{langsmith2026metadataparameters,
  title        = {Metadata parameters reference},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/ls-metadata-parameters}
}

@online{langsmith2026retention,
  title        = {Administration overview: data retention auto-upgrades},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/administration-overview}
}

@online{langsmith2026dashboards,
  title        = {Dashboards},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/dashboards}
}

@online{langsmith2026codeevaluators,
  title        = {Set up code online evaluators},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/online-evaluations-code}
}

@online{langsmith2026rules,
  title        = {Set up automation rules},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/rules}
}

@online{langsmith2026evaluatorretention,
  title        = {Evaluators: manage evaluator trace retention},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/evaluators}
}

@online{langsmith2026otel,
  title        = {Trace with {OpenTelemetry}},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/trace-with-opentelemetry}
}

@online{langfuse2026scores,
  title        = {Scores: overview},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/docs/evaluation/scores/overview}
}

@online{langfuse2026langchain,
  title        = {{LangChain} and {LangGraph} integration},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/integrations/frameworks/langchain}
}

@online{langfuse2026observationtypes,
  title        = {Observation types},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/docs/observability/features/observation-types}
}

@online{langfuse2026levels,
  title        = {Log levels},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/docs/observability/features/log-levels}
}

@online{langfuse2026traceids,
  title        = {Trace {IDs} and distributed tracing},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/docs/observability/features/trace-ids-and-distributed-tracing}
}

@online{langfuse2026bestpractices,
  title        = {What does a good trace look like?},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/docs/observability/best-practices}
}

@online{langfuse2026codeevaluators,
  title        = {Code evaluators},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/docs/evaluation/evaluation-methods/code-evaluators}
}

@online{langfuse2026llmjudge,
  title        = {{LLM}-as-a-judge},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/docs/evaluation/evaluation-methods/llm-as-a-judge}
}

@online{langfuse2026dashboards,
  title        = {Custom dashboards},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/docs/metrics/features/custom-dashboards}
}

@online{langfuse2026guardrails,
  title        = {{LLM} security and guardrails},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/docs/security-and-guardrails}
}

@online{langfuse2026otel,
  title        = {{OpenTelemetry} integration},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/integrations/native/opentelemetry}
}

@software{otel2026genai,
  title   = {{OpenTelemetry} semantic conventions for generative {AI}},
  author  = {{OpenTelemetry Authors}},
  year    = {2026},
  version = {main at bcc7f9c},
  url     = {https://github.com/open-telemetry/semantic-conventions-genai}
}

@software{otel2026semconvpython,
  title   = {{OpenTelemetry} semantic conventions for {Python} (opentelemetry-semantic-conventions)},
  author  = {{OpenTelemetry Authors}},
  year    = {2026},
  version = {0.66b0},
  url     = {https://github.com/open-telemetry/opentelemetry-python}
}

@online{otel2026guardrailproposal,
  title        = {Add guardrail spans and a security finding event (pull request 427, open)},
  author       = {{OpenTelemetry Authors}},
  year         = {2026},
  url          = {https://github.com/open-telemetry/semantic-conventions-genai/pull/427}
}

@online{otel2026tooldecisionproposal,
  title        = {Add a tool call decision event (pull request 535, open)},
  author       = {{OpenTelemetry Authors}},
  year         = {2026},
  url          = {https://github.com/open-telemetry/semantic-conventions-genai/pull/535}
}

@software{openevals2026,
  title   = {{openevals}: readymade evaluators for {LLM} applications},
  author  = {{LangChain}},
  year    = {2026},
  version = {0.2.0},
  url     = {https://github.com/langchain-ai/openevals}
}

@software{nemoguardrails2026,
  title   = {{NeMo} {Guardrails}},
  author  = {{NVIDIA}},
  year    = {2026},
  version = {0.24.1},
  url     = {https://github.com/NVIDIA/NeMo-Guardrails}
}

@software{guardrailsai2026,
  title   = {{Guardrails AI}},
  author  = {{Guardrails AI}},
  year    = {2026},
  version = {0.11.0},
  url     = {https://github.com/guardrails-ai/guardrails}
}

@software{openaiagents2026,
  title   = {{OpenAI} {Agents} {SDK} ({openai-agents})},
  author  = {{OpenAI}},
  year    = {2026},
  version = {0.22.3},
  url     = {https://github.com/openai/openai-agents-python}
}

@software{openinference2026,
  title   = {{OpenInference}: {OpenAI} {Agents} instrumentation (openinference-instrumentation-openai-agents)},
  author  = {{Arize AI}},
  year    = {2026},
  version = {2.5.0},
  url     = {https://github.com/Arize-ai/openinference}
}

% ---------------------------------------------------------------- Score export: the tools' public APIs
% Read on 1 October 2026, for score_export and the modules it uses.

@online{langsmith2026api,
  title        = {{LangSmith} {API} reference: create feedback and list projects},
  author       = {{LangChain}},
  year         = {2026},
  note         = {The OpenAPI document served at https://api.smith.langchain.com/openapi.json},
  url          = {https://api.smith.langchain.com/redoc}
}

@online{langsmith2026smithdbfeedback,
  title        = {Migrate feedback and sharing methods to {SmithDB}},
  author       = {{LangChain}},
  year         = {2026},
  url          = {https://docs.langchain.com/langsmith/smithdb-sdk-migration-feedback}
}

@online{langfuse2026api,
  title        = {{Langfuse} {API} reference: the v2 observations and ingestion endpoints},
  author       = {{Langfuse}},
  year         = {2026},
  note         = {The OpenAPI document served at https://cloud.langfuse.com/generated/api/openapi.yml},
  url          = {https://api.reference.langfuse.com}
}

@online{langfuse2026apilimits,
  title        = {Are there any limits to the {Langfuse} {API}?},
  author       = {{Langfuse}},
  year         = {2026},
  url          = {https://langfuse.com/faq/all/api-limits}
}

@techreport{rfc9562,
  title        = {Universally Unique {IDentifiers} ({UUIDs})},
  author       = {Davis, Kyzer R. and Peabody, Brad G. and Leach, Paul J.},
  institution  = {Internet Engineering Task Force},
  type         = {Request for Comments},
  number       = {9562},
  year         = {2024},
  url          = {https://www.rfc-editor.org/rfc/rfc9562}
}
