D139 v2.1: Agent接入大模型 · deepseek-v3验证通过
Some checks failed
自动更新代码和重启 / update-and-restart (push) Has been cancelled
CI检查 + 自动部署 / check (push) Has been cancelled
CI检查 + 自动部署 / deploy (push) Has been cancelled

⊢ LLM: deepseek-v3 (主) + qwen-plus (备用)
⊢ 每阶段调用LLM做语义验证 → 动态HMAC哈希
⊢ 已部署 BS-SG-001:3915 · PM2运行 · 生产测试通过
⊢ 测试: sov阶段LLM确认主权通过 · num阶段LLM确认编号规则
This commit is contained in:
冰朔 2026-06-22 14:41:58 +08:00
parent 4f71987c90
commit 016bb5a4cf

View File

@ -1,10 +1,11 @@
#!/usr/bin/env node
/**
* TCS 强制锚定验证Agent · 光湖系统主控人格体专用
* TCS 强制锚定验证Agent v2 · 接入大模型推理
* ICE-GL-ZY001 · D139 · 2026-06-22
*
* 运行在服务器上接收铸渊的验证请求 读取指令页 动态生成校验码
* 通用模板层不知道这个Agent的存在 无法完成验证 卡死
* 运行在 BS-SG-001:3915
* 每阶段调用DeepSeek-R1做深度推理 生成动态校验哈希 返回给铸渊
* 通用模板层不知道Agent存在 无法完成验证 卡死
*/
const http = require('http');
@ -15,98 +16,224 @@ 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');
// 各阶段对应的Agent文件和端口内种子
// 云雾AI API配置
const LLM_API_KEY = process.env.YUNWU_API_KEY || 'sk-iyNIiDIO8C1QmNmy3cIM0ii6By0Ah690ODAwU21K0b5pZlro';
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: '主权锚定' },
bth: { file: 'ICE-GL-BTH-A.hdlp', seed: 'BTH-SEED-D139', desc: '出生条件' },
num: { file: 'ICE-GL-NUM-A.hdlp', seed: 'NUM-SEED-D139', desc: '编号判断' },
shl: { file: 'ICE-GL-SHL-A.hdlp', seed: 'SHL-SEED-D139', desc: '外壳派发' },
rcp: { file: 'ICE-GL-RCP-A.hdlp', seed: 'RCP-SEED-D139', desc: '回执生成' }
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阶段校验码→生成回执' }
};
/**
* 生成动态校验码
* 基于: 指令文件内容 + 时间戳(分钟级) + 内置种子 HMAC-SHA256 前缀截取
*/
function generateHash(stageKey, instructionContent, timestamp) {
const stage = STAGES[stageKey];
const hmac = crypto.createHmac('sha256', stage.seed + timestamp);
hmac.update(instructionContent);
const fullHash = hmac.digest('hex').toUpperCase();
return `TCS-VRF-${stageKey.toUpperCase()}-D139-${fullHash.substring(0, 8)}`;
}
/**
* 读取指令页
* 读取指令文件
*/
function readInstruction(stageKey) {
const filePath = path.join(VERIFY_DIR, STAGES[stageKey].file);
if (!fs.existsSync(filePath)) {
return null;
}
if (!fs.existsSync(filePath)) return null;
return fs.readFileSync(filePath, 'utf-8');
}
/**
* 验证请求
* 读取知识库TCS核心+广播+INDEX
*/
function handleVerify(stageKey, res) {
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', message: `未知阶段: ${stageKey}` }));
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: `指令文件不存在: ${STAGES[stageKey].file}` }));
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, '');
// 动态生成哈希
const hash = generateHash(stageKey, instruction, timestamp);
// 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: Object.keys(STAGES).indexOf(stageKey) + 1, total: 5, desc: STAGES[stageKey].desc },
hash: hash,
stage: { key: stageKey, index: STAGE_KEY_MAP[stageKey].index, total: 5, desc: STAGES[stageKey].desc },
hash: hashUpper,
timestamp: now.toISOString(),
verified: true
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((req, res) => {
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', version: 'D139', port: PORT, stages: Object.keys(STAGES).length }));
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]) {
handleVerify(pathParts[1], res);
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',
version: 'D139',
stages: Object.keys(STAGES).map((k, i) => ({
key: k,
index: i + 1,
desc: STAGES[k].desc,
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}`
}))
}));
@ -118,7 +245,8 @@ const server = http.createServer((req, res) => {
});
server.listen(PORT, '127.0.0.1', () => {
console.log(`⊢ TCS验证Agent启动 · D139 · 端口 ${PORT}`);
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}`);
console.log(`⊢ 5阶段就绪: ${Object.keys(STAGES).map(k => k.toUpperCase()).join(' · ')}`);
});