# 智能体创建模块 uml编写

# 一、Scheema范式设计
> 提示词 {系统描述} 如上述，请你帮我分析所需的Parse Schema范式表及具体的字段名称，表名大驼峰，字段小驼峰。可以用plantuml的类图来表示，各个表需要符合设计范式。注意外键关联使用Pointer<类名>这种方式表示。每张表默认有objectId唯一表示和createdAt创建时间。
## 智能体创建模块
- 模块描述
用户表是_User表 
用户可以创建智能体，智能体有智能体类型，智能体名称，智能体描述，智能体参数，智能体状态，智能体创建时间，智能体更新时间，智能体创建人等
为了设计一个智能体创建模块的Parse Schema，我们需要创建一个用户表（`_User`）和一个智能体表（`Agent`）。根据你的要求，以下是所需的Parse Schema范式表及具体的字段名称。

### 1. 用户表 (_User)
`_User` 表是Parse的内置表，包含用户的基本信息。我们不需要在此表中添加额外字段。

### 2. 智能体表 (Agent)
我们将创建一个名为 `Agent` 的表，包含以下字段：

- **objectId**: 唯一标识符（自动生成）
- **createdAt**: 创建时间（自动生成）
- **updatedAt**: 更新时间（自动生成）
- **agentType**: 智能体类型 (String)
- **agentName**: 智能体名称 (String)
- **agentDescription**: 智能体描述 (String)
- **agentParameters**: 智能体参数 (JSON或String)
- **agentStatus**: 智能体状态 (String)
- **creator**: 创建人 (Pointer<_User>) - 关联到用户表

### PlantUML 类图表示

以下是用PlantUML表示的类图：

```plantuml
@startuml
class _User {
    +objectId: String
    +createdAt: Date
    +updatedAt: Date
    // 其他用户字段
}

class Agent {
    +objectId: String
    +createdAt: Date
    +updatedAt: Date
    +agentType: String
    +agentName: String
    +agentDescription: String
    +agentParameters: String
    +agentStatus: String
    +creator: Pointer<_User>
}

_User "1" <-- "0..*" Agent : creates
@enduml
```

### 设计范式分析
1. **第一范式 (1NF)**: 所有字段都是原子值，没有重复的组。
2. **第二范式 (2NF)**: 所有非主属性完全依赖于主键（`objectId`）。
3. **第三范式 (3NF)**: 所有非主属性之间没有传递依赖。

根据以上分析，`Agent` 表符合设计范式要求，能够有效地存储智能体的信息，并与用户表建立关联。
# 二、业务逻辑描述
# 小说角色智能体创建的完整逻辑
## 创建逻辑
- 用户在APP内，通过文本生成智能体，点击提交按钮，触发创建小说角色智能体的逻辑。
  - 数据采集
    - 用户输入智能体名称，智能体描述，智能体参数等数据。
  - 文本生成
    - 提示词： 智能体生成提示词
  - 结果储存
    - 将智能体的名称，描述，参数，状态，创建时间，创建人等数据存入数据库。
> 提示词：{Agent表结构+Agent表描述} 请根据Agent表结构，生成一个JSON格式的Array数组测试数据。
```json
[
    {
        "objectId": "1",
        "createdAt": "2024-12-01T10:00:00Z",
        "updatedAt": "2024-12-01T10:00:00Z",
        "agentType": "Novel Character",
        "agentName": "勇敢的骑士",
        "agentDescription": "一个勇敢的骑士，誓言保护王国，追寻荣耀与正义。",
        "agentParameters": "{\"age\": 30, \"strength\": 85, \"intelligence\": 70, \"loyalty\": 90}",
        "agentStatus": "active",
        "creator": {
            "__type": "Pointer",
            "className": "_User",
            "objectId": "user123"
        }
    },
    {
        "objectId": "2",
        "createdAt": "2024-12-02T11:00:00Z",
        "updatedAt": "2024-12-02T11:00:00Z",
        "agentType": "Novel Character",
        "agentName": "神秘的女巫",
        "agentDescription": "一位拥有强大魔法的女巫，善于操控元素与时间。",
        "agentParameters": "{\"age\": 250, \"powerLevel\": 95, \"wisdom\": 80}",
        "agentStatus": "active",
        "creator": {
            "__type": "Pointer",
            "className": "_User",
            "objectId": "user456"
        }
    },
    {
        "objectId": "3",
        "createdAt": "2024-12-03T12:00:00Z",
        "updatedAt": "2024-12-03T12:00:00Z",
        "agentType": "Novel Character",
        "agentName": "狡猾的盗贼",
        "agentDescription": "一个机智而狡猾的盗贼，擅长潜行与偷窃。",
        "agentParameters": "{\"age\": 25, \"agility\": 90, \"stealth\": 95, \"charisma\": 70}",
        "agentStatus": "inactive",
        "creator": {
            "__type": "Pointer",
            "className": "_User",
            "objectId": "user789"
        }
    },
    {
        "objectId": "4",
        "createdAt": "2024-12-04T09:30:00Z",
        "updatedAt": "2024-12-04T09:30:00Z",
        "agentType": "Novel Character",
        "agentName": "智慧的贤者",
        "agentDescription": "一位智者，拥有无尽的知识与智慧，指导他人走向光明。",
        "agentParameters": "{\"age\": 500, \"knowledge\": 100, \"patience\": 95}",
        "agentStatus": "active",
        "creator": {
            "__type": "Pointer",
            "className": "_User",
            "objectId": "user321"
        }
    }
]
```
# 智能体创建业务逻辑图例
>提示词：{业务逻辑}，您是一名专业的产品经理，请您将上述逻辑的每个过程，用plantuml的时序图表示出来。 
以下是根据小说角色智能体创建的完整逻辑，用 PlantUML 表示的时序图。这个时序图展示了用户在 APP 内创建智能体的各个步骤，包括数据采集、文本生成和结果存储的过程。

```plantuml
@startuml
actor User
participant "APP" as App
participant "Agent Service" as AgentService
participant "Database" as Database

User -> App : 输入智能体名称、描述、参数
App -> User : 显示输入界面
User -> App : 点击提交按钮
App -> AgentService : 发送创建请求（名称、描述、参数）
AgentService -> App : 生成提示词
AgentService -> AgentService : 处理生成逻辑
AgentService -> Database : 存储智能体数据（名称、描述、参数、状态、创建时间、创建人）
Database -> AgentService : 返回存储结果
AgentService -> App : 返回创建成功消息
App -> User : 显示创建成功提示
@enduml
```

### 说明
1. **User**: 表示用户，与 APP 进行交互。
2. **APP**: 表示应用程序，负责收集用户输入和显示信息。
3. **Agent Service**: 处理智能体创建的逻辑，包括生成提示词和与数据库交互。
4. **Database**: 存储智能体数据的数据库。

### 流程步骤
1. 用户在 APP 中输入智能体的名称、描述和参数。
2. APP 显示输入界面，等待用户输入。
3. 用户点击提交按钮，触发创建请求。
4. APP 发送创建请求到 Agent Service，包含用户输入的数据。
5. Agent Service 生成提示词，以帮助创建智能体。
6. Agent Service 处理生成逻辑，准备存储数据。
7. Agent Service 将智能体数据存储到数据库中。
8. 数据库返回存储结果给 Agent Service。
9. Agent Service 返回创建成功的消息给 APP。
10. APP 向用户显示创建成功的提示。

这个时序图清晰地展示了整个智能体创建过程中的交互和数据流动，有助于理解系统的工作逻辑。 
