joyagent智能体学习(第1期):项目概览与架构解析

本章导读: 深入解析JoyAgent-JDGenie项目的背景定位、技术架构和核心设计理念,为后续章节的深度学习打下坚实基础。


1.1 项目背景与定位

1.1.1 多智能体领域现状分析

当前市场格局

在AI技术快速发展的今天,多智能体系统已成为人工智能应用的重要发展方向。然而,当前市场上的解决方案存在明显的层次划分:

🔧 SDK/框架类产品

  • SpringAI-Alibaba: 部分开源的SDK,严重依赖阿里云百炼平台
  • Coze: 仅开源部分Neo SDK,需要火山引擎平台支持
  • 特点: 需要大量二次开发,无法开箱即用

🏗️ 框架类产品

  • Dify: 开源智能体框架,主要专注于workflow设计
  • LangChain: 提供基础的Agent构建能力,但缺乏完整产品
  • AutoGPT: 早期的自主智能体尝试,更偏向实验性质
  • 特点: 提供基础能力,但距离生产可用还有很大距离

💡 完整产品类

  • ChatGPT: 商业闭源,功能强大但不可控
  • Claude: 同样是闭源商业产品
  • 特点: 功能完整但无法自主部署和定制

行业痛点分析

  1. 开发门槛高: 现有开源方案大多只提供基础框架,需要大量开发工作
  2. 生态依赖性: 许多方案绑定特定云平台,限制了部署灵活性
  3. 完整度不足: 缺乏端到端的完整解决方案
  4. 性能验证缺失: 少有产品提供权威的性能基准测试

1.1.2 JoyAgent-JDGenie的核心价值主张

🎯 解决"最后一公里"问题

JoyAgent-JDGenie的核心使命是解决快速构建多智能体产品的最后一公里问题。具体体现在:

端到端完整性

  • 不是SDK,不是框架,而是完整的产品
  • 用户输入query后可直接获得结果,无需二次开发
  • 包含完整的前端界面、后端服务、工具系统

轻量化部署

  • 无需依赖特定云平台或服务商
  • 支持本地部署,数据可控
  • Docker一键启动,降低部署成本

🏆 性能表现验证

在国际权威的GAIA榜单上,JoyAgent-JDGenie取得了优异成绩:

评测集 JoyAgent-JDGenie 行业对比
Validation集 75.15% 超越OWL、Smolagent、LRC-Huawei等
Test集 65.12% 达到行业先进水平

🔄 产品定位对比

graph TD A[多智能体解决方案] --> B[SDK/框架类] A --> C[完整产品类] B --> D[SpringAI-Alibaba\n部分开源+平台依赖] B --> E[Coze\n部分开源+平台依赖] B --> F[Dify\n开源框架需二次开发] C --> G[ChatGPT/Claude\n闭源商业产品] C --> H[JoyAgent-JDGenie\n完全开源+开箱即用] H --> I[端到端完整产品] H --> J[无平台依赖] H --> K[高性能验证] H --> L[轻量化部署]

1.1.3 项目特色与技术优势

🚀 开箱即用的产品体验

直接可用的能力

  • 用户query: "给我做一个最近美元和黄金的走势分析"
  • 系统输出: 完整的网页版或PPT版分析报告
  • 无需任何代码开发或配置

多格式交付能力

  • HTML网页报告: 适合在线展示和分享
  • PowerPoint演示: 适合商务汇报场景
  • Markdown文档: 适合技术文档和知识管理

🔧 高度可扩展的架构设计

插件化智能体系统

  • 新场景只需挂载相关子智能体或工具
  • 支持自定义智能体开发
  • 工具生态可无限扩展

标准化接口协议

  • 支持MCP (Model Context Protocol)标准
  • 兼容第三方工具集成
  • 提供统一的工具调用接口

1.2 整体技术架构

1.2.1 微服务架构设计

JoyAgent-JDGenie采用现代化的微服务架构,将系统分解为四个独立但协作的核心模块:

graph TB subgraph "用户层" UI[React前端界面\nui] end subgraph "服务层" Backend[Java后端服务\ngenie-backend] Client[Python客户端\ngenie-client] Tool[Python工具服务\ngenie-tool] end subgraph "外部服务" LLM[大语言模型\nOpenAI/DeepSeek/...] MCP[MCP工具生态\n第三方工具] end UI -->|HTTP/SSE| Backend Backend -->|HTTP| Client Client -->|HTTP| Tool Backend -->|API| LLM Tool -->|Protocol| MCP style UI fill:#e1f5fe style Backend fill:#f3e5f5 style Client fill:#e8f5e8 style Tool fill:#fff3e0

🏗️ 模块职责划分

1. genie-backend (Java后端服务)

  • 技术栈: Java 17 + Spring Boot + Maven
  • 核心职责 :
    • 智能体管理和调度
    • 用户请求处理和响应
    • SSE实时通信服务
    • 业务逻辑协调
  • 关键特性 :
    • 多智能体协作引擎
    • 异步任务处理机制
    • 配置管理和环境隔离

2. genie-client (Python客户端)

  • 技术栈: Python 3.11 + FastAPI
  • 核心职责 :
    • MCP协议实现
    • 工具服务代理
    • 外部系统集成
  • 关键特性 :
    • 标准化工具调用接口
    • 第三方服务适配
    • 错误处理和重试机制

3. genie-tool (Python工具模块)

  • 技术栈: Python 3.11 + FastAPI + 多种科学计算库
  • 核心职责 :
    • 核心工具执行逻辑
    • 代码解释和数据分析
    • 文件处理和格式转换
  • 关键特性 :
    • 安全的代码执行环境
    • 丰富的数据处理能力
    • 多格式报告生成

4. ui (React前端)

  • 技术栈: React 18 + TypeScript + Vite + TailwindCSS
  • 核心职责 :
    • 用户交互界面
    • 实时对话展示
    • 文件上传和预览
  • 关键特性 :
    • 现代化响应式设计
    • 流式消息渲染
    • 多媒体内容支持

1.2.2 服务间通信机制

📡 通信协议选择

HTTP RESTful API

  • 用于同步的服务间调用
  • 标准化的接口设计
  • 支持JSON数据格式

Server-Sent Events (SSE)

  • 用于实时数据推送
  • 前端与后端的流式通信
  • 支持长连接和断线重连

MCP (Model Context Protocol)

  • 工具集成的标准协议
  • 支持第三方工具接入
  • 提供统一的工具调用接口

🔄 数据流转设计

sequenceDiagram participant U as 用户 participant F as React前端 participant B as Java后端 participant C as Python客户端 participant T as Python工具 participant L as LLM服务 U->>F: 输入查询 F->>B: HTTP请求 B->>L: 调用LLM L->>B: 返回工具调用 B->>C: 工具执行请求 C->>T: 具体工具调用 T->>C: 工具执行结果 C->>B: 返回结果 B->>F: SSE推送进展 F->>U: 实时显示

1.2.3 技术栈选型分析

🎯 后端技术选择:Java + Spring Boot

选择Java的考量

  • 企业级成熟度: Java在企业环境中有广泛应用和支持
  • 并发性能: JVM的多线程机制适合处理并发请求
  • 生态完整性: Spring Boot提供了完整的企业级开发框架
  • 可维护性: 强类型系统和丰富的开发工具

Spring Boot的优势

  • 快速开发: 自动配置和约定优于配置
  • 微服务支持: 内置对微服务架构的支持
  • 监控运维: 完善的健康检查和监控机制

🎨 前端技术选择:React + TypeScript

React生态的优势

  • 组件化开发: 高复用性和可维护性
  • 丰富的生态: 大量第三方组件和工具
  • 性能优化: Virtual DOM和Hooks机制

TypeScript的价值

  • 类型安全: 编译时错误检查
  • 开发体验: 更好的IDE支持和代码提示
  • 代码质量: 更容易维护和重构

🐍 工具层技术选择:Python生态

Python的天然优势

  • AI/ML生态: 丰富的科学计算和机器学习库
  • 快速原型: 简洁的语法适合快速开发
  • 社区支持: 大量的开源工具和库

关键库选择

  • FastAPI: 现代的异步Web框架
  • pandas/numpy: 数据处理和科学计算
  • smolagents: 智能体框架集成
  • jinja2: 模板引擎用于报告生成

🐳 部署技术选择:Docker容器化

容器化的优势

  • 环境一致性: 开发、测试、生产环境统一
  • 快速部署: 一键启动整个系统
  • 资源隔离: 避免环境冲突
  • 水平扩展: 支持负载均衡和弹性伸缩

多阶段构建策略

dockerfile 复制代码
# 前端构建阶段
FROM node:20-alpine as frontend-builder
WORKDIR /app
RUN npm install -g pnpm
COPY ui/package.json ./
COPY ui/ .
RUN pnpm build

# 后端构建阶段  
FROM maven:3.8-openjdk-17 as backend-builder
WORKDIR /app
COPY genie-backend/pom.xml .
COPY genie-backend/src ./src
COPY genie-backend/build.sh ./
RUN chmod +x build.sh && ./build.sh

# 最终运行阶段
FROM python:3.11-slim
WORKDIR /app

# 安装系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    openjdk-17-jre-headless \
    netcat-openbsd \
    nodejs \
    npm \
    && npm install -g pnpm

# 复制前端构建产物
COPY --from=frontend-builder /app/dist /app/ui/dist

# 复制后端构建产物
COPY --from=backend-builder /app/target /app/backend/target

# 复制和配置Python服务
COPY genie-client/ /app/client/
COPY genie-tool/ /app/tool/

EXPOSE 3000 8080 1601
CMD ["./start_genie.sh"]

1.3 核心概念与术语

1.3.1 多智能体系统基础概念

🤖 智能体 (Agent)

定义: 智能体是能够感知环境、做出决策并执行行动的自主实体。

JoyAgent-JDGenie中的智能体类型:

java 复制代码
// 智能体基础类 - 管理代理状态和执行的基础类
@Slf4j
@Data
@Accessors(chain = true)
public abstract class BaseAgent {
    // 核心属性
    private String name;
    private String description;
    private String systemPrompt;
    private String nextStepPrompt;
    public ToolCollection availableTools = new ToolCollection();
    private Memory memory = new Memory();
    protected LLM llm;
    protected AgentContext context;

    // 执行控制
    private AgentState state = AgentState.IDLE;
    private int maxSteps = 10;
    private int currentStep = 0;
    private int duplicateThreshold = 2;

    // emitter
    Printer printer;

    // digital employee prompt
    private String digitalEmployeePrompt;

    /**
     * 执行单个步骤
     */
    public abstract String step();
    
    /**
     * 运行代理主循环
     */
    public String run(String query) {
        setState(AgentState.IDLE);
        // 实现省略...
    }
}

核心智能体类型:

  • PlanningAgent: 任务规划智能体,负责将复杂任务拆解为子任务
  • ReactImplAgent: ReAct模式智能体,采用思考-行动-观察循环
  • ExecutorAgent: 任务执行智能体,专门执行具体的工作任务
  • SummaryAgent: 结果总结智能体,整合多个任务结果

🔧 工具 (Tool)

定义: 工具是智能体用来与外部环境交互或执行特定功能的接口。

java 复制代码
// 工具基础接口
public interface BaseTool {
    String getName();                    // 工具名称
    String getDescription();             // 工具描述
    Map<String, Object> toParams();      // 参数定义
    Object execute(Object input);        // 执行逻辑
}

核心工具分类:

  • 代码解释器: 执行Python代码和数据分析
  • 深度搜索: 互联网信息检索和整理
  • 文件工具: 文件读写、格式转换
  • 报告工具: 生成HTML、PPT、Markdown格式报告

🧠 上下文 (Context)

定义: 上下文是智能体运行时的环境信息,包括任务状态、历史记录、可用资源等。

java 复制代码
// 智能体上下文
@Data
@Builder
@Slf4j
@NoArgsConstructor
@AllArgsConstructor
public class AgentContext {
    String requestId;
    String sessionId;
    String query;
    String task;
    Printer printer;
    ToolCollection toolCollection;
    String dateInfo;
    List<File> productFiles;
    Boolean isStream;
    String streamMessageType;
    String sopPrompt;
    String basePrompt;
    Integer agentType;
    List<File> taskProductFiles;
}

1.3.2 ReAct模式 vs Plan-Execute模式

🔄 ReAct模式 (Reasoning and Acting)

核心理念: 将推理(Reasoning)和行动(Acting)结合,通过观察(Observation)形成闭环。

执行流程:

graph LR T[Think 思考] --> A[Act 行动] A --> O[Observe 观察] O --> T O --> D[Done 完成]

适用场景:

  • 需要动态调整策略的任务
  • 信息不完整需要逐步探索
  • 错误可以通过重试修正

ReactImplAgent在JoyAgent-JDGenie中的实现:

java 复制代码
@Override
public boolean think() {
    // 获取文件内容
    String filesStr = FileUtil.formatFileInfo(context.getProductFiles(), true);
    setSystemPrompt(getSystemPromptSnapshot().replace("{{files}}", filesStr));
    setNextStepPrompt(getNextStepPromptSnapshot().replace("{{files}}", filesStr));

    if (!getMemory().getLastMessage().getRole().equals(RoleType.USER)) {
        Message userMsg = Message.userMessage(getNextStepPrompt(), null);
        getMemory().addMessage(userMsg);
    }
    try {
        // 获取带工具选项的响应
        context.setStreamMessageType("tool_thought");

        CompletableFuture<LLM.ToolCallResponse> future = getLlm().askTool(
                context,
                getMemory().getMessages(),
                Message.systemMessage(getSystemPrompt(), null),
                availableTools,
                ToolChoice.AUTO, null, context.getIsStream(), 300
        );

        LLM.ToolCallResponse response = future.get();
        setToolCalls(response.getToolCalls());

        // 记录响应信息
        if (!context.getIsStream() && response.getContent() != null && !response.getContent().isEmpty()) {
            printer.send("tool_thought", response.getContent());
        }

        // 创建并添加助手消息
        Message assistantMsg = response.getToolCalls() != null && !response.getToolCalls().isEmpty() && !"struct_parse".equals(llm.getFunctionCallType()) ?
                Message.fromToolCalls(response.getContent(), response.getToolCalls()) :
                Message.assistantMessage(response.getContent(), null);
        getMemory().addMessage(assistantMsg);

    } catch (Exception e) {
        log.error("{} react think error", context.getRequestId(), e);
        getMemory().addMessage(Message.assistantMessage(
                "Error encountered while processing: " + e.getMessage(), null));
        setState(AgentState.FINISHED);
        return false;
    }

    return true;
}

📋 Plan-Execute模式

核心理念: 先制定完整计划,再按计划逐步执行。

执行流程:

graph TD P[Plan 制定计划] --> E1[Execute 执行任务1] E1 --> E2[Execute 执行任务2] E2 --> E3[Execute 执行任务3] E3 --> S[Summary 总结结果]

适用场景:

  • 复杂的长期任务
  • 需要资源协调的场景
  • 有明确目标和约束条件

PlanningAgent在JoyAgent-JDGenie中的实现:

java 复制代码
// 规划代理 - 创建和管理任务计划的代理
@Slf4j
@Data
@EqualsAndHashCode(callSuper = true)
public class PlanningAgent extends ReActAgent {
    
    private List<ToolCall> toolCalls;
    private Integer maxObserve;
    private PlanningTool planningTool = new PlanningTool();
    private Boolean isColseUpdate;
    private String systemPromptSnapshot;
    private String nextStepPromptSnapshot;
    private String planId;

    public PlanningAgent(AgentContext context) {
        setName("planning");
        setDescription("An agent that creates and manages plans to solve tasks");
        ApplicationContext applicationContext = SpringContextHolder.getApplicationContext();
        GenieConfig genieConfig = applicationContext.getBean(GenieConfig.class);

        StringBuilder toolPrompt = new StringBuilder();
        for (BaseTool tool : context.getToolCollection().getToolMap().values()) {
            toolPrompt.append(String.format("工具名:%s 工具描述:%s\n", tool.getName(), tool.getDescription()));
        }

        String promptKey = "default";
        String nextPromptKey = "default";
        setSystemPrompt(genieConfig.getPlannerSystemPromptMap().getOrDefault(promptKey, PlanningPrompt.SYSTEM_PROMPT)
                .replace("{{tools}}", toolPrompt.toString())
                .replace("{{query}}", context.getQuery())
                .replace("{{date}}", context.getDateInfo())
                .replace("{{sopPrompt}}", context.getSopPrompt()));
        setNextStepPrompt(genieConfig.getPlannerNextStepPromptMap().getOrDefault(nextPromptKey, PlanningPrompt.NEXT_STEP_PROMPT)
                .replace("{{tools}}", toolPrompt.toString())
                .replace("{{query}}", context.getQuery())
                .replace("{{date}}", context.getDateInfo())
                .replace("{{sopPrompt}}", context.getSopPrompt()));

        setSystemPromptSnapshot(getSystemPrompt());
        setNextStepPromptSnapshot(getNextStepPrompt());

        setPrinter(context.printer);
        setMaxSteps(genieConfig.getPlannerMaxSteps());
        setLlm(new LLM(genieConfig.getPlannerModelName(), ""));

        setContext(context);
        setIsColseUpdate("1".equals(genieConfig.getPlanningCloseUpdate()));

        // 初始化工具集合
        availableTools.addTool(planningTool);
        planningTool.setAgentContext(context);
    }
}

🔀 Multi-level and Multi-pattern思考

JoyAgent-JDGenie的创新在于结合了两种模式:

Multi-level (多层级):

  • Work Level: 工作级别的高层规划
  • Task Level: 任务级别的具体执行

Multi-pattern (多模式):

  • Plan-Executor模式: 用于复杂任务的整体规划
  • ReAct模式: 用于动态的任务执行和调整

1.3.3 工具调用与函数执行机制

🔧 工具调用流程

标准化调用接口:

java 复制代码
// 工具调用类
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ToolCall {
    private String id;
    private String type;
    private Function function;

    /**
     * 函数信息类
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class Function {
        private String name;
        private String arguments;
    }
}

执行流程:

sequenceDiagram participant A as Agent participant T as ToolManager participant C as CodeInterpreter participant S as SearchTool A->>T: 工具调用请求 T->>T: 解析工具名称和参数 alt 代码执行 T->>C: 执行Python代码 C->>T: 返回执行结果 else 搜索请求 T->>S: 执行搜索查询 S->>T: 返回搜索结果 end T->>A: 统一格式结果

🛡️ 安全执行机制

代码执行安全:

  • 沙箱环境隔离
  • 资源使用限制
  • 恶意代码检测

网络访问控制:

  • API调用频率限制
  • 白名单域名访问
  • 敏感信息过滤

1.3.4 流式输出与实时交互

📡 Server-Sent Events (SSE)

技术原理: SSE是HTML5标准的一部分,允许服务器向客户端推送数据。

在JoyAgent-JDGenie中的应用:

java 复制代码
/**
 * 执行智能体调度
 * @param request
 * @return
 * @throws UnsupportedEncodingException
 */
@PostMapping("/AutoAgent")
public SseEmitter AutoAgent(@RequestBody AgentRequest request) throws UnsupportedEncodingException {

    log.info("{} auto agent request: {}", request.getRequestId(), JSON.toJSONString(request));

    Long AUTO_AGENT_SSE_TIMEOUT = 60 * 60 * 1000L;

    SseEmitter emitter = new SseEmitter(AUTO_AGENT_SSE_TIMEOUT);
    // SSE心跳
    ScheduledFuture<?> heartbeatFuture = startHeartbeat(emitter, request.getRequestId());
    // 监听SSE事件
    registerSSEMonitor(emitter, request.getRequestId(), heartbeatFuture);
    // 拼接输出类型
    request.setQuery(handleOutputStyle(request));
    // 执行调度引擎
    ThreadUtil.execute(() -> {
        try {
            Printer printer = new SSEPrinter(emitter, request, request.getAgentType());
            AgentContext agentContext = AgentContext.builder()
                    .requestId(request.getRequestId())
                    .sessionId(request.getRequestId())
                    .printer(printer)
                    .query(request.getQuery())
                    .task("")
                    .dateInfo(DateUtil.CurrentDateInfo())
                    .productFiles(new ArrayList<>())
                    .taskProductFiles(new ArrayList<>())
                    .sopPrompt(request.getSopPrompt())
                    .basePrompt(request.getBasePrompt())
                    .agentType(request.getAgentType())
                    .isStream(Objects.nonNull(request.getIsStream()) ? request.getIsStream() : false)
                    .build();

            // 构建工具列表
            agentContext.setToolCollection(buildToolCollection(agentContext, request));
            // 根据数据类型获取对应的处理器
            AgentHandlerService handler = agentHandlerFactory.getHandler(agentContext, request);
            // 执行处理逻辑
            handler.handle(agentContext, request);
            // 关闭连接
            emitter.complete();
        } catch (Exception e) {
            log.error("{} auto agent error", request.getRequestId(), e);
            emitter.completeWithError(e);
        }
    });
    
    return emitter;
}

流式输出的优势:

  • 实时反馈: 用户可以看到处理进展
  • 更好体验: 避免长时间等待的焦虑
  • 错误处理: 可以及时发现和处理错误

💬 实时交互设计

前端流式渲染:

typescript 复制代码
// SSE配置接口
interface SSEConfig {
  body: any;
  handleMessage: (data: any) => void;
  handleClose: () => void;
}

// 创建服务器发送事件(SSE)连接
export default (config: SSEConfig, url: string = DEFAULT_SSE_URL): void => {
  const { body = null, handleMessage, handleError, handleClose } = config;

  fetchEventSource(url, {
    method: 'POST',
    credentials: 'include',
    headers: {
      'Content-Type': 'application/json',
      'Cache-Control': 'no-cache',
      'Connection': 'keep-alive',
      'Accept': 'text/event-stream',
    },
    body: JSON.stringify(body),
    openWhenHidden: true,
    onmessage(event: EventSourceMessage) {
      if (event.data) {
        try {
          const parsedData = JSON.parse(event.data);
          handleMessage(parsedData);
        } catch (error) {
          console.error('Error parsing SSE message:', error);
          handleError(new Error('Failed to parse SSE message'));
        }
      }
    },
    onerror(error: Error) {
      console.error('SSE error:', error);
      handleError(error);
    },
    onclose() {
      console.log('SSE connection closed');
      handleClose();
    }
  });
};

// 在React组件中的使用
const sendMessage = useMemoizedFn((inputInfo: CHAT.TInputInfo) => {
  const {message, deepThink, outputStyle} = inputInfo;
  const requestId = getUniqId();
  let currentChat = combineCurrentChat(inputInfo, sessionId, requestId);
  chatList.current =  [...chatList.current, currentChat];
  
  setLoading(true);
  const params = {
    sessionId: sessionId,
    requestId: requestId,
    query: message,
    deepThink: deepThink ? 1 : 0,
    outputStyle
  };
  
  const handleMessage = (data: MESSAGE.Answer) => {
    const { finished, resultMap, packageType, status } = data;
    if (packageType !== "heartbeat") {
      requestAnimationFrame(() => {
        if (resultMap?.eventData) {
          currentChat = combineData(resultMap.eventData || {}, currentChat);
          const taskData = handleTaskData(currentChat, deepThink, currentChat.multiAgent);
          setTaskList(taskData.taskList);
          updatePlan(taskData.plan!);
          
          if (finished) {
            currentChat.loading = false;
            setLoading(false);
          }
          
          const newChatList = [...chatList.current];
          newChatList.splice(newChatList.length - 1, 1, currentChat);
          chatList.current = newChatList;
        }
      });
    }
  };
  
  // 调用SSE连接
  querySSE({
    body: params,
    handleMessage: handleMessage,
    handleClose: () => {
      setLoading(false);
    }
  });
});

消息类型定义:

  • 思考消息: 智能体的推理过程
  • 行动消息: 工具调用和执行状态
  • 结果消息: 任务完成的最终结果
  • 错误消息: 异常情况的处理信息

本章小结

通过本章的深入分析,我们全面了解了JoyAgent-JDGenie项目的核心价值和技术架构:

🎯 核心价值

  • 解决最后一公里问题: 提供端到端的完整产品,真正做到开箱即用
  • 轻量化部署: 无需依赖特定云平台,支持本地独立部署
  • 性能验证: 在权威GAIA榜单上的优异表现证明了技术实力

🏗️ 架构优势

  • 微服务设计: 四大模块各司其职,可独立开发和部署
  • 技术栈合理: Java后端的稳定性 + Python工具的灵活性 + React前端的现代化
  • 通信机制: HTTP API + SSE实时推送 + MCP标准协议

🧠 设计理念

  • 多模式融合: ReAct和Plan-Execute模式的有机结合
  • 多层级思考: Work Level和Task Level的分层处理
  • 工具生态: 可扩展的工具系统和标准化接口

下一章我们将深入探讨智能体的核心设计模式,详细分析每种智能体的实现原理和协作机制。

相关推荐
科大饭桶23 分钟前
昇腾AI自学Day2-- 深度学习基础工具与数学
人工智能·pytorch·python·深度学习·numpy
什么都想学的阿超42 分钟前
【大语言模型 02】多头注意力深度剖析:为什么需要多个头
人工智能·语言模型·自然语言处理
努力还债的学术吗喽1 小时前
2021 IEEE【论文精读】用GAN让音频隐写术骗过AI检测器 - 对抗深度学习的音频信息隐藏
人工智能·深度学习·生成对抗网络·密码学·音频·gan·隐写
明道云创始人任向晖1 小时前
20个进入实用阶段的AI应用场景(零售电商业篇)
人工智能·零售
数据智研1 小时前
【数据分享】大清河(大庆河)流域上游土地利用
人工智能
聚客AI2 小时前
🔷告别天价算力!2025性价比最高的LLM私有化训练路径
人工智能·llm·掘金·日新计划
天波信息技术分享2 小时前
AI 云电竞游戏盒子:从“盒子”到“云-端-芯”一体化竞技平台的架构实践
人工智能·游戏·架构
用户5191495848452 小时前
curl --continue-at 参数异常行为分析:文件覆盖与删除风险
人工智能·aigc
是乐谷2 小时前
阿里云杭州 AI 产品法务岗位信息分享(2025 年 8 月)
java·人工智能·阿里云·面试·职场和发展·机器人·云计算