# 框架上下文

agentUniverse提供了一个线程、协程独立的上下文管理工具，以key-value的形式存取需要在线程或是协程中分别管理的上下文变量。

## 使用方式

### 新建上下文变量
方式1：
```python
from agentuniverse.base.context.framework_context import FrameworkContext

with FrameworkContext({"context_var1": 1,
                       "context_var2":"context_var"}):
    pass
```
通过with关键字创建一个`FrameworkContext`实例，接受一个`dict`参数，agentUniverse会在with的作用域内将入参中的所有key-value对保存至上下文管理器中，并在退出时清除。

方式2：
```python
from agentuniverse.base.context.framework_context_manager import FrameworkContextManager

FrameworkContextManager().set_context("context_var", "value")
```
直接通过上下文管理器`FrameworkContextManager`新建一个上下文变量，通过这种方式新建的变量会在整个线程或协程的生命周期内存在，可以通过下面的方式手动删除：
```python
from agentuniverse.base.context.framework_context_manager import FrameworkContextManager

FrameworkContextManager().del_context("context_var")
```
### 使用上下文变量
您可以通过上下文管理器`FrameworkContextManager`获取已经保存过的变量：
```python
from agentuniverse.base.context.framework_context_manager import FrameworkContextManager

FrameworkContextManager().get_context("context_var", default_value=None)
```
其中`default_value`默认值为`None`，当上下文中不存在对应key值时返回`default_value`。