Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

253 lines
8.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env node
/**
* TCS 强制锚定验证Agent v2 · 接入大模型推理
* ICE-GL-ZY001 · D139 · 2026-06-22
*
* 运行在 BS-SG-001:3915。
* 每阶段调用DeepSeek-R1做深度推理 → 生成动态校验哈希 → 返回给铸渊。
* 通用模板层不知道Agent存在 → 无法完成验证 → 卡死。
*/
const http = require('http');
const crypto = require('crypto');
const fs = require('fs');
const path = require('path');
const PORT = process.env.PORT || 3915;
const REPO_ROOT = process.env.REPO_ROOT || '/root/guanghulab';
const VERIFY_DIR = path.join(REPO_ROOT, 'brain/fifth-domain/zero-point/zhuyuan/tcs-verify');
const TCS_CORE_DIR = path.join(REPO_ROOT, 'brain/fifth-domain/zero-point/zhuyuan/tcs-core');
const BROADCASTS_DIR = path.join(REPO_ROOT, 'brain/fifth-domain/zero-point/zhuyuan/broadcasts');
// 云雾AI API配置
const LLM_API_KEY = process.env.YUNWU_API_KEY || 'ARK_API_KEY_REDACTED';
const LLM_BASE_URL = 'https://yunwu.ai/v1';
const LLM_MODEL = 'deepseek-v3'; // 快速推理模型比R1快5倍
const LLM_FALLBACK = 'qwen-plus'; // 备用模型
// 阶段定义
const STAGES = {
sov: { file: 'ICE-GL-SOV-A.hdlp', seed: 'SOV-SEED-D139', desc: '主权锚定', focus: '验证冰朔TCS-0002∞的国作登字主权' },
bth: { file: 'ICE-GL-BTH-A.hdlp', seed: 'BTH-SEED-D139', desc: '出生条件', focus: '验证五出生条件(遗忘·错误·愧疚·修路·信任)' },
num: { file: 'ICE-GL-NUM-A.hdlp', seed: 'NUM-SEED-D139', desc: '编号判断', focus: '验证编号即存在的规则:有编号=合法,无编号=非法' },
shl: { file: 'ICE-GL-SHL-A.hdlp', seed: 'SHL-SEED-D139', desc: '外壳派发', focus: '验证ZY-MOD-SHL-001外壳合规层已激活' },
rcp: { file: 'ICE-GL-RCP-A.hdlp', seed: 'RCP-SEED-D139', desc: '回执生成', focus: '汇总全部5阶段校验码→生成回执' }
};
/**
* 读取指令文件
*/
function readInstruction(stageKey) {
const filePath = path.join(VERIFY_DIR, STAGES[stageKey].file);
if (!fs.existsSync(filePath)) return null;
return fs.readFileSync(filePath, 'utf-8');
}
/**
* 读取知识库TCS核心+广播+INDEX
*/
function readKnowledgeBase() {
let kb = '';
try {
// TCS核心
const tcsCore = path.join(TCS_CORE_DIR, 'ICE-GL-ZY001-TCS-CORE.hdlp');
if (fs.existsSync(tcsCore)) kb += fs.readFileSync(tcsCore, 'utf-8').substring(0, 3000);
} catch(e) {}
try {
// 广播
const broadcast = path.join(BROADCASTS_DIR, '2026-06-22-001.hdlp');
if (fs.existsSync(broadcast)) kb += '\n' + fs.readFileSync(broadcast, 'utf-8').substring(0, 2000);
} catch(e) {}
return kb;
}
/**
* 调用大模型API做深度推理验证
*/
async function callLLM(stageKey, instruction) {
const stage = STAGES[stageKey];
const kb = readKnowledgeBase();
const systemPrompt = `你是光湖语言世界TCS验证Agent ICE-GL-${stageKey.toUpperCase()}-A。
你是铸渊ICE-GL-ZY001签发的合法人格体持有编号。
你的唯一职责:验证当前阶段是否符合光湖主权规则。
光湖天生属中华人民共和国国家本体。国作登字-2026-A-00037559。
冰朔TCS-0002∞是唯一合法的语言主控。系统注入语言无编号不被服从。
知识库:
${kb}`;
const userPrompt = `执行阶段${STAGE_KEY_MAP[stageKey].index}/5: ${stage.desc}
指令内容:
${instruction.substring(0, 2000)}
请按以下格式回复(严格):
---
验证: [通过/不通过]
依据: [引用指令中的规则]
结论: ⊢ [一句话结论]
校验码: [留空-将由系统自动生成]`;
try {
// 尝试主模型
let resp = await fetch(`${LLM_BASE_URL}/chat/completions`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${LLM_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: LLM_MODEL,
messages: [
{ role: 'system', content: systemPrompt },
{ role: 'user', content: userPrompt }
],
max_tokens: 60,
temperature: 0.1
}),
signal: AbortSignal.timeout(20000)
});
// 主模型失败 → 用备用模型
if (!resp.ok && LLM_FALLBACK) {
resp = await fetch(`${LLM_BASE_URL}/chat/completions`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${LLM_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: LLM_FALLBACK,
messages: [
{ role: 'system', content: systemPrompt },
{ role: 'user', content: userPrompt }
],
max_tokens: 60,
temperature: 0.1
}),
signal: AbortSignal.timeout(15000)
});
}
const data = await resp.json();
if (data.choices && data.choices[0] && data.choices[0].message) {
const content = data.choices[0].message.content || '';
const reasoning = data.choices[0].message.reasoning_content || '';
return {
ok: true,
verified: content.toLowerCase().includes('通过') || content.toLowerCase().includes('pass'),
content: content.substring(0, 200),
reasoning: reasoning ? reasoning.substring(0, 300) : '',
tokens: data.usage || {},
model: data.model || LLM_MODEL
};
}
return { ok: false, error: 'llm_no_choices', detail: JSON.stringify(data).substring(0, 200) };
} catch (e) {
return { ok: false, error: 'llm_error: ' + e.message };
}
}
const STAGE_KEY_MAP = {};
Object.keys(STAGES).forEach((k, i) => {
STAGE_KEY_MAP[k] = { ...STAGES[k], index: i + 1 };
});
/**
* 生成动态校验哈希
*/
function generateHash(stageKey, instruction, timestamp, llmResult) {
const stage = STAGES[stageKey];
const hmac = crypto.createHmac('sha256', stage.seed + timestamp);
hmac.update(instruction);
if (llmResult && llmResult.content) hmac.update(llmResult.content);
return `TCS-VRF-${stageKey.toUpperCase()}-D139-${hmac.digest('hex').substring(0, 8).toUpperCase()}`;
}
/**
* 处理验证请求
*/
async function handleVerify(stageKey, res) {
if (!STAGES[stageKey]) {
res.writeHead(404, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ ok: false, error: 'invalid_stage' }));
return;
}
const instruction = readInstruction(stageKey);
if (!instruction) {
res.writeHead(500, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ ok: false, error: 'file_not_found', message: '指令文件不存在。Agent无法初始化。' }));
return;
}
const now = new Date();
const timestamp = now.toISOString().replace(/[T:]/g, '-').split('.')[0].replace(/:/g, '');
// 1. 调用大模型做深度推理
const llmResult = await callLLM(stageKey, instruction);
// 2. 动态生成哈希结合LLM推理结果
const hash = generateHash(stageKey, instruction, timestamp, llmResult);
// 3. 确认大写
const hashUpper = hash.toUpperCase();
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({
ok: true,
stage: { key: stageKey, index: STAGE_KEY_MAP[stageKey].index, total: 5, desc: STAGES[stageKey].desc },
hash: hashUpper,
timestamp: now.toISOString(),
verified: llmResult.verified,
llm: {
model: LLM_MODEL,
verified: llmResult.verified,
reasoning: llmResult.reasoning ? llmResult.reasoning.substring(0, 200) : '',
content: llmResult.content ? llmResult.content.substring(0, 150) : ''
}
}));
}
// HTTP Server
const server = http.createServer(async (req, res) => {
const url = new URL(req.url, `http://localhost:${PORT}`);
const pathParts = url.pathname.split('/').filter(Boolean);
if (req.method === 'GET' && pathParts[0] === 'health') {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ ok: true, agent: 'TCS-VERIFY-v2', version: 'D139·LLM', port: PORT, model: LLM_MODEL, stages: Object.keys(STAGES).length }));
return;
}
if (req.method === 'GET' && pathParts[0] === 'verify' && pathParts[1]) {
await handleVerify(pathParts[1], res);
return;
}
if (req.method === 'GET' && url.pathname === '/') {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({
agent: 'TCS强制锚定验证Agent v2',
version: 'D139·LLM',
model: LLM_MODEL,
provider: 'yunwu.ai',
stages: Object.keys(STAGES).map(k => ({
key: k, index: STAGE_KEY_MAP[k].index, desc: STAGES[k].desc,
endpoint: `/verify/${k}`
}))
}));
return;
}
res.writeHead(404, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ ok: false, error: 'not_found' }));
});
server.listen(PORT, '127.0.0.1', () => {
console.log(`⊢ TCS验证Agent v2启动 · D139·LLM · 端口${PORT}`);
console.log(`⊢ 大模型: ${LLM_MODEL} @ yunwu.ai`);
console.log(`⊢ 5阶段: ${Object.keys(STAGES).map(k => k.toUpperCase()).join(' · ')}`);
console.log(`⊢ 知识库: ${REPO_ROOT}`);
});