Skip to content

Commit daaa063

Browse files
author
Dwi Fahni Denni
committed
feat: Update models from claude-sonet-4-5 to claude-sonet-4-6 and from glm-5.1 to glm-5.2
1 parent b639d3c commit daaa063

41 files changed

Lines changed: 1412 additions & 114 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ TELEMETRYFLOW_DEFAULT_PROVIDER_ID=
7272
# TelemetryFlow stores its own provider keys via EncryptionService (AES-256-GCM).
7373
#
7474
# Agent model assignments:
75-
# Triage → zhipu/glm-5.1 (cost-efficient)
75+
# Triage → zhipu/glm-5.2 (cost-efficient)
7676
# Investigator → anthropic/claude-sonnet-4-5 (complex reasoning)
77-
# Reviewer → zhipu/glm-5.1 (cost-efficient)
78-
# Remediator → zhipu/glm-5.1 (cost-efficient)
77+
# Reviewer → zhipu/glm-5.2 (cost-efficient)
78+
# Remediator → zhipu/glm-5.2 (cost-efficient)
7979
# ================================================================
8080

8181
# Anthropic — recommended for Investigator (complex reasoning)

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# TelemetryFlow Hermes - CI Workflow
33
# =============================================================================
44
#
5-
# TelemetryFlow Hermes - Community Enterprise Observability Platform (CEOP)
5+
# TelemetryFlow Hermes - AI-Powered Observability & Incident Response Management (IRM) Platform
66
# Copyright (c) 2024-2026 Telemetri Data Indonesia. All rights reserved.
77
#
88
# This workflow runs tests and linting for TelemetryFlow Hermes:

.github/workflows/docker.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# TelemetryFlow Hermes - Docker Image Builder Workflow
33
# =============================================================================
44
#
5-
# TelemetryFlow Hermes - Community Enterprise Observability Platform (CEOP)
5+
# TelemetryFlow Hermes - AI-Powered Observability & Incident Response Management (IRM) Platform
66
# Copyright (c) 2024-2026 Telemetri Data Indonesia. All rights reserved.
77
#
88
# This workflow builds and publishes Docker images for TelemetryFlow Hermes:

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# TelemetryFlow Hermes - Release Workflow
33
# =============================================================================
44
#
5-
# TelemetryFlow Hermes - Community Enterprise Observability Platform (CEOP)
5+
# TelemetryFlow Hermes - AI-Powered Observability & Incident Response Management (IRM) Platform
66
# Copyright (c) 2024-2026 Telemetri Data Indonesia. All rights reserved.
77
#
88
# This workflow builds and releases TelemetryFlow Hermes:

.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# TelemetryFlow Hermes - GitLab CI/CD Pipeline
33
# =============================================================================
44
#
5-
# TelemetryFlow Hermes - Community Enterprise Observability Platform (CEOP)
5+
# TelemetryFlow Hermes - AI-Powered Observability & Incident Response Management (IRM) Platform
66
# Copyright (c) 2024-2026 Telemetri Data Indonesia. All rights reserved.
77
#
88
# Stages: lint → test → security → coverage → release

.kiro/specs/hermes-llm-provider-integration/design.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ graph TB
1919
CONFIG["config.yaml<br/>(global default model/provider)"]
2020
DOTENV[".env<br/>(forwarded environment variables)"]
2121
subgraph Profiles["profiles/"]
22-
TRIAGE["triage/config.yaml<br/>glm-5.1 / zhipu"]
22+
TRIAGE["triage/config.yaml<br/>glm-5.2 / zhipu"]
2323
INVESTIGATOR["investigator/config.yaml<br/>claude-sonnet-4-5 / anthropic"]
24-
REVIEWER["reviewer/config.yaml<br/>glm-5.1 / zhipu"]
25-
REMEDIATOR["remediator/config.yaml<br/>glm-5.1 / zhipu"]
24+
REVIEWER["reviewer/config.yaml<br/>glm-5.2 / zhipu"]
25+
REMEDIATOR["remediator/config.yaml<br/>glm-5.2 / zhipu"]
2626
end
2727
subgraph Plugins["plugins/telemetryflow/tools/"]
2828
SHARED["_shared.py<br/>(PROVIDER_TYPES, tfo_request)"]
@@ -197,11 +197,11 @@ def parse_model_env(raw):
197197

198198
| Input | Model | Provider |
199199
| ----------------------------- | ------------------- | ----------------------- |
200-
| `zhipu/glm-5.1` | `glm-5.1` | `opencode-go` |
200+
| `zhipu/glm-5.2` | `glm-5.2` | `opencode-go` |
201201
| `anthropic/claude-sonnet-4-5` | `claude-sonnet-4-5` | `anthropic` |
202202
| `openai/gpt-4o` | `gpt-4o` | `openai` |
203203
| `ollama/llama3.3:70b` | `llama3.3:70b` | `ollama` |
204-
| `glm-5.1` | `glm-5.1` | `opencode-go` (default) |
204+
| `glm-5.2` | `glm-5.2` | `opencode-go` (default) |
205205

206206
### Config Template Substitution
207207

@@ -226,13 +226,13 @@ model:
226226
### Substitution Flow per Profile
227227
228228
```
229-
HERMES_MODEL=zhipu/glm-5.1
229+
HERMES_MODEL=zhipu/glm-5.2
230230
HERMES_INVESTIGATOR_MODEL=anthropic/claude-sonnet-4-5
231231

232-
triage → write_profile_config("triage", "glm-5.1", "opencode-go")
232+
triage → write_profile_config("triage", "glm-5.2", "opencode-go")
233233
investigator → write_profile_config("investigator", "claude-sonnet-4-5", "anthropic")
234-
reviewer → write_profile_config("reviewer", "glm-5.1", "opencode-go")
235-
remediator → write_profile_config("remediator", "glm-5.1", "opencode-go")
234+
reviewer → write_profile_config("reviewer", "glm-5.2", "opencode-go")
235+
remediator → write_profile_config("remediator", "glm-5.2", "opencode-go")
236236
```
237237

238238
---
@@ -331,7 +331,7 @@ def write_hermes_env():
331331
| ------------------- | ------------- | --------------------------------------------------- |
332332
| `timestamp` | DateTime64(3) | Request timestamp |
333333
| `provider_type` | String | Provider identifier (anthropic, openai, etc.) |
334-
| `model_id` | String | Model identifier (claude-sonnet-4-5, glm-5.1, etc.) |
334+
| `model_id` | String | Model identifier (claude-sonnet-4-5, glm-5.2, etc.) |
335335
| `context_type` | String | Context category (metrics, logs, traces, etc.) |
336336
| `user_id` | String | Requesting user ID |
337337
| `prompt_tokens` | UInt64 | Tokens in the prompt |

.kiro/specs/hermes-llm-provider-integration/requirements.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,16 @@ Each agent profile shall be independently configurable with its own model and pr
5252

5353
| Agent Profile | Default Model | Provider | Env Var Override |
5454
| ------------- | ------------------- | --------------------- | --------------------------- |
55-
| Triage | `glm-5.1` | `zhipu` (OpenCode Go) | `HERMES_MODEL` |
55+
| Triage | `glm-5.2` | `zhipu` (OpenCode Go) | `HERMES_MODEL` |
5656
| Investigator | `claude-sonnet-4-5` | `anthropic` | `HERMES_INVESTIGATOR_MODEL` |
57-
| Reviewer | `glm-5.1` | `zhipu` (OpenCode Go) | `HERMES_MODEL` |
58-
| Remediator | `glm-5.1` | `zhipu` (OpenCode Go) | `HERMES_MODEL` |
57+
| Reviewer | `glm-5.2` | `zhipu` (OpenCode Go) | `HERMES_MODEL` |
58+
| Remediator | `glm-5.2` | `zhipu` (OpenCode Go) | `HERMES_MODEL` |
5959

60-
**Model Selection Format**: `provider/model-name` (e.g., `anthropic/claude-sonnet-4-5`, `zhipu/glm-5.1`). If no provider prefix, defaults to `zhipu`.
60+
**Model Selection Format**: `provider/model-name` (e.g., `anthropic/claude-sonnet-4-5`, `zhipu/glm-5.2`). If no provider prefix, defaults to `zhipu`.
6161

6262
**Acceptance Criteria**:
6363

64-
- `docker-entrypoint.py` reads `HERMES_MODEL` (default: `zhipu/glm-5.1`) for Triage/Reviewer/Remediator profiles.
64+
- `docker-entrypoint.py` reads `HERMES_MODEL` (default: `zhipu/glm-5.2`) for Triage/Reviewer/Remediator profiles.
6565
- `docker-entrypoint.py` reads `HERMES_INVESTIGATOR_MODEL` (default: `anthropic/claude-sonnet-4-5`) for the Investigator profile.
6666
- `parse_model_env()` parses `provider/model` format, defaulting to `zhipu` if no prefix.
6767
- `write_profile_config()` substitutes `default:` and `provider:` fields in each profile's `config.yaml`.
@@ -246,10 +246,10 @@ The Docker entrypoint shall dynamically substitute model and provider configurat
246246

247247
**Acceptance Criteria**:
248248

249-
- Container startup prints resolved model assignments: `[hermes] Default model: glm-5.1 via opencode-go`.
249+
- Container startup prints resolved model assignments: `[hermes] Default model: glm-5.2 via opencode-go`.
250250
- Investigator profile uses `HERMES_INVESTIGATOR_MODEL` independently from other profiles.
251251
- Profiles without explicit model overrides use `HERMES_MODEL`.
252-
- If `HERMES_MODEL` is not set, defaults to `zhipu/glm-5.1`.
252+
- If `HERMES_MODEL` is not set, defaults to `zhipu/glm-5.2`.
253253
- If `HERMES_INVESTIGATOR_MODEL` is not set, defaults to `anthropic/claude-sonnet-4-5`.
254254
- The `--check` flag validates environment variables without starting the agent.
255255

@@ -331,7 +331,7 @@ The Docker Compose configuration shall support multi-provider deployment with al
331331

332332
**Acceptance Criteria**:
333333

334-
- `docker-compose.yaml` passes `HERMES_MODEL` (default: `zhipu/glm-5.1`) and `HERMES_INVESTIGATOR_MODEL` (default: `anthropic/claude-sonnet-4-5`).
334+
- `docker-compose.yaml` passes `HERMES_MODEL` (default: `zhipu/glm-5.2`) and `HERMES_INVESTIGATOR_MODEL` (default: `anthropic/claude-sonnet-4-5`).
335335
- All 11 provider API key environment variables are passed with defaults to empty strings.
336336
- `LLM_ENCRYPTION_KEY` is passed to the backend service.
337337
- `TELEMETRYFLOW_DEFAULT_PROVIDER_ID` is supported via `.env` file.

.kiro/specs/hermes-llm-provider-integration/tasks.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ This plan covers the integration of multi-provider LLM support into Hermes acros
3636
- [*] 5. Test parse_model_env() All Cases
3737
- Source: `docker-entrypoint.py`
3838
- Verify `parse_model_env()` handles all input formats
39-
- Test cases: `zhipu/glm-5.1``("glm-5.1", "opencode-go")`, `anthropic/claude-sonnet-4-5``("claude-sonnet-4-5", "anthropic")`, `ollama/llama3.3:70b``("llama3.3:70b", "ollama")`, `glm-5.1``("glm-5.1", "opencode-go")` (default), `unknown/model``("model", "unknown")` (pass-through)
39+
- Test cases: `zhipu/glm-5.2``("glm-5.2", "opencode-go")`, `anthropic/claude-sonnet-4-5``("claude-sonnet-4-5", "anthropic")`, `ollama/llama3.3:70b``("llama3.3:70b", "ollama")`, `glm-5.2``("glm-5.2", "opencode-go")` (default), `unknown/model``("model", "unknown")` (pass-through)
4040
- _Requirements: REQ-002, REQ-008_
4141

4242
- [*] 6. Test write_profile_config() Substitution
@@ -48,7 +48,7 @@ This plan covers the integration of multi-provider LLM support into Hermes acros
4848
- [*] 7. Test Profile Model Assignment Flow
4949
- Source: `docker-entrypoint.py:configure()`
5050
- Verify the full configuration flow
51-
- Default model from `HERMES_MODEL` (default: `zhipu/glm-5.1`), Investigator model from `HERMES_INVESTIGATOR_MODEL` (default: `anthropic/claude-sonnet-4-5`)
51+
- Default model from `HERMES_MODEL` (default: `zhipu/glm-5.2`), Investigator model from `HERMES_INVESTIGATOR_MODEL` (default: `anthropic/claude-sonnet-4-5`)
5252
- Triage/Reviewer/Remediator use default model, Investigator uses its own model, all 4 profile config.yaml files are generated
5353
- _Requirements: REQ-002_
5454

.kiro/specs/hermes-multi-agent-incident-response/design.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ graph TB
1919
subgraph Hermes Pipeline
2020
ALERT[Alert Fired]
2121
HOOK1[on-alert-fired.sh]
22-
TRIAGE[Triage Agent<br/>glm-5.1 / 30 turns<br/>readonly]
22+
TRIAGE[Triage Agent<br/>glm-5.2 / 30 turns<br/>readonly]
2323
HOOK2[pre-investigation.sh]
24-
INVEST[Investigator Agent<br/>claude-sonnet-4-5 / 45 turns<br/>readonly]
25-
REVIEW[Reviewer Agent<br/>glm-5.1 / 20 turns<br/>readonly]
26-
REMED[Remediator Agent<br/>glm-5.1 / 15 turns<br/>require_approval]
24+
INVEST[Investigator Agent<br/>claude-sonnet-4-6 / 45 turns<br/>readonly]
25+
REVIEW[Reviewer Agent<br/>glm-5.2 / 20 turns<br/>readonly]
26+
REMED[Remediator Agent<br/>glm-5.2 / 15 turns<br/>require_approval]
2727
HOOK3[post-remediation.sh]
2828
end
2929
@@ -201,7 +201,7 @@ profiles/{agent_name}/
201201

202202
```yaml
203203
model:
204-
default: "glm-5.1"
204+
default: "glm-5.2"
205205
provider: "opencode-go"
206206

207207
agent:
@@ -254,7 +254,7 @@ readonly: true
254254

255255
```yaml
256256
model:
257-
default: "claude-sonnet-4-5"
257+
default: "claude-sonnet-4-6"
258258
provider: "anthropic"
259259
260260
agent:
@@ -307,7 +307,7 @@ readonly: true
307307

308308
```yaml
309309
model:
310-
default: "glm-5.1"
310+
default: "glm-5.2"
311311
provider: "opencode-go"
312312
313313
agent:
@@ -359,7 +359,7 @@ readonly: true
359359

360360
```yaml
361361
model:
362-
default: "glm-5.1"
362+
default: "glm-5.2"
363363
provider: "opencode-go"
364364
365365
agent:
@@ -600,7 +600,7 @@ fi
600600
```yaml
601601
# profiles/{agent}/config.yaml
602602
model:
603-
default: string # Model identifier (e.g., "glm-5.1", "claude-sonnet-4-5")
603+
default: string # Model identifier (e.g., "glm-5.2", "claude-sonnet-4-6")
604604
provider: string # Provider name (e.g., "opencode-go", "anthropic")
605605
606606
agent:

.kiro/specs/hermes-multi-agent-incident-response/requirements.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ Alert → on-alert-fired.sh → Triage → Investigator → Reviewer → Remedia
3737

3838
| Term | Definition |
3939
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
40-
| **Triage_Agent** | The first agent in the pipeline (glm-5.1, max_turns=30, readonly). Classifies alerts as CRITICAL, KNOWN, NOISE, or INCOMPLETE. Paranoid gatekeeper personality. |
41-
| **Investigator_Agent** | The second agent in the pipeline (claude-sonnet-4-5, max_turns=45, readonly). Gathers evidence from 20 ClickHouse tables across 4 telemetry signals. Hostile scientist personality. |
42-
| **Reviewer_Agent** | The third agent in the pipeline (glm-5.1, max_turns=20, readonly). Independently challenges investigations for bias and falsifies hypotheses. Professional skeptic personality. |
43-
| **Remediator_Agent** | The fourth and final agent in the pipeline (glm-5.1, max_turns=15, require_approval=true). Proposes fixes requiring human approval via Telegram. Cautious pragmatist personality. |
40+
| **Triage_Agent** | The first agent in the pipeline (glm-5.2, max_turns=30, readonly). Classifies alerts as CRITICAL, KNOWN, NOISE, or INCOMPLETE. Paranoid gatekeeper personality. |
41+
| **Investigator_Agent** | The second agent in the pipeline (claude-sonnet-4-6, max_turns=45, readonly). Gathers evidence from 20 ClickHouse tables across 4 telemetry signals. Hostile scientist personality. |
42+
| **Reviewer_Agent** | The third agent in the pipeline (glm-5.2, max_turns=20, readonly). Independently challenges investigations for bias and falsifies hypotheses. Professional skeptic personality. |
43+
| **Remediator_Agent** | The fourth and final agent in the pipeline (glm-5.2, max_turns=15, require_approval=true). Proposes fixes requiring human approval via Telegram. Cautious pragmatist personality. |
4444
| **Incident_Context** | The structured data payload passed between agents during pipeline execution. Contains alert_id, classification, evidence, hypotheses, and verdicts. |
4545
| **Alert_Classification** | One of four discrete labels assigned by Triage: CRITICAL (genuine anomaly), KNOWN (matches verified pattern), NOISE (below threshold/duplicate), INCOMPLETE (insufficient data). |
4646
| **SOUL_File** | A markdown file (SOUL.md) in each agent's profile directory that defines the agent's personality, behavioral rules, zero-hallucination policy, hard limits, and inter-agent communication protocol. |
@@ -385,10 +385,10 @@ Alert → on-alert-fired.sh → Triage → Investigator → Reviewer → Remedia
385385
**WHEN** an agent profile is configured
386386
**THEN** the profile SHALL be located at `profiles/{agent_name}/config.yaml`
387387
**AND** the config SHALL specify: model (default + provider), agent (max_turns), terminal (backend + timeout), delegation (max_iterations + max_concurrent_children), tools (terminal, web, delegation), gateway (type + credentials), allowed_clickhouse_tables, readonly flag
388-
**AND** the Triage Agent SHALL use glm-5.1 via opencode-go, max_turns=30, timeout=120s, readonly=true
389-
**AND** the Investigator SHALL use claude-sonnet-4-5 via anthropic, max_turns=45, timeout=300s, readonly=true
390-
**AND** the Reviewer SHALL use glm-5.1 via opencode-go, max_turns=20, timeout=180s, readonly=true
391-
**AND** the Remediator SHALL use glm-5.1 via opencode-go, max_turns=15, timeout=180s, readonly=false, require_approval=true, approval_timeout_seconds=600, auto_escalate_on_timeout=true
388+
**AND** the Triage Agent SHALL use glm-5.2 via opencode-go, max_turns=30, timeout=120s, readonly=true
389+
**AND** the Investigator SHALL use claude-sonnet-4-6 via anthropic, max_turns=45, timeout=300s, readonly=true
390+
**AND** the Reviewer SHALL use glm-5.2 via opencode-go, max_turns=20, timeout=180s, readonly=true
391+
**AND** the Remediator SHALL use glm-5.2 via opencode-go, max_turns=15, timeout=180s, readonly=false, require_approval=true, approval_timeout_seconds=600, auto_escalate_on_timeout=true
392392
**AND** all agents SHALL have access to the same 20 ClickHouse tables
393393
**AND** only the Remediator SHALL have readonly=false
394394

0 commit comments

Comments
 (0)