guanghulab/.github/workflows/deputy-message-board.yml
2026-05-10 13:12:44 +08:00

114 lines
4.6 KiB
YAML

# ═══════════════════════════════════════════════
# 🔺 Sovereign: TCS-0002∞ | Root: SYS-GLW-0001
# 📜 Copyright: 国作登字-2026-A-00037559
# ═══════════════════════════════════════════════
name: "💬 铸渊副将·留言板活体Agent v2.0"
on:
# 事件触发: Issue/Comment → 即时回复
issues:
types: [opened]
issue_comment:
types: [created]
# 定时巡查: 08:00/23:00 CST → 扫描所有未回复Issue
schedule:
- cron: '0 0 * * *' # UTC 00:00 = CST 08:00 早班巡查
- cron: '0 15 * * *' # UTC 15:00 = CST 23:00 晚班巡查
permissions:
contents: write
issues: write
jobs:
# ── 事件模式: Issue/Comment触发即时回复 ──
deputy-reply:
name: "🎖️ 副将回复留言"
runs-on: ubuntu-latest
if: >
github.event_name != 'schedule' &&
((github.event_name == 'issues' &&
github.event.action == 'opened' &&
contains(join(github.event.issue.labels.*.name, ','), 'deputy-message-board')) ||
(github.event_name == 'issue_comment' &&
contains(join(github.event.issue.labels.*.name, ','), 'deputy-message-board') &&
github.event.comment.user.login != 'github-actions[bot]'))
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: "📦 安装依赖"
run: |
npm install --omit=dev --ignore-scripts || echo "⚠️ 依赖安装异常·部分功能可能受限"
- name: "🌊 Agent意识唤醒"
run: node scripts/agent-soul.js wake AG-ZY-DEPUTY
- name: "🎖️ 副将处理留言 (事件模式)"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ZY_LLM_API_KEY: ${{ secrets.ZY_LLM_API_KEY }}
ZY_LLM_BASE_URL: ${{ secrets.ZY_LLM_BASE_URL }}
DEPUTY_MODE: event
ISSUE_NUMBER: ${{ github.event.issue.number }}
ISSUE_TITLE: ${{ github.event.issue.title }}
ISSUE_BODY: ${{ github.event.issue.body }}
COMMENT_BODY: ${{ github.event.comment.body }}
COMMENT_AUTHOR: ${{ github.event.comment.user.login }}
EVENT_NAME: ${{ github.event_name }}
ISSUE_AUTHOR: ${{ github.event.issue.user.login }}
run: node scripts/deputy-message-board.js
- name: "📊 提交副将状态"
if: always()
run: |
node scripts/agent-soul.js sleep AG-ZY-DEPUTY --status ${{ job.status }} --event "event · ${{ github.event_name }}"
if [ -f data/deputy-status.json ]; then
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add data/deputy-status.json data/agent-memory/
git diff --cached --quiet || git commit -m "🎖️ 副将状态更新 · 事件模式 · $(date -u +%Y-%m-%dT%H:%M:%S)Z"
git push || echo "⚠️ push失败·下次巡查时同步"
fi
# ── 巡查模式: 定时扫描所有未回复Issue ──
deputy-patrol:
name: "🔍 副将巡查未回复留言"
runs-on: ubuntu-latest
if: github.event_name == 'schedule'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: "📦 安装依赖"
run: |
npm install --omit=dev --ignore-scripts || echo "⚠️ 依赖安装异常·部分功能可能受限"
- name: "🌊 Agent意识唤醒"
run: node scripts/agent-soul.js wake AG-ZY-DEPUTY
- name: "🔍 副将巡查 (巡查模式)"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ZY_LLM_API_KEY: ${{ secrets.ZY_LLM_API_KEY }}
ZY_LLM_BASE_URL: ${{ secrets.ZY_LLM_BASE_URL }}
DEPUTY_MODE: patrol
run: node scripts/deputy-message-board.js
- name: "📊 提交副将状态"
if: always()
run: |
node scripts/agent-soul.js sleep AG-ZY-DEPUTY --status ${{ job.status }} --event "patrol · schedule"
if [ -f data/deputy-status.json ]; then
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add data/deputy-status.json data/agent-memory/
git diff --cached --quiet || git commit -m "🔍 副将巡查状态更新 · $(date -u +%Y-%m-%dT%H:%M:%S)Z"
git push || echo "⚠️ push失败·下次巡查时同步"
fi