Skip to content

[Priority: High] [Feature] 支持消费方按需自部署 opencode-a2a-server(参数化拉起) #145

@liujuanjuan1984

Description

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

    • 当前仓库已经具备两条可用部署路径:scripts/deploy.sh(systemd 多实例)与 scripts/deploy_light.sh(当前用户轻量托管),但“消费方按需自部署”仍缺少统一、可编排、可验收的交付契约。
    • 结合 README/SECURITY 中已经明确的 single-tenant trust boundary,本需求应收敛为:消费方按参数拉起自己的单租户实例对,而不是在单实例内追求多租户共享。
    • 当前遗留缺口主要集中在:非交互预检、健康验收、参数/secret 组合校验、systemd 资源基线、身份边界与 shell 治理、初始化链路供应链基线,以及未来可选 Docker 路线的评估。
  • 🛠️ 详细实施方案 (必须包含涉及的文件路径和核心逻辑/伪代码)

    • 本 issue 作为 umbrella / product-contract issue 保留,不直接承载单一代码提交;后续实施应以子 issue 推进:
      • #148:补齐 scripts/deploy.shscripts/deploy_light.shscripts/uninstall.sh 的非交互预检、ready 判定、参数校验与机器可读返回契约。
      • #147:补齐 A2A_ENABLE_SESSION_SHELL、session ownership、身份边界与高风险能力治理规则。
      • #149:收敛 scripts/init_system.sh 的 bootstrap 供应链安全基线。
      • #150:补齐 systemd 资源治理、请求体限制与抗滥用基线。
      • #146:仅作为未来可选路线评估 Docker 化,不进入当前主路径。
    • 需要在以下文件形成统一的“单租户自部署契约”说明:
      • README.md
      • SECURITY.md
      • scripts/deploy_readme.md
      • scripts/deploy_light_readme.md
    • 推荐的最小控制流应统一为:
      validate_inputs_and_sudo_mode()
      prepare_instance_root_and_secret_contract()
      start_or_update_single_tenant_instance()
      wait_until_agent_card_and_runtime_ready()
      emit_machine_readable_result(instance_url, agent_card_url, logs_dir)
      
    • 只有当上述子 issue 收敛后,才应考虑是否需要新增更上层的 control-plane / create-status-delete API;当前阶段不引入新的服务控制面。
  • 🧪 回归测试建议

    • 部署 smoke:
      • deploy_light.sh start -> status -> stop
      • deploy.sh 首次部署、重复部署、卸载回归
    • 契约回归:
      • 缺失 secret / provider 参数组合错误时,返回稳定错误语义
      • readiness 成功后能稳定访问 Agent Card 与 message:send
    • 安全与治理回归:
      • A2A_ENABLE_SESSION_SHELL=false/true 两种配置的行为边界清晰
      • systemd 资源限制与请求体限制生效且不影响正常调用
    • 文档回归:
      • README / deploy 文档中的路径、命令与脚本实际行为一致

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions