← 返回
未分类 中文

easypaper

Generate academic papers from metadata using EasyPaper Python SDK. Use when user wants to create structured LaTeX papers programmatically. References the Eas...
使用 EasyPaper Python SDK 从元数据生成学术论文。当用户想要以编程方式创建结构化 LaTeX 论文时使用。
pinkgranite pinkgranite 来源
未分类 clawhub v1.0.3 1 版本 100000 Key: 无需
★ 0
Stars
📥 479
下载
💾 0
安装
1
版本
#latest

概述

EasyPaper Skill

Generate structured academic papers from metadata using the EasyPaper multi-agent system via Python SDK.

Repository

Source: https://github.com/PinkGranite/EasyPaper

Primary Reference Directory: plugins/easypaper/

This directory contains comprehensive guidance for OpenClaw agents:

  • Commands: Workflow execution contracts in plugins/easypaper/commands/
  • Skills: Domain-specific skills in plugins/easypaper/skills/
  • Plugin Documentation: Setup and usage in plugins/easypaper/.claude-plugin/README.md

Installation

Python Package

Important: Install EasyPaper in an isolated environment (recommended for dependency management).

Using venv:

python -m venv easypaper-env
source easypaper-env/bin/activate  # On Windows: easypaper-env\Scripts\activate
pip install easypaper

Using conda:

conda create -n easypaper python=3.11
conda activate easypaper
pip install easypaper

Direct install (not recommended):

pip install easypaper

LaTeX Toolchain

EasyPaper requires LaTeX toolchain (pdflatex + bibtex) for PDF compilation. Install based on your system:

macOS:

# Using Homebrew (recommended)
brew install --cask mactex

# Or minimal installation
brew install basictex
sudo tlmgr update --self
sudo tlmgr install collection-basic collection-latex collection-bibtexextra

Linux (Ubuntu/Debian):

sudo apt-get update
sudo apt-get install texlive-latex-base texlive-bibtex-extra texlive-latex-extra

Linux (Fedora/RHEL):

sudo dnf install texlive-scheme-basic texlive-bibtex texlive-latex

Windows:

  • Download and install MiKTeX (full installer recommended)
  • Or use TeX Live
  • Ensure pdflatex and bibtex are in your PATH

Poppler (for PDF-to-image conversion)

macOS:

brew install poppler

Linux (Ubuntu/Debian):

sudo apt-get install poppler-utils

Linux (Fedora/RHEL):

sudo dnf install poppler-utils

Windows:

  • Download from Poppler for Windows
  • Extract and add bin directory to PATH
  • Or use conda: conda install -c conda-forge poppler

Quick Start

Recommended workflow: Prepare a metadata.json (see examples/meta.json), parse it as PaperGenerationRequest, then run with to_metadata() + to_generate_options().

Typesetter behavior (SDK + Server): PDF compilation prefers in-process Typesetter when available (SDK self-contained). If no local peer is available, EasyPaper falls back to the HTTP Typesetter endpoint (AGENTSYS_SELF_URL).

Load from file and generate

import asyncio
from pathlib import Path
from easypaper import EasyPaper, PaperGenerationRequest

async def main():
    ep = EasyPaper(config_path=str(Path("configs/dev.yaml").resolve()))
    
    request = PaperGenerationRequest.model_validate_json_file("metadata.json")
    metadata = request.to_metadata()
    options = request.to_generate_options()

    result = await ep.generate(metadata, **options)
    print(f"Status: {result.status}, Words: {result.total_word_count}")

asyncio.run(main())

Inline metadata

import asyncio
from easypaper import EasyPaper, PaperMetaData

async def main():
    ep = EasyPaper(config_path="configs/dev.yaml")
    
    metadata = PaperMetaData(
        title="My Paper Title",
        idea_hypothesis="...",
        method="...",
        data="...",
        experiments="...",
        references=["@article{...}"],
    )
    
    result = await ep.generate(metadata)
    print(f"Status: {result.status}, Words: {result.total_word_count}")

asyncio.run(main())

Key Reference Files

When working with EasyPaper, refer to these files in the repository:

Commands (Workflow Execution)

Skills (Domain Guidance)

Configuration and Examples

PaperMetaData Fields

Required:

  • title, idea_hypothesis, method, data, experiments, references

Optional:

  • style_guide (venue name), target_pages, template_path, figures, tables, code_repository, export_prompt_traces

See examples/meta.json and economist_example/metadata.json for full examples. Treat examples/meta.json as a full PaperGenerationRequest sample: use request = PaperGenerationRequest.model_validate_json_file(...), then request.to_metadata() and request.to_generate_options() for SDK generation.

Final PDF Selection

When review loop is enabled, multiple iteration PDFs can exist. Always report the final artifact using this priority:

  1. result.pdf_path (authoritative final output)
  2. Under result.output_path: iteration__final//.pdf
  3. Under result.output_path: latest iteration_* directory PDF
  4. result.output_path/paper.pdf (last fallback)

If no PDF is found, report that final PDF is unavailable and include recent compile errors.

Streaming Generation

from easypaper import EasyPaper, PaperMetaData, EventType

async for event in ep.generate_stream(metadata):
    if event.event_type == EventType.PHASE_START:
        print(f"▶ [{event.phase}] {event.message}")
    elif event.event_type == EventType.COMPLETE:
        result = event.data["result"]
        print(f"Done! {result['total_word_count']} words")

When to Use This Skill

Use this skill when:

  • User wants to generate academic papers programmatically
  • User needs to understand EasyPaper SDK usage
  • User asks about paper generation workflows
  • User needs venue-specific formatting guidance

For detailed workflows and execution contracts, refer to files in plugins/easypaper/ directory.

版本历史

共 1 个版本

  • v1.0.3 当前
    2026-03-30 14:07 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

dev-programming

YouTube

byungkyu
使用托管OAuth集成YouTube Data API,支持搜索视频、管理播放列表、获取频道数据及评论互动,适用于用户需要时使用此技能。
★ 142 📥 42,159
dev-programming

Mcporter

steipete
使用 mcporter CLI 直接列出、配置、认证及调用 MCP 服务器/工具(支持 HTTP 或 stdio),涵盖临时服务器、配置编辑及 CLI/类型生成功能。
★ 198 📥 68,290
dev-programming

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 687 📥 331,360