Skip to content

[P1.5-S3-ARI-22] llm.provider config field + DI layer routing #56

@bjridicodes

Description

@bjridicodes

Ticket: P1.5-S3-06

Type: Feature | Est: 0.5d

Goal: Operators switch LLM provider by changing one line in conf.yaml — zero code changes needed to deploy ARIA with Vertex AI instead of Claude Code.

Scope:

  • core/config.py: llm_provider() -> str reads llm.provider from conf (values: claude_code, anthropic, vertex_ai; default: claude_code)
  • api/dependencies.py: new get_llm_client(agent_num: str) -> LLMClientInterface factory function:
    • claude_codeClaudeCodeLLMClient(model=resolve_model(agent_num))
    • anthropicAnthropicLLMClient(model=resolve_model(agent_num)) (requires ANTHROPIC_API_KEY)
    • vertex_aiVertexAILLMClient(model=resolve_model(agent_num), project_id=gcp_project_id(), location=gcp_region())
    • Unknown value → ValueError at startup with clear message
  • Replace direct LLMClient(model=...) construction in get_agent1(), get_agent3(), get_agent4(), get_pipeline() with get_llm_client(agent_num)

Acceptance criteria:

  • llm.provider: vertex_ai routes all agent LLM calls to VertexAILLMClient
  • llm.provider: anthropic routes to AnthropicLLMClient
  • llm.provider: claude_code (or unset) routes to ClaudeCodeLLMClient
  • Unsupported provider value raises ValueError at startup with clear message naming the valid options

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1.5-S3S3: Docker + Config + LLM PortabilityfeatureNew capability or user-facing functionalityphase-1.5All Phase 1.5 issues

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions