🧪 Skills

Auto Sec Blogger

Collects security news from multiple sources, generates expert-level blog posts with GLM-4.7, publishes drafts to Notion, and auto-deploys approved posts to...

v1.0.0
❤️ 0
⬇️ 68
👁 1
Share

Description


name: auto-sec-blogger version: 1.1.0 description: AI-powered security blog automation system (identical to github.com/rebugui/intelligence-agent). Collects news from Google News, arXiv, HackerNews → generates blog posts with GLM-4.7 → publishes to Notion → auto-deploys to GitHub Pages via Git. Features Human-in-the-Loop approval workflow. Use when you want to automate blog writing, news collection, or content generation with the exact functionality of the original intelligence-agent repository. Triggers: "블로그 글 작성", "보안 뉴스 발행", "깃헙 블로그 발행", "intelligence agent", "지능형 에이전트", "자동 글쓰기".

Intelligence Agent

개요

보안 뉴스를 자동으로 수집하고, LLM(GLM-4.7)을 사용하여 전문가 수준의 블로그 글을 작성한 후, Notion과 GitHub Pages에 자동으로 게시하는 시스템입니다.

GitHub 저장소와 동일: https://github.com/rebugui/intelligence-agent

아키텍처

뉴스 수집 (Google News, arXiv, HackerNews)
    ↓
GLM-4.7 글 작성 (전문 보안 블로그)
    ↓
Notion Draft 저장 (상태: Draft)
    ↓
사용자 검토 및 승인 (Human-in-the-Loop)
    ↓
Git Push → GitHub Actions → GitHub Pages

주요 기능

1. 뉴스 수집 (News Collection)

  • Google News: 키워드 기반 보안 뉴스 수집
  • arXiv: 최신 보안 연구 논문 수집
  • HackerNews: 트렌딩 기술 뉴스 수집
  • 중복 제거: URL 기반 중복 뉴스 필터링

2. LLM 글쓰기 (Content Generation)

  • 모델: GLM-4.7 (Zhipu AI)
  • 스타일: 전문 보안 블로그
  • 구조:
    • 제목 (헤드라인)
    • 요약 (3줄 요약)
    • 본문 (상세 분석)
    • 결론 (시사점)
    • 태그 (키워드)
  • Mermaid 다이어그램: 공격 흐름, 아키텍처 시각화

3. Notion 통합 (Notion Integration)

  • 상태 관리: Draft → Review → Approved → Published
  • 자동 저장: 생성된 글 자동 저장
  • 사용자 승인: Notion에서 상태 변경으로 배포 승인

4. Git 기반 발행 (Git Publishing)

  • 자동 커밋: 마크다운 파일 Git에 커밋
  • GitHub Actions: 자동 Jekyll 빌드
  • GitHub Pages: 정적 블로그 배포

설치

1. 의존성 설치

cd ~/.openclaw/workspace/skills/intelligence-agent/scripts
pip3 install -r requirements.txt

2. 환경 변수 설정

# ~/.openclaw/workspace/.env

# GLM API
GLM_API_KEY=your_glm_api_key
GLM_BASE_URL=https://api.z.ai/api/coding/paas/v4

# Notion
NOTION_API_KEY=ntn_xxx
NOTION_DATABASE_ID=xxx

# GitHub Pages
GITHUB_TOKEN=ghp_xxx
GITHUB_BLOG_REPO=username/username.github.io
BLOG_LOCAL_PATH=/path/to/blog/repo

사용법

1. 전체 파이프라인 실행 (테스트용)

cd ~/.openclaw/workspace/skills/intelligence-agent/scripts
python3 intelligence_pipeline.py --max-articles 5

2. 뉴스 수집만

from collector import NewsCollector

collector = NewsCollector()
articles = collector.fetch_all(max_results_per_source=15)

3. 블로그 글 작성만

from writer import BlogWriter

writer = BlogWriter()
post = writer.generate_article(article_data)

4. Notion 발행만

from notion_publisher import NotionPublisher

publisher = NotionPublisher()
result = publisher.create_article(blog_post)

5. Git 발행만

from git_publisher_service import GitPublisherService

git_publisher = GitPublisherService()
git_publisher.publish(blog_posts)

워크플로우 상세

1단계: 뉴스 수집

# collector.py
class NewsCollector:
    def fetch_google_news(self, query="security vulnerability"):
        # Google News RSS 피드에서 수집
        pass

    def fetch_arxiv(self, category="cs.CR"):
        # arXiv 보안 논문 수집
        pass

    def fetch_hackernews(self):
        # HackerNews 트렌딩 기사 수집
        pass

2단계: AI 기사 선별

# selector.py
class ArticleSelector:
    async def evaluate_and_select(self, articles, max_articles=5):
        # GLM-4.7으로 기사 품질 평가
        # 점수 기반 상위 기사 선별
        pass

3단계: 블로그 글 작성

# writer.py
class BlogWriter:
    async def generate_article(self, article):
        # GLM-4.7으로 블로그 글 작성
        # Mermaid 다이어그램 생성
        # 마크다운 형식 출력
        pass

4단계: Notion 발행

# notion_publisher.py
class NotionPublisher:
    def create_article(self, blog_post):
        # Notion DB에 Draft 상태로 저장
        # 상태: Draft → Review → Approved
        pass

5단계: Git 발행 (사용자 승인 후)

# git_publisher_service.py
class GitPublisherService:
    def publish(self, blog_posts):
        # 마크다운 파일 생성
        # Git commit & push
        # GitHub Actions 트리거
        pass

Cron 스케줄링

매일 08:30 자동 실행

# intelligence_pipeline.py
from apscheduler.schedulers.blocking import BlockingScheduler

scheduler = BlockingScheduler()
scheduler.add_job(run_pipeline, 'cron', hour=8, minute=30)
scheduler.start()

Notion 데이터베이스 구조

필수 속성

속성명 타입 설명
제목 title 블로그 글 제목
상태 select Draft/Review/Approved/Published
날짜 date 발행일
태그 multi_select 키워드
URL url 원문 URL
카테고리 select 취약점/연구/트렌드

Jekyll 블로그 구조

blog/
├── _posts/
│   ├── 2025-03-09-cve-2025-xxxx-analysis.md
│   ├── 2025-03-09-ai-security-trends.md
│   └── ...
├── _layouts/
│   ├── post.html
│   └── default.html
├── _config.yml
└── .github/
    └── workflows/
        └── jekyll.yml

트러블슈팅

GLM API Rate Limit

❌ Error: Rate limit reached (429)

해결:

  • 자동 재시도 3회
  • 60초 대기 후 재시도

Notion API Error

❌ Error: Notion API error

해결:

  • API 키 확인
  • Database ID 확인
  • Integration 권한 확인

Git Push 실패

❌ Error: Git push failed

해결:

  • GitHub Token 확인
  • 원격 저장소 권한 확인
  • 브랜치 확인

파일 구조

intelligence-agent/
├── SKILL.md (이 파일)
├── scripts/
│   ├── intelligence_pipeline.py (메인 파이프라인)
│   ├── collector.py (뉴스 수집)
│   ├── selector.py (AI 기사 선별)
│   ├── writer.py (블로그 글 작성)
│   ├── notion_publisher.py (Notion 발행)
│   ├── git_publisher_service.py (Git 발행)
│   ├── llm_client.py (GLM API 클라이언트)
│   ├── llm_client_async.py (비동기 GLM 클라이언트)
│   ├── prompt_manager.py (프롬프트 관리)
│   ├── prompts.yaml (프롬프트 템플릿)
│   ├── models.py (데이터 모델)
│   ├── utils.py (유틸리티)
│   ├── config.py (설정)
│   └── requirements.txt (의존성)
└── references/
    ├── architecture.md (상세 아키텍처)
    ├── prompts_guide.md (프롬프트 가이드)
    └── api_reference.md (API 레퍼런스)

환경 변수

필수

GLM_API_KEY          # GLM-4.7 API 키
NOTION_API_KEY       # Notion API 키
NOTION_DATABASE_ID   # Notion 데이터베이스 ID

선택사항

GITHUB_TOKEN         # GitHub 개인 액세스 토큰
GITHUB_BLOG_REPO     # GitHub 블로그 저장소 (username/repo)
BLOG_LOCAL_PATH      # 로컬 블로그 경로

테스트

전체 파이프라인 테스트

python3 test_full_pipeline.py

Mermaid 다이어그램 테스트

python3 test_mermaid_fix.py

참고자료

리소스

scripts/

원본 저장소의 모든 Python 스크립트 포함:

  • intelligence_pipeline.py - 전체 파이프라인 실행
  • collector.py - 뉴스 수집기
  • selector.py - AI 기사 선별
  • writer.py - 블로그 글 작성
  • notion_publisher.py - Notion 발행
  • git_publisher_service.py - Git 발행
  • llm_client.py - GLM API 클라이언트
  • prompts.yaml - 프롬프트 템플릿

references/

  • architecture.md - 상세 아키텍처 설명
  • prompts_guide.md - 프롬프트 작성 가이드
  • api_reference.md - API 레퍼런스

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs