autogen-studio¶
AutoGen Studio is Microsoft AutoGen's web UI (autogenstudio ui) for building and running
multi-agent teams. It came into the catalog from the agent framework sweep for
issue #64; the AutoGen libraries and
Microsoft Agent Framework, which write nothing under the home by default, are covered in
research/frameworks.md. Its parser is in the backlog
(issue 69).
Source and evidence¶
microsoft/autogen, commit
027ecf0a379bcc1d09956d46d12d44a3ad9cee14.
Code is MIT
(LICENSE-CODE),
docs CC-BY-4.0. The repository ships autogen-core, autogen-agentchat, autogen-ext,
magentic-one-cli and autogen-studio 0.4.3
(version.py:1).
The README marks AutoGen as in maintenance mode and points new users to Microsoft Agent Framework
(README.md:14-25).
All claims are from source.
AutoGen Studio is in the catalog because its default gallery runs code on the host: a Python
code execution tool built on LocalCommandLineCodeExecutor(work_dir=".coding"), relative to
the working directory
(builder.py:433-439),
and an MCP filesystem workbench rooted at the home directory
(builder.py:562-573).
Observed¶
- No real install: nothing was installed or run.
Source reviews¶
- 2026-10-19: HEAD
004749eagainst the previously cited027ecf0, from source only.python/packages/autogen-studiois identical at the two commits (an emptygit diff), so every citation still holds. Added the message records, the model, deletion and the.codingscratch directory (Per-user storage) and the absence of permission and sync state (Parsing).
Collection¶
Per-user storage¶
The app directory is ~/.autogenstudio (Path.home()) on every OS, unless
AUTOGENSTUDIO_APPDIR or --appdir is set
(initialization.py:41-45,
cli.py:58-59,
README.md:130).
Path under ~/.autogenstudio |
Holds | Default or opt-in |
|---|---|---|
autogen04203.db |
SQLite: tables team, message, session, run (task, team_result, messages as JSON), gallery, settings, eval tables. The README's database.sqlite name is out of date (config.py:7, initialization.py:47-51, db.py:51-170) |
default unless --database-uri is set |
files/, files/user/, configs/ |
static files, user files, team configs (initialization.py:53-70, config.py:11) | default |
alembic/, alembic.ini |
migration scaffolding, small (deps.py:142, schema_manager.py:43-45) | default |
temp_env_vars.env |
host, port, app dir, database URI, auth config path; always under the home, even when --appdir is set (cli.py:18-22, cli.py:51-74, lite/studio.py:131-135) |
default |
.env |
environment variables (API keys) that the user puts there and Studio loads (initialization.py:72-77) | read if present |
Studio lite mode uses an in-memory database (lite/studio.py:150).
Scratch directories¶
The gallery's Python code execution tool runs in
.coding, created relative to the directory Studio was started from
(builder.py:433).
It is the agent's own working directory, not a user project. Started from
the home, it is ~/.coding, which no catalog line collects; started
elsewhere, it is outside the home. Nothing in the database records it, so
neither project discovery nor the analyzer can name it.
Docker¶
No compose file and no named volume. The Studio Dockerfile sets
AUTOGENSTUDIO_APPDIR=/home/user/app inside the image
(Dockerfile:11),
so no DOCKER_VOLUMES line.
Records¶
A run's stream is saved message by message as message
rows (config JSON, session_id, run_id) for the types
TextMessage, MultiModalMessage, StopMessage, HandoffMessage,
ToolCallRequestEvent, ToolCallExecutionEvent and
LLMCallEventMessage
(connection.py:129-143,
173-186),
and the run's final TaskResult goes to run.team_result.
Model¶
Every model call is logged as an AutoGen LLMCallEvent, which
Studio captures and saves as a message with source llm_call_event
(teammanager.py:26-37,
types.py:25-26).
Its content is the event as JSON (type: "LLMCall", messages,
response, prompt_tokens, completion_tokens, tools)
(logging.py:42-45,
63-64),
and for the OpenAI client response is the provider's response dump,
whose model is the resolved model id
(_openai_client.py:716-724).
The model the user configured is in the team row's component JSON and
in settings.config.default_model_client, gpt-4o-mini by default
(types.py:105-110).
Deletion¶
Deleting a session deletes the session row with foreign
keys on, and run (ondelete="CASCADE" on session_id) and message
(ondelete="CASCADE" on run_id) follow it
(sessions.py:58-62,
db_manager.py:253-263,
db.py:65,
96).
No other file keeps a copy.
Credentials¶
.autogenstudio/.env: secret glob..autogenstudio/temp_env_vars.env: secret glob; its database URI can embed a Postgres password (README.md:133).- The
settingstable inautogen04203.dbholds environment variables typedsecretand the default model client config with itsapi_key(types.py:88-109). The database also holds the run history, so it is collected unflagged, as the catalog does for Cursor'sstate.vscdb; redact thesettingstable before sharing.
Exclusions¶
None. The directory is small.
Project-local files¶
None written by Studio itself; the gallery code executor's .coding directory is in
Scratch directories.
Where the project path is recorded¶
Nowhere. Studio has no project concept; teams and sessions are rows in
autogen04203.db.
Parsing¶
AutoGen Studio is backlog: its parser is
issue 69, and nothing it writes is parsed
yet. A parser would read the SQLite autogen04203.db: the message rows of each run (the
message types under Records), joined through the session and run tables, with
the LLMCallEventMessage rows for the model (Model). run.messages and
run.team_result repeat the message rows inside the same file, so there is no secondary
source, and the settings table holds credentials (Credentials). The store is
SQLite, so there is no line-oriented file.
Studio records no permission state: the gallery's code executor runs without an approval function
(builder.py:433-434);
approval_func exists only on AgentChat's CodeExecutorAgent
(_code_executor_agent.py:140),
and is not found in autogen-studio at
004749e
(grepped for approv and permission: only the web auth error class). A human's answer to a
UserProxyAgent arrives over the web socket and is stored as an ordinary message
(connection.py:201-224).
It records no sync, relay or origin state either (grepped for upload, sync and share in
autogen-studio at the same commit).
Confidence¶
- High: the app directory, the database name and tables, and the credential locations (source).
- Not determined: whether older Studio releases used another database name (the README mentions
database.sqlite).