Skip to content

Commit 977cd11

Browse files
authored
Merge pull request #4 from willeppy/main
Add full agdebugger code
2 parents 8c3a3b3 + 1869aa4 commit 977cd11

64 files changed

Lines changed: 10736 additions & 24 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
551 KB
Loading

.gitignore

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
## GENERIC IGNORES
2+
3+
# Byte-compiled / optimized / DLL files
4+
__pycache__/
5+
*.py[cod]
6+
*$py.class
7+
8+
# C extensions
9+
*.so
10+
11+
# Distribution / packaging
12+
.Python
13+
build/
14+
develop-eggs/
15+
downloads/
16+
eggs/
17+
.eggs/
18+
lib/
19+
lib64/
20+
parts/
21+
var/
22+
wheels/
23+
share/python-wheels/
24+
*.egg-info/
25+
.installed.cfg
26+
*.egg
27+
MANIFEST
28+
29+
*.manifest
30+
*.spec
31+
32+
# Installer logs
33+
pip-log.txt
34+
pip-delete-this-directory.txt
35+
36+
# Unit test / coverage reports
37+
htmlcov/
38+
.tox/
39+
.nox/
40+
.coverage
41+
.coverage.*
42+
.cache
43+
nosetests.xml
44+
coverage.xml
45+
*.cover
46+
*.py,cover
47+
.hypothesis/
48+
.pytest_cache/
49+
cover/
50+
51+
# Translations
52+
*.mo
53+
*.pot
54+
55+
# Django stuff:
56+
*.log
57+
local_settings.py
58+
db.sqlite3
59+
db.sqlite3-journal
60+
61+
# Flask stuff:
62+
instance/
63+
.webassets-cache
64+
65+
# Scrapy stuff:
66+
.scrapy
67+
68+
# Sphinx documentation
69+
docs/_build/
70+
71+
# PyBuilder
72+
.pybuilder/
73+
target/
74+
75+
# Jupyter Notebook
76+
.ipynb_checkpoints
77+
78+
# IPython
79+
profile_default/
80+
ipython_config.py
81+
82+
.pdm.toml
83+
84+
__pypackages__/
85+
86+
# Celery stuff
87+
celerybeat-schedule
88+
celerybeat.pid
89+
90+
# SageMath parsed files
91+
*.sage.py
92+
93+
# Environments
94+
.env
95+
.venv
96+
env/
97+
venv/
98+
ENV/
99+
env.bak/
100+
venv.bak/
101+
102+
# Spyder project settings
103+
.spyderproject
104+
.spyproject
105+
106+
# Rope project settings
107+
.ropeproject
108+
109+
# mkdocs documentation
110+
/site
111+
112+
# mypy
113+
.mypy_cache/
114+
.dmypy.json
115+
dmypy.json
116+
117+
# Pyre type checker
118+
.pyre/
119+
120+
# pytype static type analyzer
121+
.pytype/
122+
123+
# Cython debug symbols
124+
cython_debug/
125+
126+
.ruff_cache/
127+
128+
/docs/src/reference
129+
.DS_Store
130+
131+
# Generated proto files
132+
src/agnext/worker/protos/agent*
133+
134+
# Logs
135+
logs
136+
*.log
137+
npm-debug.log*
138+
yarn-debug.log*
139+
yarn-error.log*
140+
pnpm-debug.log*
141+
lerna-debug.log*
142+
143+
node_modules
144+
dist
145+
dist-ssr
146+
*.local
147+
148+
# Editor directories and files
149+
.vscode/*
150+
!.vscode/extensions.json
151+
.idea
152+
.DS_Store
153+
*.suo
154+
*.ntvs*
155+
*.njsproj
156+
*.sln
157+
*.sw?
158+
159+
.vite
160+
161+
## SPECIFIC IGNORES
162+
163+
demo

DEV.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Development
2+
3+
## Backend
4+
5+
```sh
6+
# Install editable
7+
pip install -e .
8+
9+
AGDEBUGGER_BACKEND_SERVE_UI=FALSE agdebugger scenario:get_agent_team --port 8123
10+
```
11+
12+
## Frontend
13+
14+
First time
15+
16+
```sh
17+
cd frontend
18+
# Create a .env.development.local file with the required API URL
19+
echo "VITE_AGDEBUGGER_FRONTEND_API_URL=http://localhost:8123/api" > .env.development.local
20+
npm install
21+
```
22+
23+
Later can just launch dev server
24+
25+
```sh
26+
cd frontend
27+
npm run dev
28+
```

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
graft frontend/dist

README.md

Lines changed: 62 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,71 @@
1-
# Project
1+
# AGDebugger
22

3-
> This repo has been populated by an initial template to help get you started. Please
4-
> make sure to update the content to build a great experience for community-building.
3+
AGDebugger is an interactive system to help you debug your agent teams. It offers interactions to:
54

6-
As the maintainer of this project, please make a few updates:
5+
1. Send and step through agent messages
6+
2. Edit previously sent agent messages and revert to earlier points in a conversation
7+
3. Navigate agent conversations with an interactive visualization
78

8-
- Improving this README.MD file to provide a great experience
9-
- Updating SUPPORT.MD with content about this project's support experience
10-
- Understanding the security reporting process in SECURITY.MD
11-
- Remove this section from the README
9+
![screenshot of AGDebugger interface](.github/screenshots/agdebugger_sc.png)
1210

13-
## Contributing
11+
## Local Install
1412

15-
This project welcomes contributions and suggestions. Most contributions require you to agree to a
16-
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
17-
the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
13+
You can install AGDebugger locally by cloning the repo and installing the python package.
1814

19-
When you submit a pull request, a CLA bot will automatically determine whether you need to provide
20-
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
21-
provided by the bot. You will only need to do this once across all repos using our CLA.
15+
```sh
16+
# Install & build frontend
17+
cd frontend
18+
npm install
19+
npm run build
20+
# Install & build agdebugger python package
21+
cd ..
22+
pip install .
23+
```
2224

23-
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
24-
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
25-
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
25+
## Usage
2626

27-
## Trademarks
27+
AGDebugger is built on top of [AutoGen](https://microsoft.github.io/autogen/stable/). To use AGDebugger, you provide a python file that exposes a function that creates an [AutoGen AgentChat](https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/index.html) team for debugging. You can then launch AgDebugger with this agent team.
2828

29-
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
30-
trademarks or logos is subject to and must follow
31-
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
32-
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
33-
Any use of third-party trademarks or logos are subject to those third-party's policies.
29+
For example, the script below creates a simple agent team with a single WebSurfer agent.
30+
31+
```python
32+
# scenario.py
33+
from autogen_agentchat.teams import MagenticOneGroupChat
34+
from autogen_agentchat.ui import Console
35+
from autogen_ext.agents.web_surfer import MultimodalWebSurfer
36+
from autogen_ext.models.openai import OpenAIChatCompletionClient
37+
38+
async def get_agent_team():
39+
model_client = OpenAIChatCompletionClient(model="gpt-4o")
40+
41+
surfer = MultimodalWebSurfer(
42+
"WebSurfer",
43+
model_client=model_client,
44+
)
45+
team = MagenticOneGroupChat([surfer], model_client=model_client)
46+
47+
return team
48+
```
49+
50+
We can then launch the interface with:
51+
52+
```sh
53+
agdebugger scenario:get_agent_team
54+
```
55+
56+
Once in the interface, you can send a GroupChatStart message to the start the agent conversation and begin debugging!
57+
58+
## Citation
59+
60+
See our CHI 2025 paper for more details on the design and evaluation of AGDebugger.
61+
62+
```bibtex
63+
@inproceedings{epperson25agdebugger,
64+
title={Interactive Debugging and Steering of Multi-Agent AI Systems},
65+
author={Will Epperson and Gagan Bansal and Victor Dibia and Adam Fourney and Jack Gerrits and Erkang Zhu and Saleema Amershi},
66+
year={2025},
67+
publisher = {Association for Computing Machinery},
68+
booktitle = {Proceedings of the 2025 CHI Conference on Human Factors in Computing Systems},
69+
series = {CHI '25}
70+
}
71+
```

0 commit comments

Comments
 (0)