ForcePilot/docs/latest/agents/context-config.md
Wenjie Zhang 90bfd20d8d refactor: 重构:将项目重命名为 Yuxi 并更新模块路径
- 在所有文档和配置中将品牌从 "Yuxi-Know" 重命名为 "Yuxi"
- 将 Python 导入路径从 `src.*` 更新为 `yuxi.*` 以保持后端包的一致性
- 将 Web 包名称从 `yuxi-know-web` 更新为 `yuxi-web`

此更改与后端代码迁移至 backend/ 目录保持一致。
2026-03-24 11:08:31 +08:00

1.9 KiB

上下文配置

BaseContext 是智能体的配置基类,封装了常用的配置字段,定义了智能体的运行时行为。

BaseContext 详解

from yuxi.agents.common import BaseContext
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 工具:

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

@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