diff --git a/backend/packages/harness/deerflow/config/token_usage_config.py b/backend/packages/harness/deerflow/config/token_usage_config.py index ab1e26294..e4b63105d 100644 --- a/backend/packages/harness/deerflow/config/token_usage_config.py +++ b/backend/packages/harness/deerflow/config/token_usage_config.py @@ -4,4 +4,4 @@ from pydantic import BaseModel, Field class TokenUsageConfig(BaseModel): """Configuration for token usage tracking.""" - enabled: bool = Field(default=False, description="Enable token usage tracking middleware") + enabled: bool = Field(default=True, description="Enable token usage tracking middleware") diff --git a/backend/tests/test_setup_wizard.py b/backend/tests/test_setup_wizard.py index c35b575e0..7456811c3 100644 --- a/backend/tests/test_setup_wizard.py +++ b/backend/tests/test_setup_wizard.py @@ -313,7 +313,7 @@ class TestWriteConfigYaml: { "config_version": 5, "log_level": "info", - "token_usage": {"enabled": False}, + "token_usage": {"enabled": True}, "tool_groups": [{"name": "web"}, {"name": "file:read"}, {"name": "file:write"}, {"name": "bash"}], "tools": [ { @@ -361,7 +361,7 @@ class TestWriteConfigYaml: data = yaml.safe_load(f) assert data["log_level"] == "info" - assert data["token_usage"]["enabled"] is False + assert data["token_usage"]["enabled"] is True assert data["tool_groups"][0]["name"] == "web" assert data["summarization"]["max_tokens"] == 2048 assert any(tool["name"] == "image_search" and tool["max_results"] == 5 for tool in data["tools"]) diff --git a/backend/tests/test_token_usage_config.py b/backend/tests/test_token_usage_config.py new file mode 100644 index 000000000..b3c3fe260 --- /dev/null +++ b/backend/tests/test_token_usage_config.py @@ -0,0 +1,5 @@ +from deerflow.config.token_usage_config import TokenUsageConfig + + +def test_token_usage_enabled_by_default(): + assert TokenUsageConfig().enabled is True diff --git a/config.example.yaml b/config.example.yaml index 6f3fb1483..96c13da91 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -30,7 +30,7 @@ log_level: info # When enabled, DeerFlow records input/output/total tokens per model call # and shows usage metadata in the workspace UI when providers return it. token_usage: - enabled: false + enabled: true # ============================================================================ # Models Configuration diff --git a/frontend/src/content/en/harness/middlewares.mdx b/frontend/src/content/en/harness/middlewares.mdx index 70c499925..72195664d 100644 --- a/frontend/src/content/en/harness/middlewares.mdx +++ b/frontend/src/content/en/harness/middlewares.mdx @@ -110,7 +110,7 @@ Tracks LLM token consumption per model call and logs it at the `info` level. Use ```yaml token_usage: - enabled: false + enabled: true ``` --- diff --git a/frontend/src/content/zh/harness/middlewares.mdx b/frontend/src/content/zh/harness/middlewares.mdx index abdcfb3fe..051729b94 100644 --- a/frontend/src/content/zh/harness/middlewares.mdx +++ b/frontend/src/content/zh/harness/middlewares.mdx @@ -110,7 +110,7 @@ title: ```yaml token_usage: - enabled: false + enabled: true ``` --- diff --git a/frontend/tests/unit/core/settings/local.test.ts b/frontend/tests/unit/core/settings/local.test.ts new file mode 100644 index 000000000..da9f9f8dc --- /dev/null +++ b/frontend/tests/unit/core/settings/local.test.ts @@ -0,0 +1,10 @@ +import { expect, test } from "vitest"; + +import { DEFAULT_LOCAL_SETTINGS } from "@/core/settings/local"; + +test("defaults token usage to header total plus per-turn breakdown", () => { + expect(DEFAULT_LOCAL_SETTINGS.tokenUsage).toEqual({ + headerTotal: true, + inlineMode: "per_turn", + }); +});