CAT: AI工具LVL: L5-ExtremeDATE: 2026-04-15

AI 工具实战:部署多 Agent 协作引擎,打造拒绝废话的“自我审查流水线”

单一的 AI 总会偷懒。用 PHP 搭建一个“打工人+无情总监”的双 Agent 对抗网络。让 AI 自己审核、打分、打回重写,直到输出完美的硬核文案再入库。

不要相信 AI 的第一次输出。在工业化生产中,没有“对抗”与“质检”的代码,产出的全都是工业垃圾。

1. 为什么你的 AI 依然有“塑料味”?

即使你用了极度严苛的结构化 Prompt,大模型在连续工作时依然会发生“退化”:它会不自觉地加入诸如“总而言之”、“不可思议”等廉价的感叹词。

解法:引入 Agent 对抗网络 (Actor-Critic 架构)。 我们要在服务器后台同时拉起两个 AI 进程:

2. 核心魔法:PHP 双核引擎对抗脚本

在你的服务器后台(比如和之前的 cyber_editor.php 放一起),新建一个 agent_director.php。它通过循环调用 API,在服务器内上演一场“剧本围读”。

<?php
// 书或术:双 Agent 对抗质检引擎 (agent_director.php)

$api_key = "sk-你的API密钥";
$api_url = "[https://api.openai.com/v1/chat/completions](https://api.openai.com/v1/chat/completions)";

// 封装一个基础的 API 调用函数
function call_llm($messages, $temperature = 0.7) {
    global $api_key, $api_url;
    $data = ["model" => "gpt-4o", "messages" => $messages, "temperature" => $temperature];
    $ch = curl_init($api_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json", "Authorization: Bearer $api_key"]);
    $response = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $response['choices'][0]['message']['content'];
}

$topic = "用博弈论解释为什么烂内容能充斥社交网络";

// ==========================================
// 🥊 第一回合:Agent A (初稿写手) 上场
// ==========================================
$writer_system = "你是一个极客编剧,请输出关于【{$topic}】的纪录片旁白。不要废话,语言冷酷。";
$messages_A = [
    ["role" => "system", "content" => $writer_system],
    ["role" => "user", "content" => "开始写初稿。"]
];
echo "🤖 Agent A 正在拼命写初稿...\n";
$draft = call_llm($messages_A, 0.8);

// ==========================================
// ⚖️ 第二回合:Agent B (无情总监) 质检
// ==========================================
$max_retries = 3; // 最多打回重写 3 次
$pass_score = 85; // 及格线

for ($i = 1; $i <= $max_retries; $i++) {
    $critic_system = "你是一个脾气暴躁、极度讨厌网络废话的硬核内容总监。
    请审核以下稿件。检查标准:1. 是否有废话;2. 逻辑是否够深;3. 听起来是否有压迫感。
    请直接在第一行输出打分(格式:【得分: XX】),第二行开始输出刻薄的修改意见。";

    $messages_B = [
        ["role" => "system", "content" => $critic_system],
        ["role" => "user", "content" => "这是初稿,请无情打分:\n" . $draft]
    ];

    echo "🧐 Agent B 正在进行第 {$i} 轮残酷审查...\n";
    $feedback = call_llm($messages_B, 0.2); // 低温度,确保评判标准严苛

    // 用正则提取分数
    preg_match('/【得分:\s*(\d+)】/', $feedback, $matches);
    $score = isset($matches[1]) ? intval($matches[1]) : 0;

    echo "📊 本轮得分:{$score} 分\n";
    echo "💬 总监意见:\n{$feedback}\n\n";

    if ($score >= $pass_score) {
        echo "✅ 质检通过!准许进入 FFmpeg 与 TTS 物理流水线。\n";
        break; // 跳出循环,保存稿件
    } else {
        echo "❌ 质检不合格!稿件已被打回。\n";
        if ($i == $max_retries) {
            echo "💀 重试次数耗尽,此选题作废,引擎已停止。\n";
            exit;
        }

        // ==========================================
        // 🔄 第三回合:Agent A 接收意见重写
        // ==========================================
        echo "🤖 Agent A 正在根据总监意见流泪修改...\n";
        $messages_A[] = ["role" => "assistant", "content" => $draft]; // 记录上一轮回答
        $messages_A[] = ["role" => "user", "content" => "总监打了低分,意见如下:\n{$feedback}\n请严格按照总监要求,彻底重写!"];
        $draft = call_llm($messages_A, 0.6);
    }
}

// 4. 将合格的最终稿件自动生成为 .md 文件
$filename = "auto-passed-" . time() . ".md";
file_put_contents(__DIR__ . "/sy/posts/ai-tools/" . $filename, $draft);
echo "🚀 终极硬核稿件已入库:{$filename}\n";
?>

3. 从流水线到“自动化黑客帝国”

不要小看这段不到 100 行的 PHP 代码。它实际上是 OpenAI 的 Swarm 或 微软 AutoGen 的极简底层逻辑。

以前,你是那个每天对着电脑挑错的“包工头”。 现在,你的服务器里不仅有了不知疲倦的工人(Agent A),还免费雇佣了一个绝对不会讲人情、标准比你还高的质检机器(Agent B)。

将它和你的 Crontab 定时任务结合,你不仅实现了 24 小时自动更新,你还实现了“质量的自动上锁”。只有经过机器左右互搏、反复绞杀留下的文字,才配出现在“书或术”里。