Tool-call arguments drop CJK content (whitespace-only JSON) β€” separate from #9

#16
by umyunsang - opened

Dear LG AI Research team,

Thank you sincerely for releasing K-EXAONE-236B-A23B. We are a small student research project (KOSMOS, Apache-2.0) building a conversational orchestrator over Korean public-data APIs, and K-EXAONE is at the heart of it. We are deeply grateful for the model, the open license, and for the earlier guidance from @nuxlear in discussion #9 β€” that clarification unblocked our initial integration.

We have encountered a separate issue that we would like to respectfully report, in case it is useful to the team. We are not certain whether the root cause lies in the model, the chat template, or the inference provider's decoder, so we are reporting it here and also to FriendliAI.

What we observe

When the model is called through an OpenAI-compatible endpoint with tools and tool_choice properly supplied (exactly as recommended in discussion #9), and the intended tool-argument value is a CJK (Korean) string, the returned tool_calls[0].function.arguments contains only whitespace and newline characters in place of the value. The model's reasoning stream clearly contains the correct Korean string just before emitting the tool call.

Minimal reproduction

  • Model: LGAI-EXAONE/K-EXAONE-236B-A23B
  • Inference: FriendliAI Serverless OpenAI-compatible API, /v1/chat/completions
  • Streaming and non-streaming return byte-identical broken output.

Outbound tool schema (OpenAI function-calling form):

{
  "type": "function",
  "function": {
    "name": "address_to_region",
    "parameters": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "description": "Full Korean administrative address; do not infer or leave blank.",
          "examples": ["강남역", "μ„œμšΈμ‹œ 강남ꡬ 역삼동"],
          "minLength": 1
        }
      },
      "required": ["address"]
    }
  }
}

User message (Korean): "강남역이 μ–΄λŠ μ‹œ/도에 μ†ν•˜λŠ”μ§€ μ•Œλ €μ£Όμ„Έμš”."

Reasoning stream (CJK present, correct):

… μ‚¬μš©μžκ°€ "강남역"에 λŒ€ν•΄ λ¬Όμ—ˆμœΌλ―€λ‘œ address ν•„λ“œμ— "강남역"을 λ„£μ–΄ ν˜ΈμΆœν•œλ‹€ …

Tool-call arguments delta sequence:

"" β†’ "{\"" β†’ "address" β†’ "\":" β†’ "  " β†’ "\n" β†’ "}"

Assembled arguments:

{"address":  \n}

(two spaces and a newline β€” the CJK value is absent.)

Expected behaviour

{"address": "강남역"}

What works vs. what fails

  • ASCII argument values (e.g. {"city": "Seoul"}) are returned correctly.
  • CJK argument values are consistently replaced by whitespace/newline, across streaming and non-streaming.
  • The same prompt through the same model on a different provider (if any of you can test locally with vllm --tool-call-parser hermes or the native <|tool_call|> template) would help confirm whether this is upstream in the model/template or downstream in the provider decoder. We do not currently have GPUs capable of running 236B-A23B locally to verify.

Respectful ask

If the team has any insight into:

  1. Whether the <|tool_call|> / <|tool_declare|> chat template escapes or handles CJK inside argument values differently from English, or
  2. Whether this matches a known provider-side issue you have seen,

any guidance would be invaluable. We are very happy to run any additional repros you suggest.

We are also filing this with FriendliAI in parallel (since we cannot tell whether it is their decoder or the model); we will link back here if they respond.

Thank you again for your time and for the wonderful model. μ§„μ‹¬μœΌλ‘œ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

β€” KOSMOS project team (학생 연ꡬ ν”„λ‘œμ νŠΈ)

Retraction: After further reflection I realize I cannot reliably distinguish β€” from the client-observable symptom alone β€” whether the CJK tool-argument loss originates in (a) the model's native tool_call path, (b) the provider's streaming decoder, (c) the chat-template CJK handling, or (d) a BPE split boundary. Without the ability to re-test the same checkpoint on a second inference stack (e.g. vLLM with --tool-call-parser hermes), I should not have filed this against the model card. I am closing this discussion to avoid consuming the team's time on an under-evidenced report. Thank you very much for your patience, and my sincere apologies for the noise.

Closing β€” retraction posted above.

umyunsang changed discussion status to closed

Sign up or log in to comment