# Implementation Plan: Zhipu AI (GLM) Provider Integration ## Phase 1: Core Client Implementation - [ ] Task: Define Zhipu AI state and initialize client in `src/ai_client.py`. - [ ] Import `zhipuai` (ensure it's added to `requirements.txt` if missing). - [ ] Add `_zhipu_client` and `_zhipu_history` module-level variables. - [ ] Implement `_classify_zhipu_error(exc)` for structured error mapping. - [ ] Task: Implement `_send_zhipu` tool-call loop. - [ ] Implement function/tool definition conversion to Zhipu format. - [ ] Implement the core chat completion API call with streaming support. - [ ] Implement tool result packaging and the recursion loop (up to `MAX_TOOL_ROUNDS`). - [ ] Integrate `_reread_file_items` for context refresh after tool rounds. - [ ] Task: Implement Multi-modal (Vision) support. - [ ] Add logic to `_send_zhipu` to process `screenshot` inputs for `glm-4v` by encoding them as base64. - [ ] Task: Implement model discovery. - [ ] Implement `_list_zhipu_models()` using the Zhipu AI models list API. - [ ] Task: Update `ai_client.py` utility functions. - [ ] Update `send()` dispatcher to route to `_send_zhipu`. - [ ] Update `reset_session()` to clear `_zhipu_history`. - [ ] Task: Conductor - User Manual Verification 'Phase 1: Core Client Implementation' (Protocol in workflow.md) ## Phase 2: Configuration & Credentials - [ ] Task: Update credential loading in `src/ai_client.py`. - [ ] Update `_load_credentials()` to include `z_ai` in the error message and loading logic. - [ ] Task: Add cost tracking for Zhipu models in `src/cost_tracker.py`. - [ ] Add regex patterns and rates for `glm-4` and `glm-4-flash` to `MODEL_PRICING`. - [ ] Task: Verify that `credentials.toml` works with the new provider section. - [ ] Task: Conductor - User Manual Verification 'Phase 2: Configuration & Credentials' (Protocol in workflow.md) ## Phase 3: GUI & Controller Integration - [ ] Task: Register `z_ai` as a provider. - [ ] Add `z_ai` to `PROVIDERS` in `src/gui_2.py`. - [ ] Add `z_ai` to `PROVIDERS` in `src/app_controller.py`. - [ ] Task: Ensure model fetching works in the GUI. - [ ] Verify that clicking "Fetch Models" in the AI Settings panel correctly populates Zhipu models when the provider is selected. - [ ] Task: Conductor - User Manual Verification 'Phase 3: GUI & Controller Integration' (Protocol in workflow.md) ## Phase 4: MMA Integration & Final Verification - [ ] Task: Verify MMA compatibility. - [ ] Test a simple multi-agent workflow where a Tier 3 worker is configured to use `glm-4-flash`. - [ ] Verify that tool calls, history, and context injection work as expected within the tiered architecture. - [ ] Task: Run full regression suite. - [ ] Ensure adding Zhipu hasn't introduced side effects for existing providers. - [ ] Task: Conductor - User Manual Verification 'Phase 4: MMA Integration & Final Verification' (Protocol in workflow.md)