← 返回 Skills 市场
pinkgranite

easypaper

作者 Yuwei Yan · GitHub ↗ · v1.0.3 · MIT-0
cross-platform ✓ 安全检测通过
189
总下载
0
收藏
0
当前安装
4
版本数
在 OpenClaw 中安装
/install easypaper
功能描述
Generate academic papers from metadata using EasyPaper Python SDK. Use when user wants to create structured LaTeX papers programmatically. References the Eas...
使用说明 (SKILL.md)

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.

安全使用建议
This skill is internally coherent for generating LaTeX papers, but take these precautions before installing or running it: - Install and run inside an isolated environment (venv or conda) and avoid system-wide installation. - Inspect the easypaper package source (PyPI/GitHub) before pip installing to confirm no unexpected behavior or network calls. - Check configs/dev.yaml and any example config for embedded credentials; do not use sensitive metadata for initial tests. - Ensure AGENTSYS_SELF_URL is unset or points to a trusted endpoint if you want to avoid automatic fallback to a remote typesetter (which would send document content over the network). - Prefer testing with dummy/non-sensitive documents first and monitor network activity while the SDK runs. If you want higher confidence, provide the actual package source (PyPI package link or repository tarball) so it can be further inspected; absence of code in the skill package means some risk comes from the external Python package it instructs you to install.
功能分析
Type: OpenClaw Skill Name: easypaper Version: 1.0.3 The easypaper skill provides documentation and code examples for an academic paper generation SDK. It includes standard installation instructions for Python packages and LaTeX toolchains, and guides the agent on how to handle metadata and PDF artifacts. No evidence of malicious intent, data exfiltration, or harmful prompt injection was found in SKILL.md or _meta.json.
能力评估
Purpose & Capability
The name/description align with the instructions: installing the EasyPaper Python SDK, a LaTeX toolchain, and Poppler are coherent for programmatic LaTeX/PDF generation. There are no unrelated binaries or credentials demanded. Minor inconsistency: the doc references an HTTP Typesetter fallback (AGENTSYS_SELF_URL) but that environment variable is not declared as required.
Instruction Scope
SKILL.md stays within the paper-generation scope (install SDK, prepare metadata.json/configs/dev.yaml, call EasyPaper.generate). It does, however, describe a fallback to an HTTP Typesetter endpoint (AGENTSYS_SELF_URL) if no local typesetter is available — that implies possible network transmission of document content to an external service. Also the instructions expect reading local config files (configs/dev.yaml) and metadata files (metadata.json), which is reasonable for the task but means local files and any secrets inside configs could be accessed by the SDK at runtime.
Install Mechanism
There is no platform install spec in the registry; the SKILL.md recommends 'pip install easypaper' and system package installs (TeX, poppler). Installing a Python package from PyPI runs third-party code on your system — normal for this use case but warrants caution: inspect the package source or run in an isolated environment (venv/conda) before trusting it.
Credentials
The skill declares no required env vars or credentials, which aligns with its purpose. However, SKILL.md references AGENTSYS_SELF_URL as an HTTP Typesetter fallback and expects config files (configs/dev.yaml). At runtime the SDK or plugin may read environment variables and config files not listed here; these could contain sensitive values. The absence of declared env vars reduces suspicion, but you should verify what the installed package actually reads.
Persistence & Privilege
The skill is not forced-always and has no install spec that would create persistent privileges; autonomous invocation is enabled (default) but that is expected. There is no evidence it attempts to modify other skills or system-wide agent settings.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install easypaper
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /easypaper 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.3
EasyPaper Skill 1.0.3 - Clarified Typesetter behavior: SDK prefers in-process compilation for PDFs and falls back to HTTP endpoint if needed. - Added section on "Final PDF Selection," detailing the priority order for finding and reporting the final output PDF. - No code or functional changes—documentation improvement only.
v1.0.2
- Updated recommended integration to use PaperGenerationRequest for input parsing and generation options extraction. - Adjusted the Quick Start section to show the new workflow using request.to_metadata() and request.to_generate_options(). - Clarified the metadata input format and emphasized using PaperGenerationRequest as a wrapper for full JSON examples. - Minor clarifications in references to examples and documentation files for more direct SDK usage guidance. - No functional or API changes; documentation only.
v1.0.1
v1.0.1 adds detailed installation and environment setup instructions for EasyPaper. - Expanded documentation with step-by-step guides for Python and system dependencies (LaTeX toolchain, Poppler, virtual environments). - Clarified generation options vs. metadata fields; documented how to load metadata and pass workflow options. - New reference to setup-environment skill for automated environment setup. - Updated pointers to multiple example metadata files and improved Quick Start examples. - No functional changes to code or interface; documentation only.
v1.0.0
EasyPaper skill initial release: - Enables programmatic generation of academic papers from metadata using the EasyPaper Python SDK. - Provides comprehensive setup and usage examples, including installation and basic usage code. - References key workflow and skill files in the EasyPaper repository for detailed guidance. - Documents required and optional metadata fields for paper generation. - Includes instructions for streaming generation and agent workflows. - Offers venue-specific formatting options and academic writing guidance.
元数据
Slug easypaper
版本 1.0.3
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 4
常见问题

easypaper 是什么?

Generate academic papers from metadata using EasyPaper Python SDK. Use when user wants to create structured LaTeX papers programmatically. References the Eas... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 189 次。

如何安装 easypaper?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install easypaper」即可一键安装,无需额外配置。

easypaper 是免费的吗?

是的,easypaper 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

easypaper 支持哪些平台?

easypaper 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 easypaper?

由 Yuwei Yan(@pinkgranite)开发并维护,当前版本 v1.0.3。

💬 留言讨论