Skip to content

[Priority: Med] [Refactor/Ops] 迁移配置管理至 pydantic-settings #275

@liujuanjuan1984

Description

@liujuanjuan1984

🔍 发现的问题 / 原始需求描述

目前的 src/opencode_a2a_server/config.py 采用自定义属性解析,虽然轻量但在环境变量较多(数十个)时缺乏强类型校验和自动元数据支持。

🛠️ 详细实施方案

  • 涉及文件: src/opencode_a2a_server/config.py
  • 核心逻辑:
    1. 引入 pydantic-settings 库。
    2. 定义 A2AServerSettings(BaseSettings) 类,映射所有 A2A_*OPENCODE_* 环境变量。
    3. 提供字段校验(如 A2A_PORT 的取值范围、A2A_PUBLIC_URL 的格式校验)。
  • 示例代码:
    from pydantic_settings import BaseSettings, SettingsConfigDict
    
    class A2AServerSettings(BaseSettings):
        a2a_bearer_token: str
        a2a_port: int = 8000
        model_config = SettingsConfigDict(env_prefix='')

🧪 回归测试建议

  • 验证环境变量在迁移前后加载默认值一致。
  • 对比迁移后生成的 A2A 配置元数据与 docs/guide.md 是否一致。

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:todoPlanned but not started

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions