Skip to content

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 004749e against the previously cited 027ecf0, from source only. python/packages/autogen-studio is identical at the two commits (an empty git diff), so every citation still holds. Added the message records, the model, deletion and the .coding scratch 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 settings table in autogen04203.db holds environment variables typed secret and the default model client config with its api_key (types.py:88-109). The database also holds the run history, so it is collected unflagged, as the catalog does for Cursor's state.vscdb; redact the settings table 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).