2026-03-10 13:55:19 +08:00
|
|
|
# 上下文配置
|
|
|
|
|
|
|
|
|
|
`BaseContext` 是智能体的配置基类,封装了常用的配置字段,定义了智能体的运行时行为。
|
|
|
|
|
|
|
|
|
|
## BaseContext 详解
|
|
|
|
|
|
|
|
|
|
```python
|
2026-03-17 18:56:42 +08:00
|
|
|
from yuxi.agents.common import BaseContext
|
2026-03-10 13:55:19 +08:00
|
|
|
from dataclasses import dataclass
|
|
|
|
|
|
|
|
|
|
@dataclass(kw_only=True)
|
|
|
|
|
class MyAgentContext(BaseContext):
|
|
|
|
|
# 继承以下字段:
|
|
|
|
|
# model: str - 使用的语言模型
|
|
|
|
|
# system_prompt: str - 系统提示词
|
|
|
|
|
# tools: list[str] - 启用的工具列表
|
|
|
|
|
# knowledges: list[str] - 关联的知识库
|
|
|
|
|
# mcps: list[str] - 启用的 MCP 服务器
|
|
|
|
|
# skills: list[str] - 关联的 Skills
|
|
|
|
|
|
|
|
|
|
# 可在此添加自定义字段
|
|
|
|
|
custom_field: str = "默认值"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 字段说明
|
|
|
|
|
|
|
|
|
|
| 字段 | 类型 | 说明 |
|
|
|
|
|
|------|------|------|
|
|
|
|
|
| model | str | 使用的语言模型 |
|
|
|
|
|
| system_prompt | str | 系统提示词 |
|
|
|
|
|
| tools | list[str] | 启用的内置工具列表 |
|
|
|
|
|
| knowledges | list[str] | 关联的知识库 |
|
|
|
|
|
| mcps | list[str] | 启用的 MCP 服务器 |
|
|
|
|
|
| skills | list[str] | 关联的 Skills |
|
|
|
|
|
|
|
|
|
|
## 自定义工具选项
|
|
|
|
|
|
|
|
|
|
有时需要自定义工具选项,比如 ReporterAgent 需要包含 MySQL 工具:
|
|
|
|
|
|
|
|
|
|
```python
|
2026-03-17 18:56:42 +08:00
|
|
|
from yuxi.agents.common import BaseContext, gen_tool_info
|
|
|
|
|
from yuxi.agents.common.toolkits.buildin import calculator, query_knowledge_graph
|
|
|
|
|
from yuxi.agents.common.toolkits.mysql import get_mysql_tools
|
2026-03-10 13:55:19 +08:00
|
|
|
|
|
|
|
|
@dataclass(kw_only=True)
|
|
|
|
|
class ReporterContext(BaseContext):
|
|
|
|
|
tools: Annotated[list[dict], {"__template_metadata__": {"kind": "tools"}}] = field(
|
|
|
|
|
default_factory=lambda: [t.name for t in get_mysql_tools()],
|
|
|
|
|
metadata={
|
|
|
|
|
"name": "工具",
|
|
|
|
|
"options": lambda: gen_tool_info(
|
|
|
|
|
[calculator, query_knowledge_graph, _create_tavily_search()] + get_mysql_tools()
|
|
|
|
|
),
|
|
|
|
|
"description": "包含内置工具和 MySQL 工具包。",
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def __post_init__(self):
|
|
|
|
|
self.mcps = ["mcp-server-chart"] # 默认启用图表 MCP
|
|
|
|
|
```
|