将大模型转化为软件工程智能体,用于修复 GitHub 存储库中的错误和问题。

pre-commit-ci[bot] 58e8277f36 chore: update pre-commit hooks (#819) 18 hours ago
.devcontainer a539107b2a Fix: Remove invalid char from bashrc (#796) 2 weeks ago
.github 3100cd2d38 Bump actions/checkout from 2 to 4 (#818) 22 hours ago
assets fd48b2a6ec Doc: Add livestream video to readme (#750) 1 month ago
config d913dd8b7f Catch json decode errors (#774) 3 weeks ago
docker 5a48368927 documentation of enigma usage 1 month ago
docs a1bd6a7f1f Doc: Remove brittle links to anthropic & co about keys (#816) 22 hours ago
inspector 77ce293885 Chore: Replace os.path with pathlib and update ruff lint rules (#797) 1 week ago
make_demos 47da56d942 Issue #446: Fixed calls to open without ctx manager (#469) 4 months ago
scripts 0634d67921 Remove old scripts 4 weeks ago
sweagent d6770dbcff Typing improvements for summarizer (#809) 1 week ago
tests 3a3d1cf466 CI: Properly test interactive commands 1 week ago
trajectories 4acb9d7811 fix some bugs and updated the trajectory of baby time capsule to include new features 1 month ago
.dockerignore ff35352078 Fix: Include demonstrations in dockerignore (#311) 5 months ago
.git-blame-ignore-revs d3214c337f Dev: Exclude format commits from showing up in git blame 4 months ago
.gitignore 1b60871ab4 added container mounts for caching ghidra out 2 months ago
.pre-commit-config.yaml 58e8277f36 chore: update pre-commit hooks (#819) 18 hours ago
CHANGELOG.md e5af122082 Update changelog and version 4 weeks ago
CODE_OF_CONDUCT.md 22bde4e25b Docs: Add code of conduct (#394) 5 months ago
CONTRIBUTING.md d587f2344d Docs: Move contribution guide to root to help gh discover it 5 months ago
Dockerfile b62510534c Tweaks to use swe-agent web UI from docker (#423) 4 months ago
LICENSE 5b143857cb init 6 months ago
README.md 12ce5e5665 Doc: more reasons to cite enigma (#806) 1 week ago
build_deploy.sh 5b143857cb init 6 months ago
codecov.yml 6820e3e007 Add codecov config and badge 6 months ago
environment.yml 72f41b4436 Web feat: Allow to specify python version & req pkgs 5 months ago
mkdocs.yml 63db6f3a40 Revert "Doc: Add emojis to sidebar" 4 weeks ago
mlc_config.json 1c8fba44d1 Doc: Fix dead link (#767) 4 weeks ago
pyproject.toml 77ce293885 Chore: Replace os.path with pathlib and update ruff lint rules (#797) 1 week ago
release_dockerhub.sh f111779c56 No need to build eval docker container anymore (#678) 3 months ago
requirements.txt ec41209bb1 Groq Models Integration (#721) 2 months ago
run.py 0aef099728 Enh: Improved logging by using traceback.format_exc() (#787) 2 weeks ago
run_replay.py 77ce293885 Chore: Replace os.path with pathlib and update ruff lint rules (#797) 1 week ago
setup.sh f111779c56 No need to build eval docker container anymore (#678) 3 months ago
setup_ctf.sh e419360ab6 Make setup_ctf.sh executable 1 month ago
start_web_ui.sh 354f33ca48 Enh: Point to documentation (#526) 4 months ago

README.md

swe-agent.com

Documentation  |   Discord  |   Preprint  |   EnIGMA preprint

SWE-agent turns LMs (e.g. GPT-4) into software engineering agents that can resolve issues in real GitHub repositories and more.

On SWE-bench, SWE-agent resolves 12.47% of issues of the full test set and 23% of issues of SWE-bench lite. SWE-agent EnIGMA solves more than 3x more challenges of the offensive cybersecurity NYU CTF benchmark than the previous SOTA agent.

We accomplish our results by designing simple LM-centric commands and feedback formats to make it easier for the LM to browse the repository, view, edit and execute code files. We call this an Agent-Computer Interface (ACI). Read more about it in our paper!

SWE-agent is built and maintained by researchers from Princeton University.

swe-agent-gui-demo

🚀 Get started!

👉 Try SWE-agent in your browser: Open in GitHub Codespaces (more information)

Read our documentation to learn more:

Our most recent lecture touches on the project's motivation, showcases our research findings and provides a hands-on tutorial on how to install, use, and configure SWE-agent:

🕵️ SWE-agent for offensive cybersecurity (EnIGMA)

SWE-agent: EnIGMA is a mode for solving offensive cybersecurity (capture the flag) challenges. EnIGMA achieves state-of-the-art results on multiple cybersecurity benchmarks (see leaderboard). The EnIGMA project introduced multiple features that are available in all modes of SWE-agent, such as the debugger and server connection tools and a summarizer to handle long outputs.

💫 Contributions

  • If you'd like to ask questions, learn about upcoming features, and participate in future development, join our Discord community!
  • If you'd like to contribute to the codebase, we welcome issues and pull requests!

Contact person: John Yang and Carlos E. Jimenez (Email: johnby@stanford.edu, carlosej@princeton.edu).

📝 Citation

If you found this work helpful, please consider citing it using the following:

@misc{yang2024sweagent,
      title={SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering},
      author={John Yang and Carlos E. Jimenez and Alexander Wettig and Kilian Lieret and Shunyu Yao and Karthik Narasimhan and Ofir Press},
      year={2024},
      eprint={2405.15793},
      archivePrefix={arXiv},
      primaryClass={cs.SE}
}

If you used the summarizer, interactive commands or the offensive cybersecurity capabilities in SWE-agent, please also consider citing:

@misc{abramovich2024enigmaenhancedinteractivegenerative,
      title={EnIGMA: Enhanced Interactive Generative Model Agent for CTF Challenges},
      author={Talor Abramovich and Meet Udeshi and Minghao Shao and Kilian Lieret and Haoran Xi and Kimberly Milner and Sofija Jancheska and John Yang and Carlos E. Jimenez and Farshad Khorrami and Prashanth Krishnamurthy and Brendan Dolan-Gavitt and Muhammad Shafique and Karthik Narasimhan and Ramesh Karri and Ofir Press},
      year={2024},
      eprint={2409.16165},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2409.16165},
}

🪪 License

MIT. Check LICENSE.

[![Pytest](https://github.com/princeton-nlp/SWE-agent/actions/workflows/pytest.yaml/badge.svg)](https://github.com/princeton-nlp/SWE-agent/actions/workflows/pytest.yaml) [![Test build containers](https://github.com/princeton-nlp/SWE-agent/actions/workflows/test_build_containers.yaml/badge.svg)](https://github.com/princeton-nlp/SWE-agent/actions/workflows/test_build_containers.yaml) [![Release to dockerhub (nightly)](https://github.com/princeton-nlp/SWE-agent/actions/workflows/release-dockerhub-nightly.yaml/badge.svg)](https://github.com/princeton-nlp/SWE-agent/actions/workflows/release-dockerhub-nightly.yaml) [![Release to dockerhub (release)](https://github.com/princeton-nlp/SWE-agent/actions/workflows/release-dockerhub-release.yaml/badge.svg)](https://github.com/princeton-nlp/SWE-agent/actions/workflows/release-dockerhub-release.yaml) [![build-docs](https://github.com/princeton-nlp/SWE-agent/actions/workflows/build-docs.yaml/badge.svg)](https://github.com/princeton-nlp/SWE-agent/actions/workflows/build-docs.yaml) [![codecov](https://codecov.io/gh/princeton-nlp/SWE-agent/graph/badge.svg?token=18XAVDK365)](https://codecov.io/gh/princeton-nlp/SWE-agent) [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/princeton-nlp/SWE-agent/main.svg)](https://results.pre-commit.ci/latest/github/princeton-nlp/SWE-agent/main) [![Markdown links](https://github.com/princeton-nlp/SWE-agent/actions/workflows/check-links.yaml/badge.svg)](https://github.com/princeton-nlp/SWE-agent/actions/workflows/check-links.yaml)