WriterAgent

Uma extensão do LibreOffice que adiciona recursos de IA agêntica e NumPy.

Documentação

WriterAgent, LibrePy & LibreHarper

WriterAgent logo

License: GPL v3+ Python 3.11+ LibreOffice 7.0+ Release

CI status Página de status de CI

Python, NumPy e IA Agêntica para LibreOffice (Writer, Calc e Draw)

Execute Python e computação científica offline em fórmulas de planilhas, edite documentos com IA privada local-first — sem dependência de nuvem.

O projeto é distribuído como três pacotes de extensão independentes (instale apenas um por vez):

PacoteO que está incluído
🤖 WriterAgent (WriterAgent.oxt) (Pilha completa, recomendado para a maioria dos usuários)Tudo no LibrePy e LibreHarper + barra lateral de IA, =PROMPT(), pesquisa na web, conversor Calc → Python, servidor MCP
🐍 LibrePy (LibrePy.oxt)Runtime Python, =PY(), NumPy, pandas, SymPy, Monaco, Jupyter Arquivo → Abrir .ipynb, auxiliares de domínio, OCR (sem IA/MCP — build de núcleo para inclusão no LO)
✍️ LibreHarper (LibreHarper.oxt)Mecanismo de gramática offline Harper independente para o Writer

Baixar versões .oxt · Índice de Recursos · Guia NumPy no LibreOffice · Discussões


Principais Capacidades

🤖 IA Agêntica Local-First e Escrita (Writer)

  • Chat na Barra Lateral com Chamada de Ferramentas em Múltiplas Etapas — Edite, reestruture ou expanda documentos usando linguagem natural. 9 ferramentas principais além de dezenas de subagentes especializados para layout de página, notas de rodapé, marcadores, revisões e formulários.
  • Interação de Voz Bidirecional (STT & TTS) — Dite comandos diretamente ao seu agente de documentos e ouça as respostas em voz alta (local via Kokoro ou Piper, ou via seu endpoint de LLM).
  • Edições que Preservam Formatação — Revisões cirúrgicas e reescritas de seções mantêm sua formatação existente (negrito, itálico, realces, tamanhos de fonte, tabelas e listas aninhadas) sem sobrescrever estilos.
  • Pesquisa na Web — Loop integrado e privado de smolagents com DuckDuckGo. Sintetiza múltiplas fontes web e atualiza documentos abertos com fatos e citações em tempo real. Busca do Agente
  • Gramática e Revisão em Tempo Real — Verificação gramatical local e privada via Harper (rápida, auto-instalável), LanguageTool ou endpoints de LLM com detecção de frases em múltiplos idiomas. Detalhes
  • Importação de Matemática & LaTeX — Converte LaTeX e MathML em objetos Math nativos e editáveis do LibreOffice. Guia de Matemática

🐍 Python & Computação Científica (Calc & Writer)

  • Fórmulas de Planilha =PY() Nativas — Execute expressões Python, NumPy e pandas diretamente em células do Calc com derramamento automático de arrays, kernels compartilhados de pasta de trabalho e scripts persistentes.
  • Editor de Código Monaco Embutido — Escreva, teste e depure scripts Python de múltiplas linhas diretamente em células ou através do ambiente Ferramentas → Executar Script Python com realce de sintaxe, autocompletar e diagnósticos.
  • Domínios Científicos e Analíticos Integrados — Auxiliares prontos para EDA, detecção de outliers, regressão OLS, agrupamento KMeans, simulações de Monte Carlo, álgebra simbólica (SymPy), plotagem e conversões de unidades físicas (convert_quantity(60, "mph", "m/s") → 26.8224 m/s). Referência de Domínios · Auxiliares de Análise
  • Conversor Planilha → Python (WriterAgent) — Traduza mais de 235 fórmulas clássicas do Calc/Excel em expressões Python limpas usando a biblioteca de paridade calc.* integrada, preservando constantes, datas e formatos de célula. Detalhes
  • Visão Local & OCR — Extraia texto de imagens embutidas ou documentos digitalizados diretamente para o Writer e Calc via OCR Docling offline. Guia de Visão
  • Jupyter logo Suporte a Jupyter Notebook — Arquivo → Abrir… um .ipynb (ou clique duplo / soffice notebook.ipynb) cria um documento do Writer com markdown, campos de código editáveis e botões ▶ de execução contra um kernel Python compartilhado. Jupyter no Writer
  • Seguro contra falhas por design — NumPy executa fora do processo em seu próprio venv, então um bug de script não pode travar o LibreOffice.

📊 Diagramas, Slides & Multimodal (Draw & Impress)

  • Geração de Diagramas e Apresentações — Gere, ajuste e estilize fluxogramas, formas, conectores, notas do apresentador e transições de slides através de comandos de chat ou scripts Python. Detalhes
  • Criação e Edição de Imagens — Gere uma nova imagem a partir de um prompt, ou edite um gráfico selecionado no lugar, no mesmo endpoint do chat. Insere no Writer, Calc, Draw e Impress. Geração de Imagens
  • Árvore Semântica LO-DOM — Compreensão estrutural de títulos, seções, tabelas e relacionamentos em documentos inteiros. Árvore Semântica
  • Busca Entre Documentos & Memória — Consulte outros documentos na mesma pasta via embeddings locais / busca híbrida, com memória persistente do agente entre sessões. Embeddings · Memória

🔌 Integrações & Extensibilidade

Catálogo completo de capacidades: docs/features.md.


Instalação & Configuração

  1. Baixe o pacote .oxt de sua escolha nas Últimas Versões e clique duas vezes para instalar (ou abra o LibreOffice e vá em Ferramentas → Gerenciador de Extensões → Adicionar). Lembre-se de instalar apenas um pacote de extensão.
  2. Reinicie o LibreOffice.
  3. Configuração Rápida:
    • Usuários de Python / LibrePy: Abra o Calc, verifique Ferramentas → LibrePy (ou WriterAgent) → Configurações → Python e clique em Testar para verificar seu ambiente e a disponibilidade de NumPy/pandas.
    • Usuários de IA / WriterAgent: Abra WriterAgent → Configurações e insira seu endpoint (ex.: http://localhost:11434 para Ollama local (sem necessidade de chave), ou uma chave de API OpenRouter / Together.AI). Abra a barra lateral via Exibir → Barra Lateral → WriterAgent ou pressione Ctrl+Q / Ctrl+E.

Modos de Interface: No modo clássico de barra de ferramentas, acesse as ferramentas pelo menu superior. Em interfaces com abas/faixa de opções, use a barra lateral de chat WriterAgent e/ou a barra lateral Python (Writer + Calc): Configurações ⚙, Python 🐍, matemática LaTeX ou Editar célula, busca 🔍 (apenas chat WriterAgent) e menus completos via ☰.

Para instruções detalhadas de configuração, consulte o Guia de Instalação e Solução de Problemas.


Demonstrações

Python no LibreOffice Writer

Python in LibreOffice

Análise de Planilhas & Painel

Chat Sidebar with Dashboard

Hermes + Opus 4.6 (Pesquisa na Web)

Hermes-Agent / Opus-4.6 Akihabara

Expressões Matemáticas & LaTeX

Math Expressions

Currículo Arch Linux

Opus 4.6 Resume

Diagramas no Draw

Sonnet 4.6 Visual


Benchmarks & Avaliação

A Suíte de Avaliação de LLM Eval-1 do WriterAgent executa modelos em tarefas reais de Writer, Calc e Draw através das mesmas ferramentas que a barra lateral usa, e então pontua o documento exportado. Tarefas típicas: reformatar documentos, recalcular impostos, desenhar diagramas como a bandeira americana usando formas. Cada execução é classificada por Valor (correção² ÷ dólares). A tabela abaixo é o painel completo de dupla via 29×19 de 2026-09-28 (flag-18 + org_chart_gen, com substituições de galeria de organograma pontuadas manualmente — 5 PASS visuais difíceis). Metodologia completa: docs/eval/benchmarks.md.

Cost–quality Pareto fronts

Visualização de distância até a fronteira: docs/eval/pareto-distance.svg.

ModeloCorreção
pontuação média por tarefa (0–1)
Valor
Correção² ÷ $/tarefa
openai/gpt-oss-120b0.921803
openai/gpt-oss-20b0.759524
poolside/laguna-xs-2.10.838358
upstage/solar-pro40.716352
google/gemma-4-31b-it0.861330
google/gemma-4-26b-a4b-it0.701216
bytedance-seed/seed-2.0-mini0.861179
poolside/laguna-s-2.10.732160
meta/muse-spark-1.3-contributor0.981147
openai/gpt-6-luna0.873139
z-ai/glm-5.3-flash0.85687
nvidia/nemotron-3.5-super-vl0.93282
liquid/lfm-2.5-24b-a2b0.58982
prism-ml/ternary-bonsai-2-27b0.54378
deepseek/deepseek-v4.1-flash0.88377
qwen/qwen3.8-flash0.79265
mistralai/mistral-small-26030.58364
meta/muse-glimmer-30b0.92360
inception/mercury-2.5-preview0.81756
ibm-granite/granite-4.2-8b0.81055
google/gemini-3.5-flash-lite0.70849
nvidia/nemotron-3.5-lightning0.39546
nvidia/nemotron-3-super-120b-a12b0.85438
reflection/beam-1.0-501b-a23b0.87918
cohere/command-a-plus0.64113
minimax/minimax-m30.78011
x-ai/grok-4.60.9189
qwen/qwen3.8-27b0.9179
nvidia/nemotron-3-ultra-550b-a55b0.7874

Documentação & Arquitetura

TópicoLink de Documentação
Índice de Recursosdocs/features.md
NumPy & Python no Calcdocs/enabling_numpy_in_libreoffice.md · docs/calc/py-data-shapes.md
Arquitetura Principal do LibrePydocs/scripting/librepy-split.md
Funções Auxiliares de Domíniodocs/scripting/numpy-domains.md · docs/calc/analysis-tools.md
Arquitetura Completadocs/writeragent-architecture.md · docs/framework/formal-verification.md
Model Context Protocol (MCP)docs/mcp-protocol.md
Embeddings & Buscadocs/embeddings.md
Benchmarksdocs/eval/benchmarks.md
Localização (35 Locais)docs/framework/localization.md
Explorador de CódigoDeepWiki
Cursor / Habilidades de Agentecursor-libreoffice · libreoffice-skill

Nos bastidores, todas as operações são governadas por uma máquina de estados finita formalmente verificada, com verificação estrita de tipos e análise estática. Chamadas UNO não seguras para threads são detectadas em desenvolvimento via um proxy viral de proteção de thread, em vez de congelamentos aleatórios. A suíte de barra lateral com LLM simulado — o pior LLM do mundo — prova a recuperação de parada, suspensão e erros de ponta a ponta.

State machine architecture


Evolução do Projeto

Uma crônica da construção de um runtime Python e suíte de IA dentro do LibreOffice:


Contribuição & Desenvolvimento

Ask DeepWiki Discussões Pré-requisitos: Python 3.11–3.13 para desenvolvimento (fixado na versão 3.13 via .python-version), uv. Execute make check-setup para verificar. No macOS: instale make, gettext.

git clone https://github.com/KeithCu/writeragent.git
cd writeragent
uv python install 3.13
uv sync
make deploy          # Builds & installs WriterAgent.oxt (or: make deploy writer)
make test
make help

Para compilar e testar as variantes de extensão independentes:

# Standalone Python / NumPy compute suite (LibrePy)
make build-core      # Produces build/LibrePy.oxt
make deploy-core     # Installs LibrePy.oxt (removes WriterAgent)

# Standalone Harper grammar checker (LibreHarper)
make build-harper    # Produces build/LibreHarper.oxt
make deploy-harper   # Installs LibreHarper.oxt

Consulte AGENTS.md (invariantes), docs/repo-map.md (pontos de entrada) e docs/scripting/librepy-split.md para detalhes de arquitetura.


Créditos

ProjetoContribuição
localwriterExtensão original do Writer LLM (John Balis)
LibreCalc AI AssistantBase e inspiração da IA do Calc
LibreOffice MCP ExtensionPadrões de servidor MCP, Makefile, registro de ferramentas
Hermes AgentParsers de chamadas de ferramentas, reparo de JSON, padrões de memória
latex2mathmlLaTeX → MathML
mathml-to-latexMathML → LaTeX (exportação de fórmulas do Writer)
isodateAnálise/formatação de duração ISO 8601 (wire do Calc)

Licença

GNU GPL v3 (ou posterior) — consulte LICENSE. Originalmente MPL 2.0; relicenciado em 2026 para reciprocidade mais forte e compatibilidade de bibliotecas.

AnoContribuiçãoContribuidor
2024Lançamento originalJohn Balis
2025–2026Configuração, registros, sistema de buildquazardous
2026Integração com Calc (originalmente MIT)LibreCalc AI Assistant
2026Modificações e relicenciamentoKeithCu