八:国产大模型 Agent 实战与高级推理模式

从OpenClaw到国产AI Agent:核心架构、演进路线与实战指南 AI Agent(智能体)是当前人工智能领域的关键技术方向,其核心原理在于通过大型语言模型(LLM)的推理与规划能力,驱动一个可感知环境、使用工具并执行复杂任务链的自主系统。这一架构通常基于ReAct(推理-执行)模式,使AI从被动的问答机转变为能主动解决问题的“数字员工”,其技术价值在于将大模型的强大认知能力与实际操作相结合,实现业务流程的自动化与智能化。在实际应用场景中,AI Agent可广泛应用于智能客服、数据分析、自动化办公、个人助理等多个领域。本文聚焦于Claw类AI Agent的演进,深入解析了 阅读详情

系列第八篇:国产大模型 Agent 实战与高级推理模式

前言

前七篇文章中,我们的示例代码都以 OpenAI GPT-4o 为底座模型。但在国内企业落地时,几乎所有团队都面临三个现实约束:

  1. 合规性:数据出境限制,敏感行业(能源、金融、政务)必须使用国产模型
  2. 成本:GPT-4o 的 Token 单价是国产模型的 3~5 倍
  3. 延迟:调用海外 API 的网络延迟不可忽视

好消息是,2025~2026 年国产大模型的能力已经大幅提升,Tool Calling、长上下文、Function Calling 等能力全面对齐国际水平。

本文将覆盖:四大国产模型的 Agent 适配实战 + 三种高级推理模式的原理与实现。


一、国产大模型 Agent 能力横评

1.1 选型维度

选择 Agent 底座模型,不能只看"跑分",更要看与 Agent 场景的适配度。核心维度:

维度为什么重要
Tool Calling 能力Agent 的核心就是工具调用,模型必须能稳定输出结构化的函数调用
指令遵循度Agent 的 System Prompt 通常很长很复杂,模型必须严格遵守每一条规则
上下文窗口多轮对话 + 工具返回 + RAG 注入,上下文可能轻松超过 8K tokens
推理速度Agent 场景一个请求可能触发 3~5 次 LLM 调用,延迟会叠加
价格生产环境日均数千次调用,单价差 1 分钱,月成本差数千

1.2 四大主流国产模型对比(2026 Q3)

┌──────────────────────────────────────────────────────────────────────┐
│               国产大模型 Agent 能力横评(2026 Q3)                    │
│                                                                      │
│  维度          通义千问       智谱GLM        DeepSeek      文心一言    │
│                Qwen2.5-72B   GLM-4-Plus    DeepSeek-V3   ERNIE-4.5  │
│  ─────────────────────────────────────────────────────────────        │
│  Tool Calling  ★★★★★        ★★★★☆        ★★★★★       ★★★★☆       │
│  指令遵循       ★★★★☆        ★★★★☆        ★★★★★       ★★★★☆       │
│  上下文窗口     128K          128K          128K          128K        │
│  推理速度       快             中             快             中        │
│  Input价格     ¥2/1M         ¥5/1M         ¥2/1M         ¥30/1M     │
│  Output价格    ¥6/1M         ¥20/1M        ¥8/1M         ¥90/1M     │
│  私有化部署     ✅ 开源        ✅ 开源        ✅ 开源        ❌ 仅API   │
│  长文本理解     ★★★★★        ★★★★☆        ★★★★★       ★★★★☆       │
│                                                                      │
│  综合评价:                                                           │
│  · 性价比之王:  DeepSeek-V3(能力顶尖,价格最低)                     │
│  · 私有化首选:  Qwen2.5-72B(开源 + 能力强 + 社区活跃)              │
│  · 生态完善:    智谱GLM-4(SDK 完善,文档齐全)                       │
│  · 企业背书:    文心一言(百度生态,但价格最高)                       │
│                                                                      │
└──────────────────────────────────────────────────────────────────────┘

1.3 一个关键认知:API 兼容性

几乎所有国产大模型都兼容 OpenAI API 格式。这意味着:你为 GPT-4o 写的 Agent 代码,只需改三行配置就能切换到国产模型——不需要改业务代码。

// 之前的 OpenAI 配置
OpenAiChatModel model = OpenAiChatModel.builder()
    .apiKey(System.getenv("OPENAI_API_KEY"))
    .baseUrl("https://api.openai.com/v1")
    .modelName("gpt-4o")
    .build();

// 切换到国产模型:只改这三行
// ↓↓↓ ↓↓↓ ↓↓↓

这个特性极其重要——它意味着 模型可替换 是架构设计的第一原则。


二、四大国产模型接入实战

2.1 通义千问(Qwen)

接入方式一:通过阿里云百炼 API(推荐)

/**
 * 通义千问 Agent 配置
 * 
 * 阿里云百炼平台提供 OpenAI 兼容 API,
 * 可以直接使用 LangChain4j 的 OpenAI 适配器。
 * 
 * 优势:
 * - 无需额外 SDK,复用 OpenAI 客户端
 * - 支持 Tool Calling(function_call 参数)
 * - 支持流式输出(SSE)
 * 
 * 注意事项:
 * - Qwen 的 Tool Calling 格式与 OpenAI 完全一致
 * - 但 System Prompt 中建议用中文描述工具用途,效果更好
 */
@Bean
public ChatLanguageModel qwenModel() {
    return OpenAiChatModel.builder()
        .apiKey(System.getenv("DASHSCOPE_API_KEY"))
        .baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
        .modelName("qwen-plus")           // 或 qwen-max、qwen-turbo
        .temperature(0.3)
        .timeout(Duration.ofSeconds(60))
        .maxRetries(3)
        .build();
}

/**
 * Qwen 模型选型指南:
 * 
 * qwen-turbo    → 速度最快,适合简单任务(意图分类、摘要)
 * qwen-plus     → 均衡之选,适合大多数 Agent 场景
 * qwen-max      → 能力最强,适合复杂推理(多步 Tool Calling)
 */

接入方式二:私有化部署(Ollama / vLLM)

对于数据敏感型企业,可以把 Qwen 模型部署在自己的服务器上:

/**
 * 私有化部署的 Qwen 接入
 * 
 * 部署方案选择:
 * 1. Ollama: 最简单,一行命令启动,适合开发测试
 *    ollama run qwen2.5:72b
 * 
 * 2. vLLM: 生产级方案,高吞吐、支持并发
 *    python -m vllm.entrypoints.openai.api_server \
 *        --model Qwen/Qwen2.5-72B-Instruct \
 *        --port 8000 \
 *        --max-model-len 32768 \
 *        --gpu-memory-utilization 0.9
 * 
 * 3. TGI (Text Generation Inference): HuggingFace 官方方案
 * 
 * 硬件要求(Qwen2.5-72B):
 * - 最低:4 × A100 80GB(INT4 量化)
 * - 推荐:8 × A100 80GB(FP16 无量化)
 * - 如果资源有限:用 Qwen2.5-14B(1 × A100 即可)
 */
@Bean
public ChatLanguageModel privateQwenModel() {
    return OpenAiChatModel.builder()
        .apiKey("not-needed")  // 私有部署不需要 API Key
        .baseUrl("http://gpu-server:8000/v1")  // vLLM 地址
        .modelName("Qwen/Qwen2.5-72B-Instruct")
        .temperature(0.3)
        .timeout(Duration.ofSeconds(120))  // 私有部署延迟可能较高
        .build();
}

2.2 DeepSeek

/**
 * DeepSeek Agent 配置
 * 
 * DeepSeek-V3 是目前国产模型中 Tool Calling 能力最强的之一。
 * 在 Agent 场景的实测中,它的工具调用准确率与 GPT-4o 基本持平,
 * 但价格只有 GPT-4o 的 1/5。
 * 
 * 独特优势:
 * 1. DeepSeek 的 "深度思考" 模式(DeepThink)特别适合
 *    复杂的多步推理任务
 * 2. 原生支持 JSON Mode 输出,结构化返回非常稳定
 * 3. 128K 上下文窗口,长文本场景表现优秀
 */
@Bean
public ChatLanguageModel deepSeekModel() {
    return OpenAiChatModel.builder()
        .apiKey(System.getenv("DEEPSEEK_API_KEY"))
        .baseUrl("https://api.deepseek.com/v1")
        .modelName("deepseek-chat")  // 即 DeepSeek-V3
        .temperature(0.3)
        .timeout(Duration.ofSeconds(60))
        .maxRetries(3)
        .build();
}

/**
 * DeepSeek 的深度思考模式
 * 
 * 通过特殊参数开启,模型会在回答前进行更深入的推理。
 * 适合复杂的多步工具调用场景。
 * 
 * 注意:深度思考模式会增加 Token 消耗(约 2~3 倍)和延迟,
 * 建议只在复杂任务中使用。
 */
@Bean
public ChatLanguageModel deepSeekReasoningModel() {
    return OpenAiChatModel.builder()
        .apiKey(System.getenv("DEEPSEEK_API_KEY"))
        .baseUrl("https://api.deepseek.com/v1")
        .modelName("deepseek-reasoner")  // 深度思考版本
        .temperature(0.3)
        .timeout(Duration.ofSeconds(180))  // 推理时间更长
        .build();
}

2.3 智谱 GLM-4

/**
 * 智谱 GLM-4 Agent 配置
 * 
 * GLM-4 的 Tool Calling 接口与 OpenAI 略有差异,
 * 需要使用 LangChain4j 的 Zhipu 专用适配器。
 * 
 * 智谱的优势:
 * 1. SDK 和文档最完善(中文文档最友好)
 * 2. 内置 Web 搜索工具(可作为 Agent 的补充知识源)
 * 3. 支持 Agent 应用模式(平台级的 Agent 托管)
 */
@Bean
public ChatLanguageModel glmModel() {
    // 使用 LangChain4j 的智谱专用适配器
    return ZhipuAiChatModel.builder()
        .apiKey(System.getenv("ZHIPU_API_KEY"))
        .model("glm-4-plus")
        .temperature(0.3f)
        .maxRetries(3)
        .build();
}

/**
 * GLM-4 的 Web 搜索工具集成
 * 
 * 智谱平台内置了 Web 搜索能力,可以让 Agent 联网获取实时信息。
 * 这在某些场景下比 RAG 更灵活——Agent 自主决定何时搜索。
 */
@Bean
public EnergyAgent glmAgentWithWebSearch() {
    ZhipuAiChatModel model = ZhipuAiChatModel.builder()
        .apiKey(System.getenv("ZHIPU_API_KEY"))
        .model("glm-4-plus")
        .webSearch(true)  // 开启内置 Web 搜索
        .build();

    return AiServices.builder(EnergyAgent.class)
        .chatLanguageModel(model)
        .tools(energyTools)
        .build();
}

2.4 多模型路由器(生产推荐架构)

在实际生产中,不应该只用一个模型。不同复杂度的任务应该路由到不同模型:

/**
 * 生产级多模型路由器
 * 
 * 架构思路:
 * · 简单任务(意图分类、摘要提取)→ Qwen-Turbo(快、便宜)
 * · 中等任务(单步工具调用)→ DeepSeek-V3(性价比高)
 * · 复杂任务(多步推理、报告生成)→ Qwen-Max(能力最强)
 * · 兜底方案 → 任一模型故障时自动切换备用
 * 
 * 成本效果:
 * · 相比全部使用 Qwen-Max:总成本降低约 65%
 * · 相比全部使用 GPT-4o:总成本降低约 85%
 */
@Component
public class MultiModelRouter {

    private final ChatLanguageModel fastModel;    // qwen-turbo
    private final ChatLanguageModel balancedModel; // deepseek-chat
    private final ChatLanguageModel strongModel;   // qwen-max
    private final HealthChecker healthChecker;

    public MultiModelRouter() {
        this.fastModel = OpenAiChatModel.builder()
            .apiKey(System.getenv("DASHSCOPE_API_KEY"))
            .baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
            .modelName("qwen-turbo")
            .temperature(0.1)
            .build();

        this.balancedModel = OpenAiChatModel.builder()
            .apiKey(System.getenv("DEEPSEEK_API_KEY"))
            .baseUrl("https://api.deepseek.com/v1")
            .modelName("deepseek-chat")
            .temperature(0.3)
            .build();

        this.strongModel = OpenAiChatModel.builder()
            .apiKey(System.getenv("DASHSCOPE_API_KEY"))
            .baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
            .modelName("qwen-max")
            .temperature(0.3)
            .build();
    }

    /**
     * 根据任务类型路由到合适的模型
     * 
     * 同时包含故障转移逻辑:如果首选模型不可用,
     * 自动降级到备用模型。
     */
    public ChatLanguageModel route(TaskType taskType) {
        ChatLanguageModel primary = switch (taskType) {
            case INTENT_CLASSIFICATION,
                 CONVERSATION_SUMMARY,
                 USER_PROFILE_EXTRACTION ->
                fastModel;
            case SINGLE_TOOL_CALL,
                 DATA_QUERY,
                 RAG_JUDGMENT ->
                balancedModel;
            case MULTI_STEP_REASONING,
                 COMPOSITE_ANALYSIS,
                 REPORT_GENERATION ->
                strongModel;
        };

        // 健康检查:如果首选模型不可用,降级到备用
        if (!healthChecker.isHealthy(primary)) {
            log.warn("模型 {} 不可用,启动降级策略",
                getModelName(primary));
            return getFallback(primary);
        }

        return primary;
    }

    private ChatLanguageModel getFallback(
            ChatLanguageModel failedModel) {
        // 降级策略:strong → balanced → fast
        if (failedModel == strongModel) return balancedModel;
        if (failedModel == balancedModel) return fastModel;
        return balancedModel;  // fast 挂了用 balanced
    }
}

多模型路由的成本对比:

┌────────────────────────────────────────────────────────────────┐
│              月成本对比(日均 5000 次对话)                      │
│                                                                │
│  方案                  月成本        相比 GPT-4o 节省           │
│  ─────────────────────────────────────────────────              │
│  全部 GPT-4o          ¥45,000       -                          │
│  全部 Qwen-Max        ¥12,000       -73%                       │
│  全部 DeepSeek-V3     ¥8,000        -82%                       │
│  多模型路由(推荐)     ¥5,200        -88%                       │
│                                                                │
│  假设:每次对话平均 3 轮 LLM 调用                               │
│        简单任务占 40%,中等任务占 40%,复杂任务占 20%            │
│                                                                │
└────────────────────────────────────────────────────────────────┘

三、高级推理模式(一):Plan-and-Execute

3.1 ReAct 的局限性

前几篇文章中,我们用的 ReAct(Reasoning + Acting)是最基础的推理模式——想一步,做一步。它在简单任务上效果很好,但在复杂任务上有一个根本问题:

缺乏全局规划。

举个例子,用户说:“帮我做一份本季度的能耗分析报告,包含各楼栋对比、同比环比、异常事件分析,最后给出优化建议。”

ReAct 的处理方式可能是:

  1. 查了 A 栋数据 → 发现还要查 B 栋 → 查了 B 栋 → 发现还要查 C 栋…
  2. 查完所有数据后 → 发现还要查去年同期做同比…
  3. 做了同比后 → 发现还要查上季度做环比…

整个过程像"走一步看一步",效率低,而且容易遗漏步骤。

3.2 Plan-and-Execute 原理

Plan-and-Execute 的核心思想是:先制定完整计划,再逐步执行。

┌────────────────────────────────────────────────────────┐
│               Plan-and-Execute 流程                     │
│                                                        │
│  用户输入                                               │
│    │                                                    │
│    ▼                                                    │
│  ┌──────────┐                                          │
│  │ Planner   │ "先想清楚要做什么"                       │
│  │          │                                          │
│  │ 输出:     │                                          │
│  │ Step 1: 收集各楼栋本季度能耗数据                     │
│  │ Step 2: 收集去年同期数据(同比)                     │
│  │ Step 3: 收集上季度数据(环比)                       │
│  │ Step 4: 数据对比分析                                 │
│  │ Step 5: 检索本季度异常事件记录                       │
│  │ Step 6: 生成分析报告                                 │
│  │ Step 7: 给出优化建议                                 │
│  └────┬─────┘                                          │
│       │                                                 │
│       ▼                                                 │
│  ┌──────────┐                                          │
│  │ Executor  │ "按计划一步步执行"                       │
│  │          │                                          │
│  │ Step 1 ✓ │ → 调用工具查 A/B/C 栋本季度数据           │
│  │ Step 2 ✓ │ → 调用工具查去年同期数据                  │
│  │ Step 3 ✓ │ → 调用工具查上季度数据                    │
│  │ Step 4 ✓ │ → LLM 做对比分析                         │
│  │ Step 5 ✓ │ → 调用工具检索异常事件                    │
│  │ Step 6 ✓ │ → LLM 生成报告                           │
│  │ Step 7 ✓ │ → LLM 给出建议                           │
│  └────┬─────┘                                          │
│       │                                                 │
│       ▼                                                 │
│  最终报告                                               │
│                                                        │
└────────────────────────────────────────────────────────┘

3.3 Plan-and-Execute 实现

/**
 * 计划步骤定义
 */
public record PlanStep(
    int stepNumber,
    String description,       // "收集各楼栋本季度能耗数据"
    StepType type,            // TOOL_CALL / LLM_REASONING / COMPOSITE
    String requiredTool,      // 如果需要工具调用
    List<String> dependsOn    // 依赖的前置步骤编号
) {
    public enum StepType {
        TOOL_CALL,       // 需要调用外部工具
        LLM_REASONING,   // 纯 LLM 推理(分析、总结)
        COMPOSITE        // 工具调用 + LLM 推理
    }
}

/**
 * 计划生成器(Planner)
 * 
 * 用一个专门的 LLM 调用生成执行计划。
 * 
 * 关键设计:
 * - 计划生成器不执行任何操作,只"规划"
 * - 计划是结构化的(JSON),不是自然语言
 * - 支持步骤间的依赖关系(DAG)
 */
@Service
public class Planner {

    private final ChatLanguageModel plannerModel;

    public Planner(MultiModelRouter router) {
        // 规划任务用最强的模型——计划的质量决定执行的质量
        this.plannerModel = router.route(TaskType.COMPOSITE_ANALYSIS);
    }

    /**
     * 为复杂任务生成执行计划
     */
    public List<PlanStep> createPlan(String userQuery,
                                      List<String> availableTools) {
        String prompt = String.format("""
            你是一个任务规划专家。请为用户的复杂任务制定详细的执行计划。
            
            ## 可用工具
            %s
            
            ## 规划要求
            1. 每个步骤必须明确是"工具调用"还是"LLM推理"
            2. 标注步骤间的依赖关系(哪些步骤可以并行,哪些必须串行)
            3. 步骤粒度适中——不要太粗(无法执行)也不要太细(浪费调用)
            4. 确保计划覆盖了用户需求的所有方面
            
            按 JSON 格式返回:
            {
              "steps": [
                {
                  "stepNumber": 1,
                  "description": "步骤描述",
                  "type": "TOOL_CALL|LLM_REASONING|COMPOSITE",
                  "requiredTool": "工具名或null",
                  "dependsOn": []
                }
              ]
            }
            
            ## 用户任务
            %s
            """,
            String.join("\n", availableTools),
            userQuery);

        String result = plannerModel.generate(
            UserMessage.from(prompt)).content().text().trim();

        return parsePlan(result);
    }
}

/**
 * 计划执行引擎(Executor)
 * 
 * 按顺序执行计划中的每个步骤,
 * 并将前置步骤的输出作为当前步骤的输入。
 */
@Service
public class PlanExecutor {

    private final ChatLanguageModel executorModel;
    private final Map<String, Function<Map<String, Object>, Object>>
        toolRegistry;

    /**
     * 执行完整计划
     * 
     * @param plan        执行计划
     * @param userQuery   原始用户问题
     * @return 每个步骤的执行结果
     */
    public PlanExecutionResult execute(List<PlanStep> plan,
                                        String userQuery) {
        Map<Integer, StepResult> stepResults = new LinkedHashMap<>();
        List<String> executionLog = new ArrayList<>();

        for (PlanStep step : plan) {
            log.info("执行计划 Step {}: {}",
                step.stepNumber(), step.description());
            executionLog.add(String.format("Step %d: %s",
                step.stepNumber(), step.description()));

            // 收集前置步骤的输出作为上下文
            String previousContext = step.dependsOn().stream()
                .mapToInt(Integer::parseInt)
                .filter(stepResults::containsKey)
                .mapToObj(i -> stepResults.get(i).output())
                .collect(Collectors.joining("\n\n"));

            StepResult result;
            try {
                result = switch (step.type()) {
                    case TOOL_CALL ->
                        executeToolStep(step, previousContext);
                    case LLM_REASONING ->
                        executeReasoningStep(step, userQuery,
                            previousContext);
                    case COMPOSITE ->
                        executeCompositeStep(step, userQuery,
                            previousContext);
                };
            } catch (Exception e) {
                log.error("Step {} 执行失败: {}",
                    step.stepNumber(), e.getMessage());
                result = StepResult.failed(
                    step.stepNumber(), e.getMessage());
            }

            stepResults.put(step.stepNumber(), result);
            executionLog.add(String.format("  → %s",
                result.success() ? "成功" : "失败: " + result.error()));
        }

        // 最后一个步骤的输出就是最终结果
        StepResult finalStep = stepResults.get(
            plan.get(plan.size() - 1).stepNumber());

        return new PlanExecutionResult(
            finalStep != null ? finalStep.output() : "",
            executionLog,
            stepResults
        );
    }

    private StepResult executeToolStep(PlanStep step,
                                        String previousContext) {
        // 调用注册的工具
        var toolFunc = toolRegistry.get(step.requiredTool());
        if (toolFunc == null) {
            return StepResult.failed(step.stepNumber(),
                "工具未注册: " + step.requiredTool());
        }

        // 用 LLM 从上下文中提取工具参数
        String argsJson = extractToolArgs(
            step.requiredTool(), step.description(), previousContext);
        Map<String, Object> args = JsonUtils.parseMap(argsJson);

        Object result = toolFunc.apply(args);
        return StepResult.success(step.stepNumber(),
            String.valueOf(result));
    }

    private StepResult executeReasoningStep(PlanStep step,
                                             String userQuery,
                                             String previousContext) {
        String prompt = String.format("""
            请根据以下上下文完成分析任务。
            
            原始任务:%s
            当前步骤:%s
            前序步骤结果:
            %s
            
            请给出详细的分析结果。
            """, userQuery, step.description(), previousContext);

        String result = executorModel.generate(
            UserMessage.from(prompt)).content().text().trim();

        return StepResult.success(step.stepNumber(), result);
    }
}

3.4 计划重规划(Re-planning)

这是 Plan-and-Execute 最强大的特性——执行过程中发现问题,可以动态修改计划。

/**
 * 自适应重规划
 * 
 * 场景:Step 3 执行失败(某个数据源不可用),
 *       需要修改后续计划以适应新的情况。
 */
@Service
public class AdaptivePlanner {

    private final Planner planner;
    private final PlanExecutor executor;

    /**
     * 带重规划的执行循环
     * 
     * 工作流程:
     * 1. 生成初始计划
     * 2. 逐步执行
     * 3. 某步骤失败 → 判断是否需要重规划
     * 4. 重规划时:保留已完成步骤的结果,修改后续步骤
     * 5. 继续执行新计划
     */
    public PlanExecutionResult executeWithReplanning(
            String userQuery, List<String> availableTools) {

        // 1. 初始规划
        List<PlanStep> plan = planner.createPlan(
            userQuery, availableTools);

        int maxReplans = 2;  // 最多重规划 2 次
        int replanCount = 0;

        while (replanCount <= maxReplans) {
            // 2. 执行计划
            PlanExecutionResult result = executor.execute(
                plan, userQuery);

            // 3. 检查是否有失败步骤
            Optional<StepResult> failedStep = result.stepResults()
                .values().stream()
                .filter(r -> !r.success())
                .findFirst();

            if (failedStep.isEmpty()) {
                return result;  // 全部成功,结束
            }

            // 4. 重规划
            replanCount++;
            if (replanCount > maxReplans) {
                log.warn("达到最大重规划次数,返回当前结果");
                return result;
            }

            log.info("Step {} 失败,触发重规划 (第{}次)",
                failedStep.get().stepNumber(), replanCount);

            // 构建重规划请求:包含已完成步骤和失败原因
            String replanPrompt = String.format("""
                原计划执行过程中遇到问题:
                
                原计划:
                %s
                
                已完成的步骤:
                %s
                
                失败步骤:%s
                失败原因:%s
                
                请基于当前情况重新规划剩余步骤。
                """,
                formatPlan(plan),
                formatCompletedSteps(result),
                failedStep.get().stepNumber(),
                failedStep.get().error()
            );

            plan = planner.createPlan(replanPrompt, availableTools);
        }

        return executor.execute(plan, userQuery);
    }
}

四、高级推理模式(二):Reflection(反思)

4.1 什么是 Reflection?

Reflection 的核心思想极其简洁:Agent 执行完一个动作后,回头审视自己的输出,判断是否有问题,如果有则修正。

这就像人类写作——第一稿写完后通读一遍,发现逻辑不通或数据有误,然后修改。没有 Reflection 的 Agent 就像一个"从不检查自己作业的学生"。

4.2 实现 Reflection 循环

/**
 * Reflection Agent
 * 
 * 工作原理:
 * 
 *   生成 ──→ 评审 ──→ 修改 ──→ 评审 ──→ ... ──→ 通过
 *     │         │         │         │
 *     │         ▼         │         ▼
 *     │    "这里有个    │    "还有问题吗?"
 *     │     数据错误"    │    "没有了" → 输出
 *     │                   │
 *     └───────────────────┘
 * 
 * 关键设计:
 * - Generator 和 Reviewer 使用不同的 Prompt(甚至不同模型)
 * - 最大迭代次数限制(防止无限循环)
 * - Reviewer 输出结构化反馈,而非笼统的"好/不好"
 */
@Service
public class ReflectionAgent {

    private final ChatLanguageModel generatorModel;
    private final ChatLanguageModel reviewerModel;
    private static final int MAX_ITERATIONS = 3;

    /**
     * 带反思循环的内容生成
     * 
     * @param task     生成任务描述
     * @param context  参考资料(工具返回值、RAG 结果等)
     * @return 经过反思优化的最终输出
     */
    public ReflectionResult generate(String task, String context) {
        String currentDraft = null;
        String feedback = null;
        List<ReflectionRound> rounds = new ArrayList<>();

        for (int i = 0; i < MAX_ITERATIONS; i++) {
            // ===== 生成/修改阶段 =====
            currentDraft = generateDraft(task, context, feedback);

            // ===== 评审阶段 =====
            ReviewResult review = reviewDraft(task, currentDraft, context);

            rounds.add(new ReflectionRound(
                i + 1, currentDraft, review.feedback(),
                review.issues().size(), review.passed()));

            if (review.passed()) {
                log.info("Reflection 通过: 第 {} 轮", i + 1);
                return new ReflectionResult(currentDraft, rounds);
            }

            // 将评审反馈传递给下一轮生成
            feedback = review.feedback();
            log.info("Reflection 第 {} 轮发现 {} 个问题,继续修改",
                i + 1, review.issues().size());
        }

        // 达到最大迭代次数,返回当前版本
        log.warn("Reflection 达到最大迭代次数 {}", MAX_ITERATIONS);
        return new ReflectionResult(currentDraft, rounds);
    }

    /**
     * 生成/修改草稿
     */
    private String generateDraft(String task, String context,
                                  String previousFeedback) {
        String prompt;
        if (previousFeedback == null) {
            // 首轮:从头生成
            prompt = String.format("""
                请完成以下任务:
                
                任务:%s
                
                参考资料:
                %s
                
                请生成高质量的输出。
                """, task, context);
        } else {
            // 后续轮:根据反馈修改
            prompt = String.format("""
                请根据以下反馈修改你的输出。
                
                任务:%s
                
                你之前的输出:
                %s
                
                评审反馈:
                %s
                
                请针对性地修复反馈中指出的问题,保持其他部分不变。
                """, task, context, previousFeedback);
        }

        return generatorModel.generate(
            UserMessage.from(prompt)).content().text().trim();
    }

    /**
     * 评审草稿
     * 
     * Reviewer 的输出必须是结构化的反馈,包含:
     * - 是否通过(pass/fail)
     * - 具体问题列表(每个问题有位置和描述)
     * - 修改建议
     */
    private ReviewResult reviewDraft(String task, String draft,
                                      String context) {
        String prompt = String.format("""
            你是一个严格的质量评审员。请评审以下输出是否满足任务要求。
            
            ## 任务
            %s
            
            ## 参考资料(事实来源)
            %s
            
            ## 待评审输出
            %s
            
            ## 评审维度
            1. 数据准确性:所有数值是否与参考资料一致?
            2. 完整性:是否覆盖了任务要求的所有方面?
            3. 逻辑性:分析和结论是否逻辑自洽?
            4. 格式规范:是否清晰易读?
            
            按 JSON 返回:
            {
              "passed": true/false,
              "overallScore": 0~10,
              "issues": [
                {
                  "dimension": "数据准确性|完整性|逻辑性|格式规范",
                  "description": "问题描述",
                  "suggestion": "修改建议"
                }
              ],
              "feedback": "给生成者的综合反馈(简洁、可操作)"
            }
            """, task, context, draft);

        String result = reviewerModel.generate(
            UserMessage.from(prompt)).content().text().trim();

        return parseReview(result);
    }
}

/**
 * Reflection 结果
 */
public record ReflectionResult(
    String finalOutput,
    List<ReflectionRound> rounds
) {
    public int totalIterations() { return rounds.size(); }
    public boolean passedWithinLimit() {
        return rounds.stream().anyMatch(r -> r.issueCount() == 0);
    }
}

public record ReflectionRound(
    int roundNumber,
    String draft,
    String feedback,
    int issueCount,
    boolean passed
) {}

五、高级推理模式(三):Self-Consistency(自洽性验证)

5.1 原理

Self-Consistency 是解决 “Agent 回答不稳定” 的利器。核心思想:

对同一个问题,让 Agent 用不同路径推理 N 次,然后取多数一致的答案。

这就像你问三个专家同一个问题——如果两人都说 A,一人说 B,那 A 的可信度更高。

问题:"A栋本月能耗是否异常?"

路径1: 查本月数据 → 查上月数据 → 对比 → "异常,超出32%"
路径2: 查本月数据 → 查去年同期 → 对比 → "异常,超出28%"
路径3: 查本月数据 → 查30天均值 → 对比 → "正常,仅超出8%"

投票结果:2/3 认为"异常" → 最终回答"异常"
置信度:66.7%

5.2 实现

/**
 * Self-Consistency 推理引擎
 * 
 * 适用场景:
 * - 需要高可靠性的判断(如告警决策)
 * - 模型对某类问题回答不稳定时
 * 
 * 注意:成本是普通推理的 N 倍(N = 推理路径数)
 * 建议只在关键决策点使用,而非每次对话都用。
 */
@Service
public class SelfConsistencyEngine {

    private final ChatLanguageModel model;
    private static final int NUM_PATHS = 3;  // 推理路径数

    /**
     * 自洽性推理
     * 
     * @param question 需要判断的问题
     * @param context  上下文信息
     * @return 经过多数投票的结果
     */
    public ConsistencyResult reason(String question, String context) {
        List<String> answers = new ArrayList<>();

        // 用不同的推理提示获取多个答案
        String[] reasoningStyles = {
            "请用数据分析的方式回答",
            "请从对比历史趋势的角度回答",
            "请从规则判断的角度回答"
        };

        for (String style : reasoningStyles) {
            String prompt = String.format("""
                %s
                
                上下文信息:
                %s
                
                问题:%s
                
                请给出你的判断(只回答结论,不要解释过程)。
                """, style, context, question);

            String answer = model.generate(
                UserMessage.from(prompt)).content().text().trim();
            answers.add(answer);
        }

        // 多数投票
        return majorityVote(question, answers);
    }

    /**
     * 多数投票算法
     * 
     * 对自由文本答案做投票的难点:
     * 答案措辞不同但含义相同(如"异常"和"偏高"),
     * 需要用 LLM 做语义聚类后再投票。
     */
    private ConsistencyResult majorityVote(String question,
                                            List<String> answers) {
        // 用 LLM 对答案做语义聚类
        String clusterPrompt = String.format("""
            以下是三个专家对同一问题的回答。
            请将含义相似的回答归为一组,并统计每组的数量。
            
            问题:%s
            
            回答1:%s
            回答2:%s
            回答3:%s
            
            按 JSON 返回:
            {
              "clusters": [
                {
                  "representativeAnswer": "该组的代表性回答",
                  "count": 支持此回答的数量,
                  "memberIndices": [1, 2]
                }
              ]
            }
            """, question, answers.get(0), answers.get(1), answers.get(2));

        String result = model.generate(
            UserMessage.from(clusterPrompt)).content().text().trim();

        JsonNode node = JsonUtils.parse(result);
        JsonNode clusters = node.get("clusters");

        // 找到票数最多的聚类
        JsonNode majority = clusters.get(0);
        for (int i = 1; i < clusters.size(); i++) {
            if (clusters.get(i).get("count").asInt()
                    > majority.get("count").asInt()) {
                majority = clusters.get(i);
            }
        }

        int majorityCount = majority.get("count").asInt();
        double confidence = (double) majorityCount / NUM_PATHS;

        return new ConsistencyResult(
            majority.get("representativeAnswer").asText(),
            confidence,
            answers,
            majorityCount >= 2  // 至少 2/3 一致才算可信
        );
    }
}

public record ConsistencyResult(
    String finalAnswer,
    double confidence,     // 0.0~1.0
    List<String> allAnswers,
    boolean isConsistent   // 是否达到多数一致
) {}

六、三种推理模式的对比与选择

┌──────────────────────────────────────────────────────────────────┐
│              三种高级推理模式对比                                  │
│                                                                  │
│  维度         ReAct          Plan-and-Execute  Reflection  S-C  │
│  ─────────────────────────────────────────────────────────────   │
│  适用场景     简单工具调用   复杂多步任务       高质量输出  关键决策│
│  LLM调用次数  2~5次         5~10次            2~6次      3~9次  │
│  成本         低             中~高             中         高      │
│  延迟         2~5s          8~20s             5~15s     5~12s   │
│  可靠性       中             高                高         最高    │
│  实现复杂度   低             中                中         中      │
│                                                                  │
│  选择建议:                                                      │
│  · 日常对话、简单查询 → ReAct(默认)                            │
│  · "做一份报告"、"分析+通知+生成" → Plan-and-Execute            │
│  · 报告内容、决策建议 → Reflection                               │
│  · "该不该触发告警?"等高风险判断 → Self-Consistency             │
│                                                                  │
│  生产最佳实践:组合使用                                          │
│  Plan-and-Execute 负责全局编排                                   │
│  → 每个步骤内部用 ReAct                                         │
│  → 关键输出用 Reflection 检查                                    │
│  → 高风险决策点用 Self-Consistency 验证                          │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

组合使用示例

/**
 * 高级 Agent:组合多种推理模式
 * 
 * 架构:
 * Plan-and-Execute(全局编排)
 *   └── 每个步骤内部:ReAct(工具调用)
 *   └── 报告生成步骤:Reflection(质量保障)
 *   └── 告警决策步骤:Self-Consistency(可靠性保障)
 */
@Service
public class AdvancedAgent {

    private final AdaptivePlanner planner;
    private final PlanExecutor executor;
    private final ReflectionAgent reflectionAgent;
    private final SelfConsistencyEngine consistencyEngine;

    /**
     * 处理复杂任务
     */
    public String handleComplexTask(String userQuery) {
        // Step 1: 规划
        List<PlanStep> plan = planner.createPlan(userQuery, availableTools);

        // Step 2: 执行(内部用 ReAct)
        PlanExecutionResult result = planner.executeWithReplanning(
            userQuery, availableTools);

        // Step 3: 对报告类输出做 Reflection
        if (containsReportGeneration(plan)) {
            ReflectionResult refined = reflectionAgent.generate(
                "生成能耗分析报告",
                result.toContextString());
            return refined.finalOutput();
        }

        // Step 4: 对告警决策做 Self-Consistency
        if (containsAlertDecision(plan)) {
            ConsistencyResult consistent = consistencyEngine.reason(
                "是否需要触发告警?",
                result.toContextString());
            if (!consistent.isConsistent()) {
                return result.finalOutput()
                    + "\n\n[注意: 告警判断存在分歧,建议人工复核]";
            }
        }

        return result.finalOutput();
    }
}

七、八篇文章完整知识图谱

┌─────────────────────────────────────────────────────────────────┐
│               Java AI Agent 实战系列 · 完整路线图                 │
│                                                                 │
│  第一篇 ── 单体 Agent 构建                                      │
│  │        Tool Calling + RAG + Memory                           │
│  │                                                              │
│  第二篇 ── Multi-Agent 协作 + MCP 协议                          │
│  │        LangGraph4j 编排 + MCP 工具标准化                     │
│  │                                                              │
│  第三篇 ── 评估体系 + A2A 协议                                  │
│  │        四维评估 + LLM-as-Judge + 跨组织通信                  │
│  │                                                              │
│  第四篇 ── 长期记忆 + 用户画像                                  │
│  │        三层记忆架构 + 画像自动提取                          │
│  │                                                              │
│  第五篇 ── 可观测性 + 成本优化                                  │
│  │        链路追踪 + 会话回放 + Token 精算                      │
│  │                                                              │
│  第六篇 ── RAG 深度优化                                        │
│  │        语义切分 + 混合检索 + 重排序                          │
│  │                                                              │
│  第七篇 ── Agent 安全攻防                                      │
│  │        Prompt 注入防御 + 工具权限沙箱 + 幻觉检测            │
│  │                                                              │
│  第八篇 ── 国产大模型 + 高级推理模式 (本篇)                     │
│           四大模型实战 + Plan-Execute + Reflection + S-C         │
│                                                                 │
│  能力进阶路线:                                                  │
│  能构建 → 能协作 → 能评估 → 能记忆 → 能运维 → 能检索           │
│  → 能防御 → 能落地(国产模型)+ 能深度推理                     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Qwen3.7-Max大模型:空间推理与编程Agent实战解析 大语言模型作为AI领域的重要突破,其核心价值在于将自然语言理解转化为可执行的复杂任务处理能力。从技术原理看,这类模型通过Transformer架构实现上下文建模,结合强化学习优化任务分解策略。在工程实践中,Qwen3.7-Max展现了突出的空间推理能力,如三维几何问题的结构化处理,以及编程Agent能力,包括终端操作闭环和全栈开发实现。这些技术特性使其在工业设计、数据可视化等场景具备实用价值,特别是结合Three.js的3D建模和Chart.js的数据渲染能力时,模型能完成从需求分析到产品交付的完整链路。测 阅读详情

相关推荐

2026年大模型三大趋势:国产登顶、百万上下文落地与Agent工业化

大语言模型(LLM)作为人工智能的核心技术,其发展正从理论探索加速转向工程化落地。其核心原理在于基于海量数据预训练,通过Transformer架构捕捉深层语义关联,从而具备强大的理解和生成能力。这一技术的核心价值在于能够处理复杂、非结构化的信息,并执行多步骤推理任务,极大地提升了信息处理和自动化水平。当前,其应用场景已从早期的文本生成,广泛渗透到代码开发、数据分析、智能客服、知识管理等多个领域。随着技术栈的成熟,行业正聚焦于解决实际生产中的关键瓶颈,例如提升模型处理长文档的效能(即长上下文技术),以及构建稳

weixin_30732487的博客 374

国产AI Agent实战:从Coze到百炼,打造你的智能助手

AI Agent(人工智能体)是能够自主理解目标、规划行动、调用工具、执行任务并持续学习的智能系统。与传统的AI助手相比,Agent不再是被动等待用户指令,而是能够主动分析问题、分解任务、调用各种工具来完成复杂目标。第一阶段:问答式AI。用户提问,AI回答。ChatGPT就是这个阶段的代表。用户给一个Prompt,AI返回一个Response,如此循环。这是单向的信息传递。第二阶段:对话式AI。用户和AI进行多轮对话,AI能够记住上下文。这种模式比问答更自然,但本质上仍然是"输入-输出"的循环。

AI 爪客,专注 AI 智能体与 Skill 研发落地,斩获腾讯云、讯飞、小米等多场 AI 赛事奖项,分享 Agent 实战干货与工程化经验。 1211

MiniMax-H3大模型:国产推理引擎的深度评测与应用指南

大型语言模型(LLM)作为人工智能领域的核心技术,通过海量数据训练和Transformer架构,实现了对复杂语义的理解与生成。其核心原理在于自注意力机制和深度神经网络,能够捕捉长距离依赖关系,从而在文本生成、逻辑推理等任务上表现出色。这一技术的价值在于将通用认知能力赋能于各行各业,显著提升自动化水平和解决复杂问题的效率。在应用场景上,LLM已广泛应用于代码生成、数学解题、智能问答、内容创作等领域,成为推动产业智能化升级的关键基础设施。本文聚焦于MiniMax最新发布的H3模型,该模型在数学推理和代码生成等硬

weixin_34110749的博客 359

我用6个AI测了一圈,谁是国产Agent第一名,答案出奇地一致

让ChatGPT、Gemini、DeepSeek、文心、豆包、千问各自评选国产AI Agent三巨头,结果6个模型几乎清一色把百度排在第一位,连豆包都没把自家字节排第一。

石臻说AI(szzdzhp001) 【原名 石臻臻的杂货铺】 6751

AutoGLM实战:从零构建数据分析AI Agent,实现大模型应用自动化

大模型应用开发正从对话交互迈向自动化任务执行,其核心在于智能体(Agent)与工具调用(Function Calling)技术的结合。智能体通过感知、规划、行动、反思的循环,能够自主调用外部工具完成复杂任务,这是大模型释放生产力的关键技术路径。其技术价值在于将大语言模型的认知能力与专业工具的执行能力无缝衔接,实现从“理解需求”到“产出结果”的端到端自动化。在数据分析、报告生成、流程自动化等场景中,这种模式能显著提升效率。本文以智谱AI开源的AutoGLM框架为例,深入解析如何通过统一接口与智能编排,快速构建

weixin_34236869的博客 427

Codex CLI接入国产大模型:安装配置与排错指南

人工智能编程助手正从网页对话走向本地终端,Codex CLI作为一款开源的命令行编程代理,能直接读取项目结构、执行命令并修改文件,其核心价值在于将AI建议转化为实际代码操作。Codex的模型层是可替换的,只要模型服务商提供OpenAI兼容接口,就能通过配置base_url和model_provider将请求指向国产大模型平台,如DeepSeek、通义千问等。这种“本地Agent+国产模型”的组合,解决了国内用户访问官方API时的网络与成本问题,也让AI辅助编程更易落地。从环境准备、CLI安装、模型配置到高频

weixin_34174322的博客 678

言出法随:国产 AI IDE(Agent) 颠覆传统开发方式 - Codebuddy 介绍,以及简单对比 trae、lingma、Comate

言出法随:国产 AI IDE(Agent) 颠覆传统开发方式 - Codebuddy 介绍,以及简单对比 trae、lingma、Comate。

非科班Java出身GISer的博客 3833

【Agent从入门到实践】50 国产Agent框架:适配国内大模型,本土化开发优势

国内开发、中文场景、数据敏感:闭眼选国产框架,省心省力不踩坑;需对接国外大模型、全球化业务:可选国外框架,搭配国产插件做本土化适配;实际开发也能混搭:用LangChain做流程编排,用Qwen-Agent做中文语义处理,兼顾灵活与本土~其实现在国产Agent框架早就不是“替代品”了,而是“更优解”!它吃透了咱们国内的开发场景、大模型生态、合规要求,把中文语义、本土化工具、私有化部署这些刚需做到了极致,不管是新手入门、中小企业开发,还是企业级复杂应用,都能完美适配~

人工智能AI技术 705

AI Agent技术综述:LangChain、AutoGen与国产Agent框架深度对比

city: str"""查询指定城市的当前天气情况。Args:city: 城市名称,如"北京"、"上海"Returns:天气情况描述"""api_key = "your_api_key" # 实际使用时请使用环境变量try:return f"查询指定城市的当前天气情况。Args:city: 城市名称,如"北京"、"上海"Returns:天气情况描述。

corn1949的博客 717

节卡Jaka Zu APP编程避坑指南:从频繁通讯错误到稳定Socket交互的调试心得

本文详细解析了节卡Jaka Zu APP编程中常见的通讯错误问题,并提供了从基础排查到高级调试的完整解决方案。通过优化网络配置、固件匹配、心跳机制和数据交互规范,开发者可实现稳定的Socket通讯,有效提升工业机器人操控的可靠性。文章特别针对v1.6.7.3版本的典型问题给出了实用调试技巧。

weixin_42639633的博客 321

3D数学-动力学

3D数学-11-动力学 旋转运动学 二维旋转动力学 首先我们考虑最简单的情况: 我们将F施加在圆盘(忽略质量)上的一个点(质量为m)上 图中:F为我们施加的力,O是枢轴原点。 通过基本的运算,我们可以得到 F'= F*sinθ 那么切向加速度 a = F'/ m 切向加速度是线性速度的加速度,我们通过除以半径获得角加速度 α = a / r 现在,我们换一种方式,那就是通过杠杆臂的方式去施加力 为了能够计算出m点的角加速度,我们需要引入一个概念:扭矩 他的理解类似于力矩,公式如下 τ = Flsi

韩天衣的博客 2285

国产大模型在OpenRouter霸榜:免费策略与Agent场景突破

大语言模型作为人工智能的核心技术,通过Transformer架构实现文本理解和生成。其原理是基于海量数据预训练,具备强大的语义理解和推理能力。在工程实践中,模型需要平衡性能与成本,特别是在Agent开发等需要频繁调用的场景。国产模型通过免费策略降低使用门槛,同时针对长上下文等特性进行优化,如DeepSeek-V4-Flash支持128K上下文,显著提升了多轮交互的效率。这些优化使国产模型在OpenRouter等平台上获得开发者青睐,推动了AI技术的普及和应用创新。

weixin_34268310的博客 380

PointNetLK实战:5步搞定点云配准(附ModelNet40数据集训练技巧)

本文提供了一份详细的PointNetLK实战指南,帮助读者在5步内掌握点云配准技术。文章以ModelNet40数据集为例,深入讲解了环境搭建、数据预处理、模型训练与调试等核心步骤,并分享了关键的训练技巧和调参策略,旨在让开发者快速实现并应用这一高效的深度学习配准方法。

wind6的博客 462

2026大模型实用化:国产登顶、百万上下文与Agent工业化解析

大语言模型(LLM)作为人工智能的核心技术,其原理基于Transformer架构,通过自注意力机制处理序列数据,实现了强大的语言理解和生成能力。这项技术的核心价值在于将非结构化信息转化为可执行的知识与行动,从而深刻变革人机交互与自动化流程。当前,其应用场景正从通用对话快速渗透至代码生成、数据分析、智能办公等专业领域。随着技术成熟,工程实践中的关键挑战与解决方案成为焦点,特别是检索增强生成(RAG)技术,通过结合外部知识库有效缓解模型幻觉与知识更新延迟问题,成为构建可靠AI应用的主流范式。本文聚焦于2026年

weixin_33910759的博客 482

西门子S7-200 SMART PLC控制伺服电机

以下是使用西门子S7-200 SMART PLC控制伺服电机的详细程序框架和配置说明,涵盖硬件接线、PLC配置和基本运动控制逻辑。具体实现需根据伺服电机型号(如松下、三菱、台达等)调整参数。通过以上步骤,可实现伺服电机的基础位置控制。实际应用需根据设备机械参数和伺服驱动器手册调整细节。建议在调试时逐步测试脉冲输出和方向信号是否正常。

CHUXUEZHE8210的博客 6425

MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据

1. 概述 MAX31855为热电偶至数字输出转换器,内置14位模/数转换器(ADC)。器件带有冷端补偿检测和修正、数字控制器、SPI兼容接口,以及相关的控制逻辑,在温度控制器、过程控制或监测系统中设计用于配合外部微控制器(μC)工作。提供多个版本的器件,每个版本针对特定的热电偶类型(K、J、N、T或E型)进行优化和调整。热电偶类型以器件型号后缀表示(例如MAX31855K)。 器件输出14位...

睿思派克 1万+

大模型面试核心:RAG、Agent与LangGraph实战解析

检索增强生成(RAG)和智能体(Agent)是解决大模型知识滞后与幻觉问题的关键技术。RAG通过向量检索与外部知识库结合,为大模型提供实时、准确的参考信息,其核心流程包括文档分块、向量化与相似性检索。Agent则基于ReAct等模式,赋予大模型规划、调用工具与自主决策的能力,从而执行复杂任务。这些技术共同构成了构建生产级AI应用的基础。在实际工程中,LangChain框架提供了链式抽象以简化流程,而LangGraph则通过图结构支持复杂、有状态的工作流设计,两者分别适用于线性任务与高动态场景。本文聚焦于RA

weixin_34161032的博客 445

【WRF-Urban】增加动态空间热排放数据以替换人为热排放参数

增加动态空间热排放数据以替换人为热排放参数

WW、forever的博客 1044

开源AI智能体本地部署指南:用Hermes Agent、Ollama与国产大模型构建低成本方案

在AI应用开发领域,智能体(Agent)技术正成为实现自动化与智能化工作流的核心。其原理在于通过大型语言模型(LLM)作为决策大脑,结合可调用的工具链来执行复杂任务。这项技术的核心价值在于将人类语言指令转化为具体的、可执行的操作序列,从而大幅提升开发与工作效率。在实际应用场景中,开发者常面临云端API调用成本高昂、数据隐私受限以及功能定制化不足等挑战。为此,开源AI智能体框架结合本地化部署方案应运而生,它允许开发者在自有硬件上构建和运行智能体系统。本文聚焦于如何利用开源框架Hermes Agent,配合本地

weixin_30512089的博客 528

STM32_HAL库—PWM产生指定个数

(一)CubeMX设置: 1. 晶振配置(72M) 2. 引脚配置 3. 中断配置 4. 配置及实现方式 由上推出公式: 机器周期: (72MHz / 36) = 2MHz = 0.5us PWM周期: 0.5 * 100 = 50us = 20kHz 5. 主函数调用PWM函数 HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_2); //此处一句后可直接进入中断 6. PWM溢出回调函数 void HAL_TIM_PWM_PulseFinished

5525

(论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)

论文及源码见个人主页:https://download.youkuaiyun.com/download/qq_45874683/84118637?spm=1001.2014.3001.5503 (论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)4D-CRNN 目录 目录: 运行过程: 1. 运行1D文件(没有什么bug): 2. 再运行3D文件(没有出现bug): 3. 最后运行main文件(出现了两个bug)(前提需要配置好tensorflow的框架): 第一个bug是..

qq_45874683的博客 6363

如何给CountBot接入国产大模型:DeepSeek等100+提供商配置实战

CountBot 是更适配中文用户的轻量开源 AI Agent,内置多提供商接入机制,支持 DeepSeek、Kimi、智谱 GLM、通义千问等国产大模型,并兼容 OpenRouter 等入口接入 100+ 模型提供商。本文用 5 个步骤带你完成 CountBot 大模型接入实战,从填写 API Key、测试连接到调优思考模式,全程在 Web 界面点选即可完成,无需写代码。 ## CountBo

gitblog_01092的博客 370

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【AI前沿】2026.08.01 中国大模型TOP20榜单出炉 + 推理算力拐点确认 + Agent元年深度解读

2026年被行业公认为"AI Agent元年"。条件一:大模型能力接近天花板经过2023到2025年三年的技术积累,GPT-4o、Claude 3.5、国产的智谱GLM、通义千问等模型的能力已经足够强大。大模型就像是一个拥有博士学历但从来没有出过门的书呆子——你问他任何理论问题他都能对答如流,但你说"帮我去楼下买瓶水",他就傻眼了。而AI Agent,就是给这个书呆子装上了手脚、配上了工具。条件二:工具调用基础设施完善。

求知若渴、虚心若愚 989

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

大模型Agent开发实战:从提示词工程到ReAct智能体构建

大语言模型(LLM)作为基于海量数据训练的概率模型,其核心能力在于理解和生成人类语言,通过模式匹配实现上下文理解与指令跟随。其技术原理在于将自然语言指令转化为可执行的推理过程,这催生了提示词工程这一关键领域,旨在通过结构化指令引导模型输出。在工程实践中,通过引入外部工具和规划能力,LLM可演化为具备自主决策与行动能力的智能体(Agent),极大拓展了其在自动化任务处理、数据分析等场景的应用价值。其中,ReAct(推理-行动)范式通过交替进行内部推理与外部工具调用,成为构建实用Agent的主流框架。本文聚焦于

weixin_34293911的博客 298

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

国产大模型评测与选型:从测试到部署的完整指南

在人工智能工程化落地中,大模型评测已从单一能力对比转向对稳定性、生态与成本的综合考量。开发者需要理解模型能力、工程稳定性与生态成熟度三个维度的差异,建立可复现的评测流程。通过自建最小评测集、统一API接入,结合Ollama与vLLM进行本地部署,能够有效验证模型在真实业务场景中的表现。同时,工具调用能力是Agent落地的关键,直接决定模型能否接入生产系统。本文从技术原理出发,梳理了从模型选型到部署集成的实践路径,帮助团队在国产大模型浪潮中做出更理性的决策。

weixin_33976072的博客 586

优秀Agent智能体必学的几种设计模式,一学就会

昨天在公司听了清华大学智能产业研究院现场分享的AI医院小镇。这是一个虚拟世界,所有的医生、护士、患者都是由LLM驱动的Agent智能体,可以自主交互。它们模拟了整个诊病看病的过程,在涵盖主要呼吸道疾病的MedQA数据集子集上,实现高达93.06%的最新准确率。一个优秀的智能体,离不开优秀的设计模式。看完这个案例,我赶紧拜读了吴恩达老师最近发表的 4 种主要的Agent设计模式。吴恩达是人工智能和机器学习领域国际上最权威的学者之一然后,赶紧整理出来,跟大家分享一下。

m0_59235945的博客 1633
上一篇: 七:Agent 安全攻防——你的智能体可能被“黑“
下一篇: 九:Text-to-SQL 智能数据查询与 Human-in-the-Loop 人机协作
yychen_java
博客等级 码龄8年 1451粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值