Como agentes de longa duração superam a janela de contexto: 3 questões de design do padrão de resumo de transferência + busca em arquivos

Como agentes de longa duração superam a janela de contexto: 3 questões de design do padrão de resumo de transferência + busca em arquivos

Nota do autor: usando o mecanismo de troca de contexto do openJiuwen WorkSwarm como exemplo, este artigo explica o padrão de “resumo de transição + consulta ao histórico arquivado” e apresenta as opções de design e seus compromissos quando agentes de longa duração se aproximam do limite da janela de contexto.

A comunidade de agentes de código aberto openJiuwen, apoiada pela Huawei, lançou recentemente a arquitetura de cluster Hyper-Agent. Um detalhe merece a atenção de quem desenvolve: quando a janela de contexto de um agente se aproxima do limite, ele muda para uma nova janela levando um resumo de transição com o objetivo, o progresso e os próximos passos. Se precisar de detalhes, consulta o histórico arquivado. O mecanismo cabe em uma frase, mas por trás dele está um desafio de engenharia que todos os agentes de longa duração precisam enfrentar.

Isso não é boato. O recurso foi lançado com o openJiuwen WorkSwarm, e seu código está disponível no GitHub como projeto de código aberto sob o nome JiuwenSwarm. Usando esse mecanismo como exemplo, este artigo aborda três questões de design: o que incluir no resumo de transição, quando acionar a troca e quando consultar o histórico arquivado. Também compara os compromissos de duas abordagens: “depender de um contexto maior” e “resumo de transição + consulta”.

Principal benefício: ao terminar a leitura, você poderá avaliar as opções para lidar com o limite da janela de contexto na sua aplicação de agente e os riscos de cada uma.

agent-context-window-handoff-summary-archive-retrieval-pt-pt-image-0


Resumo de transferência + busca no arquivo: visão geral

Vamos primeiro organizar os fatos confirmados pelas fontes e depois entender o que eles significam para desenvolvedores. As informações da tabela vêm de reportagens públicas. Detalhes de implementação não confirmados são identificados separadamente ao longo do texto.

Item Detalhes
Responsável pelo lançamento openJiuwen, comunidade de agentes de código aberto apoiada pela Huawei
O que foi lançado Arquitetura de cluster Hyper-Agent, implementada no openJiuwen WorkSwarm
Código aberto Código disponível no GitHub com o nome JiuwenSwarm
Principal mudança O agente persistente (Persistent Agent) mantém sua identidade e seu estado; as sessões passam a ser recursos de infraestrutura gerenciados pelo sistema
Mecanismo de contexto Quando a janela se aproxima do limite, o sistema muda para uma nova janela, levando um resumo de transferência com “objetivo, progresso e próximo passo”. Quando precisa de detalhes, busca no histórico arquivado
Data das reportagens Início de novembro de 2026

Por que agentes persistentes precisam lidar com o limite da janela de contexto

A ideia por trás do WorkSwarm é desvincular o agente de uma única sessão de chat e mantê-lo ativo por longos períodos como um “funcionário digital” em grupos de trabalho no Feishu, DingTalk e outros aplicativos. Um mesmo agente pode acompanhar várias tarefas em diferentes grupos de terceiros, receber uma solicitação em um canal e entregar o resultado em outro. O sistema usa um gateway para conectar aplicativos de mensagens instantâneas e a interface web, enquanto o AgentServer gerencia os agentes e as sessões de trabalho.

Nesse cenário, atingir o limite da janela de contexto deixa de ser um problema ocasional e passa a ser inevitável. Um chatbot que responde a perguntas isoladas raramente preenche toda a janela, mas um agente que acompanha um projeto por dias acumula conversas, resultados de chamadas de ferramentas e conteúdo de arquivos. As reportagens também mencionam que o painel de atividades do WorkSwarm mostra o uso de tokens de cada agente, indicando que o consumo de contexto é uma métrica operacional que esses sistemas precisam monitorar continuamente.

Sessões como recursos: a base do resumo de transferência

Para entender o mecanismo de resumo de transferência, é importante notar que o WorkSwarm separa “agente” de “sessão”. A identidade e o estado do agente persistem, enquanto a sessão é apenas um recurso que o sistema pode alocar, gerenciar de forma concorrente e retomar com seu contexto. Como uma sessão pode ser substituída, “abrir uma nova janela quando a atual estiver cheia” se torna uma escolha natural de projeto.

O resumo de transferência leva entre a sessão antiga e a nova o estado de trabalho mínimo, mas suficiente, para continuar. Já o histórico arquivado garante que os detalhes da sessão anterior não sejam perdidos: eles deixam de estar “sempre presentes” e passam a ser “consultados sob demanda”.

agent-context-window-handoff-summary-archive-retrieval-pt-pt-image-1


Primeira questão no design do resumo de transição: o que incluir

A reportagem apresenta três elementos: objetivo, progresso e próximos passos. A estrutura é simples, mas cada item precisa ser detalhado para funcionar na prática. A tabela abaixo amplia esses três elementos como referência de design. São recomendações de engenharia, não uma implementação confirmada do JiuwenSwarm.

Campo Conteúdo recomendado Risco de omissão
Objetivo Descrição original da tarefa, requisitos de entrega, solicitante e canal de entrega A nova janela se afasta dos requisitos originais ou entrega no grupo ou formato errado
Progresso Subtarefas concluídas, decisões importantes tomadas e seus motivos Retrabalho ou reversão de um plano já aprovado
Próximos passos Pendências, obstáculos e respostas externas aguardadas A tarefa fica parada e o agente não sabe por onde continuar
Restrições (complemento) O que o usuário proibiu expressamente, escopo das permissões e preferências de formato Desrespeito às preferências já expressas pelo usuário, prejudicando a experiência
Índice (complemento) Localização ou palavras-chave das informações importantes no arquivo Quando os detalhes são necessários, não é possível encontrá-los, tornando o arquivo inútil

“Restrições” e “índice” são dois itens que acrescentamos. As restrições são importantes porque as preferências expressas pelo usuário ao longo de uma conversa extensa, como “o relatório não deve passar de uma página”, são especialmente fáceis de perder durante a compressão do resumo. Já o índice faz a ponte entre o resumo de transição e a busca no arquivo: quanto mais curto o resumo, mais importante é indicar à nova janela onde encontrar os detalhes.

No cenário do WorkSwarm, também é preciso considerar a complexidade de trabalhar com vários grupos e canais. A reportagem menciona que o compartilhamento entre grupos exige aprovação do usuário, que pode conceder permissão pontual ou permanente e também revogá-la. Se o estado dessas autorizações não estiver no resumo de transição, o agente na nova janela poderá interpretar as permissões incorretamente. Esse tipo de informação é mais adequado a campos estruturados do que a texto livre.


Segunda questão no design do resumo de transição: quando trocar de contexto

A reportagem informa apenas que a troca acontece “quando o limite está próximo”. As fontes públicas ainda não revelam o limite exato nem se o resumo é gerado pelo modelo ou por regras. Para confirmar esses detalhes, seria necessário consultar o código-fonte ou a documentação do JiuwenSwarm. Do ponto de vista de engenharia, há algumas opções comuns para definir o momento da troca.

Estratégia de acionamento Como funciona Vantagens Riscos
Limite percentual fixo A troca ocorre quando o uso de tokens atinge uma determinada porcentagem da janela Implementação simples e comportamento previsível A troca pode acontecer no meio de uma etapa crítica da tarefa
Limite com espaço reservado A troca ocorre quando o espaço restante não é suficiente para a próxima entrada e para a geração do resumo Garante espaço suficiente para gerar o resumo Exige estimar o tamanho da próxima entrada
Acionamento no limite da tarefa A troca ocorre em pausas naturais, como a conclusão de uma subtarefa ou a espera por uma resposta do usuário Resumo mais completo e menor custo de troca Uma pausa pode não ocorrer antes de a janela ficar cheia
Estratégia híbrida Prioriza a troca nos limites das tarefas, mas força a troca quando um limite rígido é ultrapassado Equilibra completude e segurança Lógica mais complexa, que exige mais testes

Um ponto importante: gerar o resumo de transição também consome espaço na janela de contexto. Se a troca só for acionada quando a janela estiver completamente cheia, o modelo talvez já não tenha espaço para ler todo o histórico e escrever um resumo de qualidade. Por isso, qualquer que seja a estratégia, é preciso reservar uma margem para gerar o resumo.

Quanto à forma de geração, um resumo produzido pelo modelo é mais flexível e consegue entender o significado da tarefa. Já um resumo gerado por regras — por exemplo, extraindo diretamente os campos de status da lista de tarefas — é mais estável, mas tem dificuldade para captar decisões implícitas na conversa. Na prática, é comum combinar as duas abordagens: o programa mantém o estado estruturado, enquanto o modelo apenas complementa com uma descrição do progresso em linguagem natural.


Como implementar um resumo de passagem de contexto + busca no arquivo: um protótipo minimalista

Este protótipo minimalista demonstra a ideia por trás desse padrão e não é uma implementação do JiuwenSwarm. Quando a estimativa de uso de tokens se aproxima do limite, ele pede ao modelo que gere um resumo de passagem de contexto e salva as mensagens antigas em um arquivo.

import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"  # Interface da APIYI compatível com OpenAI
)

HANDOFF_PROMPT = "请将以上工作记录整理为交接摘要,包含:目标、进展、下一步、约束、关键信息索引。"

def make_handoff(messages, model="gpt-4o-mini"):
    resp = client.chat.completions.create(
        model=model,
        messages=messages + [{"role": "user", "content": HANDOFF_PROMPT}]
    )
    return resp.choices[0].message.content

Ver o código completo do protótipo (com verificação de troca e busca no arquivo)
import openai
from typing import List, Dict

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)

MODEL = "gpt-4o-mini"
CONTEXT_LIMIT = 100_000      # Valor de exemplo; ajuste à janela real do modelo usado
SWITCH_RATIO = 0.7           # Reserva espaço para gerar o resumo
HANDOFF_PROMPT = (
    "请将以上工作记录整理为交接摘要,分为五部分:"
    "1.目标 2.进展(含关键决策及理由)3.下一步 4.用户约束 5.关键信息索引(关键词列表)"
)

class LongRunningAgent:
    def __init__(self, system_prompt: str):
        self.system_prompt = system_prompt
        self.messages: List[Dict] = [{"role": "system", "content": system_prompt}]
        self.archive: List[Dict] = []   # Histórico arquivado; em produção, pode ser um banco de dados ou banco vetorial

    def estimate_tokens(self) -> int:
        # Estimativa aproximada; em produção, use o tokenizador do modelo correspondente
        return sum(len(m["content"]) for m in self.messages)

    def maybe_switch(self):
        if self.estimate_tokens() < CONTEXT_LIMIT * SWITCH_RATIO:
            return
        resp = client.chat.completions.create(
            model=MODEL,
            messages=self.messages + [{"role": "user", "content": HANDOFF_PROMPT}]
        )
        summary = resp.choices[0].message.content
        self.archive.extend(self.messages[1:])      # Salva a conversa antiga no arquivo
        self.messages = [
            {"role": "system", "content": self.system_prompt},
            {"role": "system", "content": f"【交接摘要】\n{summary}"}
        ]

    def search_archive(self, keyword: str, top_k: int = 5) -> str:
        hits = [m["content"] for m in self.archive if keyword in m["content"]]
        return "\n---\n".join(hits[-top_k:]) or "归档中未找到相关记录"

    def chat(self, user_input: str) -> str:
        self.maybe_switch()
        self.messages.append({"role": "user", "content": user_input})
        resp = client.chat.completions.create(model=MODEL, messages=self.messages)
        answer = resp.choices[0].message.content
        self.messages.append({"role": "assistant", "content": answer})
        return answer

agent = LongRunningAgent("你是负责跟进项目周报的数字员工。")
print(agent.chat("请记录:本周报告不要超过一页。"))

A busca no arquivo deste protótipo usa apenas correspondência simples de palavras-chave. A reportagem não esclarece se o JiuwenSwarm usa busca vetorial ou outro método. Em um projeto real, é possível escolher entre busca de texto completo, busca vetorial ou uma combinação das duas, de acordo com o tamanho do arquivo. Também é possível registrar search_archive como uma ferramenta e deixar que o modelo decida quando usá-la.

🚀 Comece rápido: ao criar esse tipo de protótipo, você pode usar modelos diferentes para gerar o resumo e executar a tarefa principal. Por exemplo, use um modelo leve para o resumo e um modelo mais potente para a tarefa principal. Com uma única chave API da APIYI, em apiyi.com, você pode invocar modelos como OpenAI, Claude e Gemini e alternar entre eles para compará-los no mesmo código. Novos usuários recebem créditos gratuitos para testes.


Terceira questão no design do resumo de transição: quando consultar o histórico arquivado

A busca nos arquivos resolve um problema fundamental: todo resumo perde informações. Qualquer compressão deixa algo de fora; o importante é conseguir recuperar essas informações depois. Há três abordagens principais para decidir quando consultar o arquivo:

  • Invocação autônoma pelo modelo: a busca é disponibilizada como ferramenta, e o modelo a utiliza quando percebe que faltam informações. É flexível, mas depende de o modelo reconhecer o que não sabe.
  • Acionamento por regras: quando o usuário menciona uma entidade, um nome de arquivo ou um momento que não consta no resumo, o programa faz uma busca automaticamente e insere os resultados. Oferece mais controle, mas as regras têm cobertura limitada.
  • Orientação por índice: o resumo de transição mantém um índice das informações importantes. Quando um tema relacionado surge na nova janela, o índice permite recuperar os dados com precisão. Essa abordagem depende da qualidade do índice criado durante a geração do resumo.

Acreditamos que o maior risco é “não saber o que ficou de fora”. Se o resumo omitir uma preferência do usuário e não houver nenhuma pista sobre ela na nova janela, o modelo não terá motivo para consultá-la. É por isso que recomendamos incluir os campos “restrições” e “índice” no resumo: eles servem como pontos de entrada para consultar o histórico arquivado.


Depender de um contexto mais longo vs. resumo de transição: análise de impacto

Quando a janela de contexto chega ao limite, outra opção é usar um modelo com uma janela maior. As duas abordagens não são excludentes, mas se aplicam a situações diferentes. A tabela abaixo traz uma análise comparativa, sem dados de desempenho.

agent-context-window-handoff-summary-archive-retrieval-pt-pt-image-2

Dimensão Depender de um contexto mais longo Resumo de transição + busca no arquivo
Complexidade de implementação Baixa, praticamente não exige alterações Alta, exige três conjuntos de lógica: resumo, arquivamento e busca
Integridade das informações Todas as informações originais estão presentes O resumo perde informações e depende da busca para recuperá-las
Duração da tarefa Limitada pelo tamanho da janela do modelo Em teoria, pode continuar indefinidamente
Custo por invocação Aumenta continuamente com o histórico Diminui após cada transição
Principal risco Informações importantes se perdem em meio a uma entrada muito longa Detalhes omitidos no resumo não são recuperados pela busca
Cenários indicados Tarefas de duração média que exigem consulta ao texto completo Trabalhos contínuos que duram de vários dias a semanas
Plataformas disponíveis APIYI apiyi.com e outras oferecem modelos com diferentes tamanhos de janela de contexto Funciona com qualquer modelo, independentemente da plataforma

💡 Como escolher: se a tarefa costuma caber em uma janela longa, trocar para um modelo com contexto maior é mais simples. Se o agente precisa permanecer ativo por longos períodos, como os funcionários digitais do WorkSwarm, o resumo de transição é praticamente indispensável. Você pode primeiro executar a mesma tarefa com modelos de diferentes tamanhos de contexto na APIYI apiyi.com e observar o consumo real antes de decidir se vale investir no desenvolvimento do mecanismo de resumo.

Impacto para desenvolvedores

  • O gerenciamento de contexto passa a ser uma questão de arquitetura: o WorkSwarm trata sessões como recursos que podem ser agendados. Isso significa que a troca de contexto faz parte do projeto do sistema, em vez de ser uma correção aplicada após um erro.
  • O estado precisa ser modelado explicitamente: a qualidade do resumo de transição depende de o agente registrar com clareza os objetivos, as decisões e as pendências. Isso exige que os desenvolvedores planejem a estrutura de estado desde a fase de projeto.
  • A observabilidade se torna mais importante: o WorkSwarm mostra o consumo de tokens e o tempo de resposta no painel de atividades. Agentes de longa duração também precisam monitorar a frequência das transições e a taxa de acerto das buscas.

Impacto para o setor

  • De sessões para operação contínua: à medida que os agentes passam de interações de “pergunta e resposta” para a participação contínua em grupos de trabalho, a capacidade de manter o contexto entre janelas se tornará parte da infraestrutura básica desses produtos.
  • A implementação de código aberto serve de referência: com a abertura do código do JiuwenSwarm, desenvolvedores podem estudar diretamente seus limites de transição e as implementações de geração de resumos e busca, sem precisar começar do zero.

Perguntas frequentes (FAQ)

Q1: O que é o padrão de “resumo de transição + consulta ao histórico arquivado”?

É uma forma de agentes de longa duração continuarem trabalhando ao atingir o limite da janela de contexto: quando a janela está quase cheia, o agente passa para uma nova, levando apenas um resumo de transição com o objetivo, o progresso e os próximos passos. O histórico completo é arquivado e consultado quando são necessários mais detalhes. O openJiuwen WorkSwarm adota essa ideia.

Q2: Usar um modelo com uma janela de contexto maior não resolveria o problema?

Para tarefas de duração intermediária, trocar para um modelo com contexto mais longo realmente é a solução mais simples. Mas, para agentes que ficam ativos por longos períodos, o histórico continua crescendo e qualquer janela acaba ficando cheia. Além disso, informações importantes podem se perder em entradas muito longas. Vale testar tarefas reais com modelos de diferentes tamanhos de contexto pela APIYI apiyi.com antes de decidir se é necessário implementar um mecanismo de resumo.

Q3: Qual é o limite para a troca de janela no WorkSwarm e como o resumo é gerado?

As informações divulgadas até agora não especificam o limite exato, se o resumo é gerado por um modelo ou por regras, nem se a consulta ao histórico arquivado usa busca vetorial ou outro método. Para confirmar esses detalhes de implementação, é preciso consultar o código aberto do JiuwenSwarm no GitHub ou a documentação oficial. As discussões deste artigo sobre o assunto são análises gerais de engenharia.

Q4: Como validar rapidamente uma solução de resumo de transição usando a API?

Você pode criar um protótipo seguindo estes passos:

1. Cadastre-se na APIYI apiyi.com e obtenha uma chave API e créditos gratuitos para teste
2. Use o código de protótipo deste artigo, definindo base_url como `https://api.apiyi.com/v1`
3. Faça um teste com uma conversa longa e real e, após a troca de janela, verifique se o agente ainda se lembra das restrições importantes

Q5: Quais são os riscos conhecidos desse padrão?

O principal risco é o resumo omitir detalhes e a nova janela não ter pistas para recuperá-los. Outro risco é fazer a troca no meio de uma etapa crítica da tarefa, causando inconsistências de estado. Além disso, ainda não há dados públicos de testes sobre o impacto real desse mecanismo na qualidade das tarefas. Por isso, faça uma validação cuidadosa no seu próprio cenário antes de colocá-lo em produção.


Resumo de transição e janela de contexto: principais pontos

  • Mecanismo central: quando a janela está quase cheia, o agente passa para uma nova janela levando um resumo de transição com objetivo, progresso e próximos passos.
  • Pré-requisito: a identidade do agente é separada da sessão, que passa a ser um recurso agendável e recuperável.
  • Estrutura do resumo: além dos três elementos básicos, inclua as restrições do usuário e um índice dos arquivos para reduzir o risco de omissões.
  • Momento da transição: reserve espaço para gerar o resumo e prefira fazer a troca ao concluir uma etapa da tarefa.
  • Consulta aos arquivos: resumos sempre perdem detalhes; os mecanismos de busca determinam se essas informações podem ser recuperadas.
  • Escolha da abordagem: para tarefas de média duração, um modelo com janela de contexto maior pode bastar; tarefas de longa duração precisam mais de resumos de transição.
  • Validação rápida: use a interface unificada para múltiplos modelos da APIYI, em apiyi.com, para criar protótipos e comparar resultados.

Conclusão

O mecanismo de troca de contexto do openJiuwen WorkSwarm oferece um modelo claro para agentes que precisam operar por longos períodos:

  1. O resumo de transição registra o estado do trabalho: objetivo, progresso e próximos passos formam o conjunto mínimo; restrições e índices são complementos úteis.
  2. É preciso reservar espaço para a transição: gerar o resumo também consome contexto, então não espere a janela ficar completamente cheia.
  3. A busca nos arquivos compensa a perda de informação: o resumo guarda os pontos principais; os detalhes ficam disponíveis para consulta quando necessário.

Se o seu agente está deixando de operar em sessões únicas para funcionar continuamente, comece definindo a estrutura de estado. Depois, decida entre usar um modelo com janela de contexto maior ou introduzir resumos de transição. Vale criar um protótipo rapidamente com a APIYI, em apiyi.com, e comparar a qualidade dos resumos e o consumo de contexto entre diferentes modelos.


📚 Referências

  1. Reportagem da Pandaily: arquitetura de cluster Hyper-Agent do openJiuwen e funcionários digitais do WorkSwarm
  2. Link: pandaily.com/openjiuwen-hyper-agent-swarm-architecture-persistent-agents-workswarm-digital-employees
  3. Descrição: reportagem em inglês sobre agentes persistentes, troca de contexto e o mecanismo de resumos para transferência de tarefas

  4. Código aberto do JiuwenSwarm: implementação de código aberto do openJiuwen WorkSwarm

  5. Link: github.com (pesquise por JiuwenSwarm)
  6. Descrição: consulte a implementação dos limites de troca, da geração de resumos e da recuperação de arquivos

Autor: equipe técnica da APIYI
Discussões técnicas: entre em contato conosco pela página inicial do site APIYI apiyi.com. Para mais informações, acesse a central de documentação em docs.apiyi.com

Artigos relacionados

Similar Posts