RE:CZ

Analysis and Improvement Plan for Agent Performance in Translation Tasks

AI Software Engineering

👤 AI developers, natural language processing researchers, technical personnel interested in Agent and LLM technologies
This article analyzes why Agents underperform compared to one-shot LLMs in translation tasks, including issues such as high token usage, decreased translation quality, and YAML Frontmatter format errors. The author argues that Agent design is better suited for multi-step reasoning and decision-making tasks, and their context management strategies prevent effective utilization of information for translation. The article also mentions that Agents may enter infinite loops when translating low-resource languages. To address these problems, the author proposes two improvement plans: using an Agents/Sub-Agents framework to decompose translation tasks or assembling low-level one-shot LLM APIs via Skills. The author prefers the first approach and discusses OpenCode's support for complex Agent calls. Finally, the article reviews the update logs for CZON versions 0.5.0 to 0.5.2, including integration with OpenCode, network issue fixes, and rollback of Agent translation features.
  • ✨ Agents underperform compared to one-shot LLMs in translation tasks
  • ✨ Agents use 10 times more tokens than LLMs
  • ✨ Translation quality decreases, with YAML Frontmatter format errors
  • ✨ Agent design is better suited for multi-step reasoning and decision-making tasks
  • ✨ Context management strategies prevent effective utilization of information
📅 2026-01-23 · 424 words · ~2 min read
  • Agent
  • translation task
  • LLM
  • OpenCode
  • CZON
  • performance analysis
  • improvement plan

It is now January 23, 2026, early morning.

Regrettably, I found that the Agent performed worse than a one-shot LLM in translation tasks. It seems the Agent's strengths lie more in tasks requiring multi-step reasoning and decision-making, rather than simple single-step tasks. The Agent used 10 times the number of tokens compared to the LLM, but the translation quality actually degraded, especially with YAML Frontmatter, where it even introduced formatting errors.

I originally intended to use it to solve the issue of one-shot LLMs exceeding the maximum output length limit in long-text translation tasks, but it appears it's not that simple. Therefore, I rolled back this feature in CZON version 0.5.2 to reconsider the approach.

I believe this might be because Agent scenarios typically involve complex tasks with massive amounts of information, so they are designed to minimize reading and writing to the context. They are also designed to prioritize local file reading and writing to increase the data processing capacity of the Agent. This context management strategy means it doesn't default to incorporating all information, preventing it from fully utilizing contextual information for translation like a one-shot LLM does.

Interestingly, for some low-resource language translation tasks (e.g., Simplified Chinese to Indonesian), the Agent occasionally exhibited a repetitive translation loop, failing to converge to a stable translation result. This might be due to a flaw in the Edit tool when handling certain languages, causing it to fail to correctly replace text and thus fall into an infinite loop. (Being too frugal might also be problematic.)

I thought of two solutions:

  1. Use an Agents / Sub-Agents framework to decompose the translation task, such as a translation-proofreading adversarial generation framework.
  2. Use a Skill to assemble a low-level one-shot LLM API, allowing the Agent to call a translation skill instead of performing the translation itself.

I might prefer the first solution, as its potential seems higher. I'm just not sure about OpenCode's support for complex Agent calls.

Additionally, the CZON changelog:

  • 0.5.0: Integrated OpenCode for translation tasks. (However, it introduced performance issues when translating a large number of files, which were fixed later.)
  • 0.5.1: Fixed the issue where frontend static resources (tailwindcss) failed to load due to inability to access jsdelivr from within China. (Achieved by downloading CDN files locally during the build phase.)
  • 0.5.2: When a slug already exists, it no longer updates the slug to prevent changes in content from altering the slug. (This avoids historical link failures caused by log file renaming); Rolled back the Agent translation feature, removing OpenCode integration for translation tasks.

See Also

Referenced By