Skip to content

Workspaces and identity

Perseval can debug many local projects without merging their evidence. The hierarchy is intentional:

BoundaryWhat it meansExample
WorkspaceOne local storage and configuration boundaryyour default laptop workspace
ProjectOne agent application or repositorycheckout-agent
EnvironmentWhere a run executedlocal, staging, production
BuildCode, prompt, model, or configuration versiongit-a61c2e1
SessionRelated runs in one user or task conversationcheckout-incident-42
RunOne logical agent executionone attempt to process a return
RevisionImmutable finalized view of a runrevision 1, then reopened revision 2
AgentStable participant identitypolicy-agent
RoleResponsibility in this executionplanner, browser, verifier

Use projects for ordinary separation between applications, repositories, or teams. Use another workspace only when you need a separate local trust, storage, or retention boundary.

The GUI opens the platform-default persisted workspace. Settings → Workspace shows the effective path and whether an environment override selected it. PERSEVAL_WORKSPACE_DIR is an advanced launch override, not a required first-run step.

Every imported or streamed trace belongs to an explicit project. Copy the exact perseval.project.id=<id> value from Sources and attach it as an OpenTelemetry resource attribute.

File import also asks for a project. All-project scope is read-only for actions such as finding review and eval creation; choose one project before mutating review state.

Use the Project control in the upper-right workbench header. The menu shows every project in the workspace and keeps the active project visible at all times.

Perseval project switcher showing two agent projects, the read-only portfolio view, project creation, and trace-source management

  • Choose a project to restore its filters and last useful editor context.
  • Choose All Projects for a read-only portfolio view across the workspace.
  • Choose New project… to open project creation in Sources.
  • While a project is selected, choose Manage trace sources to open its endpoint, local demo, and file import controls.

Changing project scope clears cross-project bulk selection. If the open editor belongs to the previous project, Perseval returns to a usable project-scoped inbox instead of leaving hidden or stale evidence active. Sources also follows the selected project so imports cannot silently target the first project in the workspace.

Use gen_ai.conversation.id for a session that spans several runs. Use service.version for the build or release identifier. Add deployment.environment.name or deployment.environment when the same project runs in several environments.

Do not put build identity in a run name alone. Structured build and environment fields drive filters, recurrence denominators, and compatible baseline/candidate selection.

gen_ai.agent.id is a stable participant identity. agent.role describes what that participant did in this execution. Several agents may share service.name; roles should still distinguish planner, retriever, browser, editor, verifier, and publisher work.

Perseval labels identity as explicit, derived, or unknown. Explicit values are preferred. Derived identity keeps incomplete traces usable but should not be treated as equivalent to a stable producer-provided session or agent ID.

If Runs shows Unknown session or role, confirm the attribute is on the root or relevant agent span, is a bounded scalar, and is present before export. See Multi-agent instrumentation.

The header scope applies project, environment, build, session, and time filters across editors. Perseval stores editor state and Failure Inbox preferences per project scope. Switching projects restores that project’s last useful context without carrying selections into another project.

Comparisons require two distinct finalized revisions in one project. This prevents accidental conclusions across unrelated agent systems.