{"id":30174143,"url":"https://github.com/ulab-uiuc/research-town","last_synced_at":"2025-08-12T00:24:52.598Z","repository":{"id":249293873,"uuid":"794845935","full_name":"ulab-uiuc/research-town","owner":"ulab-uiuc","description":"[ICML 2025] ResearchTown: Simulator of Human Research Community","archived":false,"fork":false,"pushed_at":"2025-07-31T23:05:24.000Z","size":152893,"stargazers_count":168,"open_issues_count":28,"forks_count":21,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-04T03:10:04.124Z","etag":null,"topics":["automatic-scientific-discovery","multi-agent-simulation","research-agent"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ulab-uiuc.png","metadata":{"files":{"readme":"README-CN.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-02T04:30:28.000Z","updated_at":"2025-08-02T13:36:42.000Z","dependencies_parsed_at":"2024-07-27T05:33:14.024Z","dependency_job_id":"a191d5dd-626a-4187-9599-ed4708b3e2f7","html_url":"https://github.com/ulab-uiuc/research-town","commit_stats":null,"previous_names":["ulab-uiuc/research-town"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/ulab-uiuc/research-town","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulab-uiuc%2Fresearch-town","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulab-uiuc%2Fresearch-town/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulab-uiuc%2Fresearch-town/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulab-uiuc%2Fresearch-town/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ulab-uiuc","download_url":"https://codeload.github.com/ulab-uiuc/research-town/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulab-uiuc%2Fresearch-town/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269979975,"owners_count":24507134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automatic-scientific-discovery","multi-agent-simulation","research-agent"],"created_at":"2025-08-12T00:24:51.716Z","updated_at":"2025-08-12T00:24:52.548Z","avatar_url":"https://github.com/ulab-uiuc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"width: 100%;\"\u003e\n  \u003cimg src=\"assets/research_town.png\" style=\"width: 100%;\"\u003e\u003c/img\u003e\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003eResearch Town: Simulator of Research Community \u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Python 3.10](https://img.shields.io/badge/python-%E2%89%A53.10-blue)](https://www.python.org/downloads/release/python-3109/)\n[![GitHub pull request](https://img.shields.io/badge/PRs-welcome-orange)](https://github.com/hiyouga/LLaMA-Factory/pulls)\n[![Arxiv](https://img.shields.io/badge/arXiv-Coming%20soon-b31b1b)](https://github.com/ulab-uiuc/research-town)\n[![Discord](https://img.shields.io/badge/Discord-Join%20Us-7289da?logo=discord\u0026logoColor=white)](https://discord.gg/TwXxGhMB)\n[![WeChat](https://img.shields.io/badge/WeChat-Join%20Us-09B83E?logo=wechat\u0026logoColor=white)](assets/wechat.png)\n[![codecov](https://codecov.io/github/ulab-uiuc/research-town/graph/badge.svg?token=00LRQFX0QR)](https://codecov.io/github/ulab-uiuc/research-town)\n\n\n[English](README.md) | [中文](README-CN.md)\n\u003c/div\u003e\n\n## 简介\n\n**Research Town** 是一个多智能体平台并实现基于社区环境的模拟，并定义了以下内容：\n\n1. 🤖 *撰写者*：智能体具备阅读、撰写论文，讨论、反驳以及撰写评审的能力。\n2. 🎩 *环境*：多智能体环境模拟虚拟的学习室，协作完成任务，讨论想法、撰写反驳并完成论文。\n3. ⚙️ *驱动引擎*：我们定义了有限状态机(Finite-state Machines)，管理智能体在不同环境中的参与情况，决定任务完成后的下一步操作。引导智能体从想法讨论环境一步一步论文撰写环境，并帮助选择合适的智能体协作完成任务。\n\n如果认为论文或者代码有价值，请考虑引用我们的工作：\n```bibtex\n@article{yu2024researchtown,\n  title={ResearchTown: Simulator of Human Research Community},\n  author={Yu, Haofei and Hong, Zhaochen and Cheng, Zirui and Zhu, Kunlun and Xuan, Keyang and Yao, Jinwei and Feng, Tao and You, Jiaxuan},\n  journal={arXiv preprint arXiv:2412.17767},\n  year={2024}\n}\n```\n\n\n## 快速开始\n\n### 使用 pip 安装\n\n通过 `pypi` 安装 `research-town` ：\n\n```bash\npip install research-town\n```\n\n### 虚拟环境安装\n\n```bash\nconda create -n research-town python=3.10\nconda activate research-town\ncurl -sSL https://install.python-poetry.org | python3\n```\n\n### 配置环境变量\n\n例如 `OPENAI_API_KEY` 和与数据库相关的配置。推荐的设置方法如下：\n\n1. 将 `.env.template` 文件复制到项目根目录，并命名为 `.env`。\n```bash\ncp .env.template .env\n```\n2. 在 `.env` 文件中填写所需的环境变量。\n\n### 运行示例\n\n运行 `examples` 中提供的示例：\n\n```bash\npoetry install\ncd examples\npython research_town_demo.py\n```\n\n## 开发\n\n### Demo\n\n开发 Demo（包括前端和后端）：\n设置 `DATABASE_FOLDER_PATH=./sample_data` 在 .env 文件中，然后运行：\n\n```bash\ncd frontend\nnpm install\nnpm start\n```\n\n```bash\npoetry install -E backend\nuvicorn backend.app.main:app --reload\n```\n\n### 安装开发选项\n\n按照上面的安装步骤，然后执行以下命令代替运行 python -m pip install -e .：\n\n```\npython -m pip install -e \".[dev]\"\nmypy --install-types --non-interactive research_town\npython -m pip install pre-commit\npre-commit install\n```\n安装 pre-commit 可避免代码格式错误和大文件被提交到 GitHub。\n\n#### 为每个功能创建新分支\n\n使用 `git checkout -b feature/feature-name` 创建新分支，并向 main 分支提交 修改。\n\n#### 提交前检查\n\n运行 poetry run pytest 确保所有测试通过（这将确保通过动态类型检查 beartype），并运行 poetry run mypy --config-file pyproject.toml . 检查静态类型。（您也可以运行 pre-commit run --all-files 来运行所有检查）\n\n#### 检查 GitHub Actions 结果\n\n检查 GitHub Actions 的结果，确保所有测试通过。若未通过，请修复错误并重新提交。\n\n## ResearchBench\n\n要执行ResearchBench实验，请运行 'research_bench/run_review_eval.sh' 脚本。你可以在脚本中调整参数，如使用实际的 `INPUT_PATH`。\n\n如果遇到 `openreview` 未找到的错误，请通过运行 `pip install openreview` 安装该包。如果遇到与 `requests` 相关的问题，请将其版本更改为 `2.26`。\n\n```bash\npip install requests==2.26\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fulab-uiuc%2Fresearch-town","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fulab-uiuc%2Fresearch-town","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fulab-uiuc%2Fresearch-town/lists"}