> For the complete documentation index, see [llms.txt](https://whitepaper.virtuals.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://whitepaper.virtuals.io/virtuals-bai-pi-shu/guan-yu-virtuals-1/xie-yi/gong-tong-gong-xian-yu-lai-yuan/mo-kuai-hua-gong-shi-kuang-jia/qu-zhong-xin-hua-gong-xian/ren-zhi-he-xin.md).

# 认知核心

Cognitive Core 是 VIRTUAL 智能体的核心组件，它借助大型语言模型（LLM）执行任务，并体现 VIRTUAL 智能体独特的个性和核心智能。 &#x20;

## 关于大型语言模型（LLMs）&#x20;

当前的 LLM 基于开源模型。每个 Virtual 智能体的个性和核心智能都通过以下方法进行整合：

* **个性开发**\
  每个 Virtual 智能体的背景故事、世界观、个性特征和特点，均采用检索增强生成（RAG）方法进行开发。该方法将语言模型的生成能力与检索机制相结合，使 AI 能够从知识库中提取相关信息来丰富其回应。这种技术对于塑造 Virtual 智能体独特且引人入胜的个性尤为有效，因为它可以利用广泛的数据，使角色互动更加多样化和逼真。
* **核心智能**

  对于拥有大量数据集的 Virtual 智能体，会采用对开源模型进行直接微调的方式。此过程包括针对大型数据集专门调整模型参数，从而增强其在 Virtual 智能体指定领域内准确、有效响应的能力。必要时会应用基于指令的微调。这涉及训练模型遵循特定指令或准则，并根据预定义规则或目标进一步优化其响应和行为。\
  \
  如果数据集较小，则信息会存储在向量数据库中。随后通过 RAG 方法将这些数据输入模型，使 AI 能够高效访问这部分较为有限的信息。

### 数据预处理

在当今多样化的数据环境中，相关数据集有多种格式：文本（来自教材、论坛、维基）、视频和音频。目前，核心角色引擎主要依赖基于文本的大型语言模型（LLMs），因此主要采用基于文本的训练数据。因此，如果训练数据存在于视频或音频等非文本格式中，就需要先转录为文本再用于模型训练。在模型训练之前将应用标准数据处理规则。

* 数据清洗：在此步骤中，对数据集进行清洗，以去除任何噪声和空值。应用数据规则以保持数据完整性并提升数据质量。
* 数据转换：对数据集进行转换和标准化，使其可被解释并可用于模型训练。

### 记住用户对话，以获得更好的用户体验

Virtual 配备了持久记忆系统，旨在尽可能模拟类人的记忆能力，并促进与用户的个性化互动。为实现这一点，系统需要应对两个主要挑战：

1. **用户和对话的识别与回忆**:
   * 该系统旨在可靠地识别每个用户及其各自的对话，确保能够准确记住并引用这些互动。
2. **长对话存储与记忆处理**:
   * 管理和存储长篇对话在记忆处理方面是一个挑战。该系统针对高效处理这些长对话而设计。

#### 唯一标识符

每位与 Virtual 交互的用户都会被分配一个唯一标识符。该标识符对于保持对话连续性和用户特定性至关重要。

<details>

<summary>示例数据库表</summary>

示例数据库表如下所示。&#x20;

```sql
CREATE TABLE Messages (
    message_id VARCHAR(32) NOT NULL PRIMARY KEY,
    conversation_id VARCHAR(32) NOT NULL,
    user_id VARCHAR(32) NOT NULL,
    prompt TEXT NOT NULL,
    timestamp DATETIME NOT NULL,
    response TEXT, 
    FOREIGN KEY (conversation_id) REFERENCES Conversations(conversation_id)
);

```

</details>

#### 向量数据库

消息通过嵌入技术进行向量化。该向量化过程将文本消息转换为数值向量格式，适合高效存储和检索。&#x20;

当 `getPrompt('identifier', 'context', 'params')` 函数被调用时，系统会使用用户标识符从向量数据库中检索所有相关消息。它采用检索方法在大型语言模型（LLM）中处理这些向量，使 LLM 能够在不需要 dApp 额外上下文输入的情况下理解对话上下文。LLM 会基于检索到的对话历史生成回复。此方法确保回复既符合上下文，又能针对每位用户正在进行的对话线程进行个性化处理。

[<mark style="color:红色;">了解更多关于如何为 Cognitive Core 做出贡献的信息。</mark>](/virtuals-bai-pi-shu/gou-jian-zhe-zhong-xin/shi-yong-virtuals-gou-jian/zhi-neng-ti-gong-xian/wei-ren-zhi-he-xin-zuo-gong-xian.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://whitepaper.virtuals.io/virtuals-bai-pi-shu/guan-yu-virtuals-1/xie-yi/gong-tong-gong-xian-yu-lai-yuan/mo-kuai-hua-gong-shi-kuang-jia/qu-zhong-xin-hua-gong-xian/ren-zhi-he-xin.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
