mirror of
https://github.com/agentscope-ai/ReMe.git
synced 2026-08-28 05:25:04 +00:00
Some checks failed
Pre-commit / run (ubuntu-latest) (push) Has been cancelled
Tests ReMe / Unit Tests - py3.11 (push) Has been cancelled
Tests ReMe / Unit Tests - py3.12 (push) Has been cancelled
Tests ReMe / Unit Tests - py3.13 (push) Has been cancelled
Windows Smoke / CLI smoke - py3.11 (push) Has been cancelled
* feat(daily-paper): add daily paper cookbook workflow with schema and tests - Introduce daily paper schema types (DailyBriefOutput, PaperInfo, PaperNoteOutput, etc.) - Create daily paper cookbook module with analyze, collect, digest, rank, and select steps - Add cookbook entry point and integrate into main steps module - Replace job config export with daily brief output in schema exports - Add comprehensive unit tests covering pipeline, filtering, and output generation - Update dependencies including openai-codex and pypdf packages - Configure standalone daily paper cron job with proper scheduling and routing * test(daily_paper): update tests to use Claude Code wrapper exclusively - Add test to verify web search is disallowed by default in Claude Code - Update imports to include DailyBriefOutput, PaperNoteOutput, and PaperSelection schemas - Change test name from standalone_config_has_backend_split to reflect Claude Code only usage - Remove default agent wrapper and configure all steps to use Claude Code wrapper - Rename select_wrapper to cc_wrapper for clarity and consistency - Remove duplicate Claude Code wrapper initialization - Update test assertions to verify output schema usage matches expected sequence - Remove unused as_llm component from standalone configuration test * refactor(agent-wrapper): simplify skill resolution logic across all wrappers - Replace duplicate skill resolution code with centralized _resolve_project_skills method - Add project_path property with configurable relative path resolution - Introduce proper validation for skill names and directory existence - Change Codex wrapper to use project_path instead of workspace_path for skills - Add SKILL.md requirement validation for project skills - Remove redundant skill processing logic from individual wrappers * feat(daily_paper): add daily paper workflow with PDF analysis and brief generation - Implement shared state management and file helpers for daily-paper steps - Add PDF download and text extraction capabilities with arXiv integration - Create paper collection step with Hugging Face weekly/monthly rankings - Build ranking system using reciprocal-rank fusion with memory keyword scoring - Add Claude Code integration for paper analysis and detailed note generation - Implement digest step to create final five-minute brief from detailed notes - Add configuration for standalone daily cookbook application with cron scheduling - Create typed schema for paper information, selection, and output formats - Add atomic file writing with temporary file safety mechanisms - Implement exclusion logic for previously recommended papers and daily filters * feat(daily_paper): add DingTalk notification integration and enhance logging - Integrate DingTalk markdown send step to notify groups about daily paper briefs - Add comprehensive logging throughout daily paper workflow including start/finish events - Update daily paper analysis prompt to include code repository context requirement - Configure DingTalk notification in daily_cookbook.yaml with app credentials - Add dingtalk-stream dependency for proactive message API integration - Enhance daily paper README with DingTalk notification section and updated flow chart - Implement detailed logging for each step including paper processing and agent calls - Add test coverage for DingTalk markdown sending functionality and configuration - Update pre-commit config to exclude skills directory from checks - Add .claude/skills to gitignore for local development environment * refactor(dingtalk): move dingtalk_stream import to local scope and improve code safety - Moved global dingtalk_stream import to local scope in send.py to avoid eager loading - Added dynamic import with error handling for optional dependency cases - Updated test suite to verify lazy loading behavior works correctly - Fixed markdown title generation by using safe variable naming in wait.py - Enhanced test coverage for arxiv PDF download caching functionality - Updated application context initialization with proper resource directory configuration - Modified paper metadata to include source PDF path reference in output files * refactor(daily_paper): remove manifest system and store selection metadata in digest files - Remove JSON manifest creation and storage functionality - Store selection data directly in digest file frontmatter instead of separate manifest files - Add load_saved_selection method to rebuild selection from digest and paper-note metadata - Update README documentation to reflect new cookbook workflow architecture - Modify test cases to verify selection metadata in digest files instead of manifest JSON - Remove unused json import from multiple daily paper modules - Integrate PaperSelection schema for proper data validation in stored metadata * docs(daily_paper): add bilingual cookbook guides
109 lines
3.5 KiB
YAML
109 lines
3.5 KiB
YAML
app_name: ReMe Daily Cookbook
|
|
workspace_dir: ${DAILY_PAPER_WORKSPACE_DIR:-.reme}
|
|
timezone: Asia/Shanghai
|
|
language: zh
|
|
|
|
# This is a standalone application config. It intentionally does not inherit
|
|
# default.yaml and listens on a separate port so it can run beside ReMe.
|
|
service:
|
|
backend: http
|
|
host: ${DAILY_PAPER_HOST:-127.0.0.1}
|
|
port: ${DAILY_PAPER_PORT:-8001}
|
|
|
|
jobs:
|
|
daily_paper:
|
|
backend: base
|
|
description: "Build detailed readings and a five-minute brief from Hugging Face weekly/monthly papers."
|
|
candidate_limit: &candidate_limit 20
|
|
memory_reserve: &memory_reserve 5
|
|
top_k: &top_k 3
|
|
rrf_k: &rrf_k 60
|
|
weekly_weight: &weekly_weight 0.7
|
|
history_days: &history_days 30
|
|
hf_timeout: &hf_timeout 30
|
|
hf_max_retries: &hf_max_retries 3
|
|
pdf_timeout: &pdf_timeout 90
|
|
max_pdf_bytes: &max_pdf_bytes 52428800
|
|
max_pdf_pages: &max_pdf_pages 80
|
|
max_pdf_chars: &max_pdf_chars 240000
|
|
parameters:
|
|
type: object
|
|
properties:
|
|
date:
|
|
type: string
|
|
description: "Run date in YYYY-MM-DD; empty means today in Asia/Shanghai."
|
|
default: ""
|
|
force:
|
|
type: boolean
|
|
description: "Regenerate even when that day's final brief already exists."
|
|
default: false
|
|
top_k:
|
|
type: integer
|
|
description: "Number of papers selected by Claude Code."
|
|
default: 3
|
|
weekly_weight:
|
|
type: number
|
|
description: "Weekly contribution in reciprocal-rank fusion."
|
|
default: 0.7
|
|
history_days:
|
|
type: integer
|
|
description: "Prior recommendation window excluded by arXiv ID."
|
|
default: 30
|
|
steps: &daily_paper_steps
|
|
- backend: daily_paper_collect_step
|
|
- backend: daily_paper_rank_step
|
|
- backend: daily_paper_select_step
|
|
agent_wrapper: claude_code
|
|
- backend: daily_paper_analyze_step
|
|
agent_wrapper: claude_code
|
|
- backend: daily_paper_digest_step
|
|
agent_wrapper: claude_code
|
|
- backend: dingtalk_markdown_send_step
|
|
input_mapping:
|
|
daily_paper_digest_path: markdown_path
|
|
app_key: ${DINGTALK_APP_KEY:-}
|
|
app_secret: ${DINGTALK_APP_SECRET:-}
|
|
robot_code: ${DINGTALK_ROBOT_CODE:-}
|
|
conversation_ids: ${DINGTALK_CONVERSATION_IDS:-}
|
|
title: ReMe Daily Paper
|
|
timeout: 15
|
|
|
|
daily_paper_cron:
|
|
backend: cron
|
|
cron: "0 8 * * *"
|
|
candidate_limit: *candidate_limit
|
|
memory_reserve: *memory_reserve
|
|
top_k: *top_k
|
|
rrf_k: *rrf_k
|
|
weekly_weight: *weekly_weight
|
|
history_days: *history_days
|
|
hf_timeout: *hf_timeout
|
|
hf_max_retries: *hf_max_retries
|
|
pdf_timeout: *pdf_timeout
|
|
max_pdf_bytes: *max_pdf_bytes
|
|
max_pdf_pages: *max_pdf_pages
|
|
max_pdf_chars: *max_pdf_chars
|
|
steps: *daily_paper_steps
|
|
|
|
dingtalk_wait:
|
|
backend: background
|
|
supervisor: true
|
|
close_timeout: 10
|
|
steps:
|
|
- backend: dingtalk_wait_step
|
|
agent_wrapper: claude_code
|
|
app_key: ${DINGTALK_APP_KEY:-}
|
|
app_secret: ${DINGTALK_APP_SECRET:-}
|
|
robot_code: ${DINGTALK_ROBOT_CODE:-}
|
|
card_update_interval: 1.0
|
|
worker_count: 4
|
|
|
|
components:
|
|
agent_wrapper:
|
|
claude_code:
|
|
backend: claude_code
|
|
project_path: ${DAILY_PAPER_PROJECT_PATH:-..}
|
|
model: ${CLAUDE_CODE_MODEL_NAME:-qwen3.7-max}
|
|
api_key: ${CLAUDE_CODE_API_KEY:-}
|
|
base_url: ${CLAUDE_CODE_BASE_URL:-https://dashscope.aliyuncs.com/apps/anthropic}
|
|
permission_mode: bypassPermissions
|