# 基础概念

## 什么是 Agent

Agent 是由 Decision Agent 管理的一组智能体配置和运行能力。一个 Agent 通常包含名称、描述、头像、产品归属、输入输出定义、大模型配置、工具/技能、知识网络、运行模式等信息。

从链路上看，Decision Agent 后端的 agent-factory 模块负责创建、保存、校验和发布 Agent；Agent Executor 负责执行 Agent；执行过程中会调用 Dolphin SDK 完成核心逻辑的执行。

## 个人空间

个人空间是用户创建和管理 Agent 的区域，也可以理解为“开发态”或“我的创建”。在这里可以创建 Agent、编辑配置、查看发布状态、发布、取消发布或删除。

个人空间中的 Agent 可能处于以下状态：

| 状态 | 含义 |
| --- | --- |
| 未发布 | 还没有可对外使用的发布版本。 |
| 已发布 | 当前配置与已发布版本保持一致。 |
| 已发布编辑中 | 已经发布过，但发布后又修改了配置内容，需要重新发布才会生成新的对外版本。 |

## 广场

广场是发布后的 Agent 被发现和使用的区域。Agent 发布到广场后，其他用户或业务系统才可以按发布版本使用它。

部分 REST 接口路径中仍保留历史命名 `agent-market`，但产品和用户指南中的展示名称统一使用“广场”。

## 常见 ID

| 名称 | 说明 |
| --- | --- |
| `agent_id` | Agent 的唯一标识 ID，管理接口、CLI 管理命令、SDK 管理能力通常使用它。 |
| `agent_key` | 另一个 Agent 的唯一标识 ID，通常可以通过 Agent 详情接口解析出 `agent_key`。<br><br>**注意**：<br>1. `agent_key` 与 `agent_id` 不同，`agent_key` 可以在创建时进行自定义，便于业务系统识别和调用，也可以跨环境使用（即不同的环境可以使用相同的 `agent_key`）。<br>2. 在对话等接口中可以使用 `agent_key` 来调用 Agent。<br>3. `agent_id` 由系统自动生成，不可自定义，不能跨环境使用。 |
| `version` | Agent 版本。<br>未发布的固定为 `v0`（即使已经发布过，但如果编辑后未发布，版本仍为 `v0`。此时同时存在 `v0` 和已发布的版本。所以 `v0` 通常表示未发布的版本，或最近编辑的版本。如果当前是已发布状态，此时 `v0` 和最新发布的版本是同一个版本）。<br>每次发布会产生新的发布版本（从 `v1` 开始递增，版本号依次为 `v1`、`v2`、`v3`...）。 |
| `conversation_id` | 对话 ID，用于继续多轮对话和查询对话历史。 |
| `agent_run_id` | 一次执行 ID，用于追踪一次 Agent 调用的运行过程。 |
