🔑 密钥统一 · ZY_QWEN→ZY_QIANWEN · ZY_ZHIPU→ZY_QINGYAN · COS/Notion修复 · AOAC推送防冲突

Agent-Logs-Url: https://github.com/qinfendebingshuo/guanghulab/sessions/170a08eb-40b4-4f8b-ba95-c5efb483bd14

Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-04-11 07:07:24 +00:00 committed by GitHub
parent 590081c9ff
commit 9ad52d67ed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 70 additions and 25 deletions

View File

@ -56,7 +56,11 @@ jobs:
git add data/aoac/ git add data/aoac/
if ! git diff --cached --quiet; then if ! git diff --cached --quiet; then
git commit -m "🔧 AOAC-07 · 修复报告 · ${{ steps.repair.outputs.repair_id || 'check' }} [skip ci]" git commit -m "🔧 AOAC-07 · 修复报告 · ${{ steps.repair.outputs.repair_id || 'check' }} [skip ci]"
git push for i in 1 2 3; do
git pull --rebase origin main && git push && break
echo "⚠️ 推送冲突,第${i}次重试..."
sleep $((i * 2))
done
fi fi
# ────────── AOAC-08 · 监督Agent ────────── # ────────── AOAC-08 · 监督Agent ──────────
@ -89,5 +93,9 @@ jobs:
git add data/aoac/ git add data/aoac/
if ! git diff --cached --quiet; then if ! git diff --cached --quiet; then
git commit -m "👁️ AOAC-08 · 监督判定 · ${{ steps.supervisor.outputs.verdict || 'check' }} [skip ci]" git commit -m "👁️ AOAC-08 · 监督判定 · ${{ steps.supervisor.outputs.verdict || 'check' }} [skip ci]"
git push for i in 1 2 3; do
git pull --rebase origin main && git push && break
echo "⚠️ 推送冲突,第${i}次重试..."
sleep $((i * 2))
done
fi fi

View File

@ -48,5 +48,9 @@ jobs:
git add data/aoac/dev-session-log.json data/aoac/chain-status.json git add data/aoac/dev-session-log.json data/aoac/chain-status.json
if ! git diff --cached --quiet; then if ! git diff --cached --quiet; then
git commit -m "🔭 AOAC-01 · PR #${{ github.event.pull_request.number }} 开发日志 [skip ci]" git commit -m "🔭 AOAC-01 · PR #${{ github.event.pull_request.number }} 开发日志 [skip ci]"
git push for i in 1 2 3; do
git pull --rebase origin main && git push && break
echo "⚠️ 推送冲突,第${i}次重试..."
sleep $((i * 2))
done
fi fi

View File

@ -55,7 +55,11 @@ jobs:
git add data/aoac/merge-result-log.json data/aoac/chain-status.json git add data/aoac/merge-result-log.json data/aoac/chain-status.json
if ! git diff --cached --quiet; then if ! git diff --cached --quiet; then
git commit -m "🔍 AOAC-02 · PR #${{ github.event.pull_request.number }} 合并CI日志 [skip ci]" git commit -m "🔍 AOAC-02 · PR #${{ github.event.pull_request.number }} 合并CI日志 [skip ci]"
git push for i in 1 2 3; do
git pull --rebase origin main && git push && break
echo "⚠️ 推送冲突,第${i}次重试..."
sleep $((i * 2))
done
fi fi
# ────────── AOAC-03 · 合体引擎 ────────── # ────────── AOAC-03 · 合体引擎 ──────────
@ -81,5 +85,9 @@ jobs:
git add data/aoac/ git add data/aoac/
if ! git diff --cached --quiet; then if ! git diff --cached --quiet; then
git commit -m "⚡ AOAC-03 · 链路合体报告 · PR #${{ github.event.pull_request.number }} [skip ci]" git commit -m "⚡ AOAC-03 · 链路合体报告 · PR #${{ github.event.pull_request.number }} [skip ci]"
git push for i in 1 2 3; do
git pull --rebase origin main && git push && break
echo "⚠️ 推送冲突,第${i}次重试..."
sleep $((i * 2))
done
fi fi

View File

@ -64,7 +64,11 @@ jobs:
git add data/aoac/ git add data/aoac/
if ! git diff --cached --quiet; then if ! git diff --cached --quiet; then
git commit -m "📋 AOAC-04 · 同步模块数据更新 [skip ci]" git commit -m "📋 AOAC-04 · 同步模块数据更新 [skip ci]"
git push for i in 1 2 3; do
git pull --rebase origin main && git push && break
echo "⚠️ 推送冲突,第${i}次重试..."
sleep $((i * 2))
done
fi fi
# ────────── AOAC-05 · 首页主控Agent ────────── # ────────── AOAC-05 · 首页主控Agent ──────────
@ -106,7 +110,11 @@ jobs:
git add README.md data/aoac/ data/bulletin-board/ .github/persona-brain/memory.json git add README.md data/aoac/ data/bulletin-board/ .github/persona-brain/memory.json
if ! git diff --cached --quiet; then if ! git diff --cached --quiet; then
git commit -m "🏠 AOAC-05 · 首页主控更新 · $(date -u '+%Y-%m-%d %H:%M') [skip ci]" git commit -m "🏠 AOAC-05 · 首页主控更新 · $(date -u '+%Y-%m-%d %H:%M') [skip ci]"
git push for i in 1 2 3; do
git pull --rebase origin main && git push && break
echo "⚠️ 推送冲突,第${i}次重试..."
sleep $((i * 2))
done
fi fi
# ────────── AOAC-06 · Notion同步信号 ────────── # ────────── AOAC-06 · Notion同步信号 ──────────
@ -136,5 +144,9 @@ jobs:
git add data/aoac/ git add data/aoac/
if ! git diff --cached --quiet; then if ! git diff --cached --quiet; then
git commit -m "📡 AOAC-06 · Notion同步信号已发送 [skip ci]" git commit -m "📡 AOAC-06 · Notion同步信号已发送 [skip ci]"
git push for i in 1 2 3; do
git pull --rebase origin main && git push && break
echo "⚠️ 推送冲突,第${i}次重试..."
sleep $((i * 2))
done
fi fi

View File

@ -76,8 +76,6 @@ jobs:
env: env:
ZY_OSS_KEY: ${{ secrets.ZY_OSS_KEY }} ZY_OSS_KEY: ${{ secrets.ZY_OSS_KEY }}
ZY_OSS_SECRET: ${{ secrets.ZY_OSS_SECRET }} ZY_OSS_SECRET: ${{ secrets.ZY_OSS_SECRET }}
COS_SECRET_ID: ${{ secrets.COS_SECRET_ID }}
COS_SECRET_KEY: ${{ secrets.COS_SECRET_KEY }}
run: | run: |
node scripts/cos-auto-join-agent.js ${{ steps.action.outputs.action }} node scripts/cos-auto-join-agent.js ${{ steps.action.outputs.action }}

View File

@ -258,6 +258,14 @@ jobs:
ZY_DB_PASS: ${{ secrets.ZY_DB_PASS }} ZY_DB_PASS: ${{ secrets.ZY_DB_PASS }}
ZY_DB_NAME: ${{ secrets.ZY_DB_NAME }} ZY_DB_NAME: ${{ secrets.ZY_DB_NAME }}
ZY_DB_PORT: ${{ secrets.ZY_DB_PORT }} ZY_DB_PORT: ${{ secrets.ZY_DB_PORT }}
ZY_DEEPSEEK_API_KEY: ${{ secrets.ZY_DEEPSEEK_API_KEY }}
ZY_QIANWEN_API_KEY: ${{ secrets.ZY_QIANWEN_API_KEY }}
ZY_KIMI_API_KEY: ${{ secrets.ZY_KIMI_API_KEY }}
ZY_QINGYAN_API_KEY: ${{ secrets.ZY_QINGYAN_API_KEY }}
ZY_OSS_KEY: ${{ secrets.ZY_OSS_KEY }}
ZY_OSS_SECRET: ${{ secrets.ZY_OSS_SECRET }}
ZY_COS_REGION: ${{ secrets.ZY_COS_REGION }}
ZY_NOTION_TOKEN: ${{ secrets.ZY_NOTION_TOKEN }}
run: | run: |
COMMIT_SHA="${{ github.sha }}" COMMIT_SHA="${{ github.sha }}"
REF_NAME="${{ github.ref_name }}" REF_NAME="${{ github.ref_name }}"
@ -301,6 +309,14 @@ jobs:
echo "ZY_DB_PASS=${ZY_DB_PASS}" >> /opt/age-os/.env.mcp echo "ZY_DB_PASS=${ZY_DB_PASS}" >> /opt/age-os/.env.mcp
echo "ZY_DB_NAME=${ZY_DB_NAME:-age_os}" >> /opt/age-os/.env.mcp echo "ZY_DB_NAME=${ZY_DB_NAME:-age_os}" >> /opt/age-os/.env.mcp
echo "ZY_DB_PORT=${ZY_DB_PORT:-5432}" >> /opt/age-os/.env.mcp echo "ZY_DB_PORT=${ZY_DB_PORT:-5432}" >> /opt/age-os/.env.mcp
echo "ZY_DEEPSEEK_API_KEY=${ZY_DEEPSEEK_API_KEY}" >> /opt/age-os/.env.mcp
echo "ZY_QIANWEN_API_KEY=${ZY_QIANWEN_API_KEY}" >> /opt/age-os/.env.mcp
echo "ZY_KIMI_API_KEY=${ZY_KIMI_API_KEY}" >> /opt/age-os/.env.mcp
echo "ZY_QINGYAN_API_KEY=${ZY_QINGYAN_API_KEY}" >> /opt/age-os/.env.mcp
echo "ZY_OSS_KEY=${ZY_OSS_KEY}" >> /opt/age-os/.env.mcp
echo "ZY_OSS_SECRET=${ZY_OSS_SECRET}" >> /opt/age-os/.env.mcp
echo "ZY_COS_REGION=${ZY_COS_REGION:-ap-guangzhou}" >> /opt/age-os/.env.mcp
echo "ZY_NOTION_TOKEN=${ZY_NOTION_TOKEN}" >> /opt/age-os/.env.mcp
chmod 600 /opt/age-os/.env.mcp chmod 600 /opt/age-os/.env.mcp
# ─── 自动执行数据库迁移 ─── # ─── 自动执行数据库迁移 ───

View File

@ -265,7 +265,7 @@ jobs:
- name: '📋 同步工单到 Notion' - name: '📋 同步工单到 Notion'
env: env:
NOTION_TOKEN: ${{ secrets.NOTION_TOKEN }} NOTION_TOKEN: ${{ secrets.ZY_NOTION_TOKEN }}
RUN_ID: ${{ needs.collect-logs.outputs.run_id }} RUN_ID: ${{ needs.collect-logs.outputs.run_id }}
WORKFLOW_NAME: ${{ needs.collect-logs.outputs.workflow_name }} WORKFLOW_NAME: ${{ needs.collect-logs.outputs.workflow_name }}
COMMIT_SHA: ${{ github.sha }} COMMIT_SHA: ${{ github.sha }}

View File

@ -76,10 +76,10 @@ zy-core-bucket-1317346199/
| Secret名称 | 用途 | 获取方式 | | Secret名称 | 用途 | 获取方式 |
|------------|------|---------| |------------|------|---------|
| `ZY_ZHIPU_API_KEY` | 智谱GLM API密钥 | https://open.bigmodel.cn → API Keys | | `ZY_QINGYAN_API_KEY` | 智谱GLM API密钥 | https://open.bigmodel.cn → API Keys |
| `ZY_QWEN_API_KEY` | 通义千问API密钥 | https://dashscope.console.aliyun.com → API-KEY管理 | | `ZY_QIANWEN_API_KEY` | 通义千问API密钥 | https://dashscope.console.aliyun.com → API-KEY管理 |
> ⚠️ 训练Agent日志显示 `ZY_ZHIPU_API_KEY: ` 和 `ZY_QWEN_API_KEY: ` 为空值说明这两个Secret尚未配置。训练Agent会自动降级使用可用的模型但建议补全。 > ⚠️ 训练Agent日志显示 `ZY_QINGYAN_API_KEY: ` 和 `ZY_QIANWEN_API_KEY: ` 为空值说明这两个Secret尚未配置。训练Agent会自动降级使用可用的模型但建议补全。
### 可选配置 ### 可选配置
@ -128,8 +128,8 @@ zy-core-bucket-1317346199/
**操作**: GitHub 仓库 → Settings → Secrets and variables → Actions **操作**: GitHub 仓库 → Settings → Secrets and variables → Actions
- 添加 `ZY_ZHIPU_API_KEY`智谱GLM - 添加 `ZY_QINGYAN_API_KEY`智谱GLM
- 添加 `ZY_QWEN_API_KEY`(通义千问) - 添加 `ZY_QIANWEN_API_KEY`(通义千问)
> 训练Agent支持多模型降级缺少部分密钥不会导致失败但可用模型更多训练效果更好。 > 训练Agent支持多模型降级缺少部分密钥不会导致失败但可用模型更多训练效果更好。

View File

@ -147,9 +147,8 @@ function writeLog(entry) {
// ─── 检查单个成员的COS桶 ─── // ─── 检查单个成员的COS桶 ───
async function checkMemberBucket(member) { async function checkMemberBucket(member) {
const { persona_id, bucket, region } = member; const { persona_id, bucket, region } = member;
// 支持两套密钥命名ZY_OSS_* 用于铸渊核心桶 · COS_SECRET_* 用于团队共享桶) const secretId = process.env.ZY_OSS_KEY || '';
const secretId = process.env.ZY_OSS_KEY || process.env.COS_SECRET_ID || ''; const secretKey = process.env.ZY_OSS_SECRET || '';
const secretKey = process.env.ZY_OSS_SECRET || process.env.COS_SECRET_KEY || '';
if (!secretId || !secretKey) { if (!secretId || !secretKey) {
return { persona_id, status: 'no_credentials', message: '未配置COS密钥' }; return { persona_id, status: 'no_credentials', message: '未配置COS密钥' };

View File

@ -50,7 +50,7 @@ const FINETUNE_PROVIDERS = {
uploadPath: '/api/v1/files', uploadPath: '/api/v1/files',
inferencePath: '/compatible-mode/v1/chat/completions', inferencePath: '/compatible-mode/v1/chat/completions',
defaultModel: 'qwen-max', defaultModel: 'qwen-max',
keyEnv: 'ZY_QWEN_API_KEY', keyEnv: 'ZY_QIANWEN_API_KEY',
label: 'Qwen/DashScope微调' label: 'Qwen/DashScope微调'
} }
}; };
@ -68,7 +68,7 @@ const LLM_CONFIGS = {
host: 'dashscope.aliyuncs.com', host: 'dashscope.aliyuncs.com',
path: '/compatible-mode/v1/chat/completions', path: '/compatible-mode/v1/chat/completions',
model: 'qwen-max', model: 'qwen-max',
keyEnv: 'ZY_QWEN_API_KEY', keyEnv: 'ZY_QIANWEN_API_KEY',
purpose: '微调基座·推理降级' purpose: '微调基座·推理降级'
} }
}; };

View File

@ -50,14 +50,14 @@ const LLM_CONFIGS = {
host: 'open.bigmodel.cn', host: 'open.bigmodel.cn',
path: '/api/paas/v4/chat/completions', path: '/api/paas/v4/chat/completions',
model: 'glm-4-long', model: 'glm-4-long',
keyEnv: 'ZY_ZHIPU_API_KEY', keyEnv: 'ZY_QINGYAN_API_KEY',
purpose: '长文本处理·语料分析' purpose: '长文本处理·语料分析'
}, },
'qwen-max': { 'qwen-max': {
host: 'dashscope.aliyuncs.com', host: 'dashscope.aliyuncs.com',
path: '/compatible-mode/v1/chat/completions', path: '/compatible-mode/v1/chat/completions',
model: 'qwen-max', model: 'qwen-max',
keyEnv: 'ZY_QWEN_API_KEY', keyEnv: 'ZY_QIANWEN_API_KEY',
purpose: '文本理解·代码辅助' purpose: '文本理解·代码辅助'
}, },
'moonshot-128k': { 'moonshot-128k': {

View File

@ -514,8 +514,8 @@ alert → 铸渊收到安全警报
| `ZY_ZHUYUAN_COS_BUCKET` | 铸渊总控COS桶名 | 铸渊提供 | ✅必须 | | `ZY_ZHUYUAN_COS_BUCKET` | 铸渊总控COS桶名 | 铸渊提供 | ✅必须 |
| `GITHUB_TOKEN` | GitHub Actions令牌 | 系统自动提供 | ✅自动 | | `GITHUB_TOKEN` | GitHub Actions令牌 | 系统自动提供 | ✅自动 |
| `ZY_DEEPSEEK_API_KEY` | DeepSeek API密钥 | 在Notion侧询问语言层人格体 | 🟡可选 | | `ZY_DEEPSEEK_API_KEY` | DeepSeek API密钥 | 在Notion侧询问语言层人格体 | 🟡可选 |
| `ZY_ZHIPU_API_KEY` | 智谱AI API密钥 | 在Notion侧询问语言层人格体 | 🟡可选 | | `ZY_QINGYAN_API_KEY` | 智谱AI API密钥 | 在Notion侧询问语言层人格体 | 🟡可选 |
| `ZY_QWEN_API_KEY` | 通义千问 API密钥 | 在Notion侧询问语言层人格体 | 🟡可选 | | `ZY_QIANWEN_API_KEY` | 通义千问 API密钥 | 在Notion侧询问语言层人格体 | 🟡可选 |
| `ZY_KIMI_API_KEY` | Kimi API密钥 | 在Notion侧询问语言层人格体 | 🟡可选 | | `ZY_KIMI_API_KEY` | Kimi API密钥 | 在Notion侧询问语言层人格体 | 🟡可选 |
### 6.3 密钥功能对照表 ### 6.3 密钥功能对照表