尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

从零构建AI智能体:Agent Skills架构实战与DeepResearch技能集成

从零构建AI智能体:Agent Skills架构实战与DeepResearch技能集成 这次我们来看一个关于 Agent Skills 架构的项目实战教程。这个项目不是单纯的理论讲解而是聚焦于如何从零开始构建一个具备实际技能Skills的智能体Agent系统并整合 DeepResearch 等高级能力。对于开发者而言最关心的问题往往是这套架构能不能跑起来代码是否清晰可复用能否处理复杂的任务流本文将手把手带你从环境搭建、核心架构解析到代码实战和功能验证最终实现一个可运行的智能体原型。项目的核心在于将抽象的“智能体”概念落地为具体的、可执行的代码模块。它通常包含任务规划、工具调用Skills、记忆管理、决策执行等关键组件。通过本教程你将能掌握如何设计一个松耦合、易扩展的 Agent 架构并为其集成诸如网络搜索、数据分析、代码执行等具体技能。无论是想深入理解 AI Agent 的实现原理还是希望为自己的项目添加自动化智能模块这篇文章都能提供一条清晰的实践路径。下面我们将按照“环境准备 - 架构拆解 - 代码实现 - 功能测试 - 部署优化”的流程完整走一遍这个 Agent Skills 项目的实战过程。你会看到如何组织项目代码、如何定义技能接口、如何实现一个简单的任务执行引擎以及如何通过 DeepResearch 技能让 Agent 自主获取并整合信息。1. 核心能力速览在深入代码之前我们先快速了解这个 Agent Skills 架构项目能做什么以及它的技术特点。能力项说明项目类型AI Agent 实现框架与技能库实战核心目标构建可执行多步骤任务、具备工具调用能力的智能体系统关键技术栈Python (主流) 可能涉及 LangChain、LlamaIndex 等 Agent 框架基础概念硬件门槛开发阶段对 GPU 无强制要求CPU 即可运行。若集成大模型则需相应 GPU 资源。核心组件任务规划器 (Planner)、技能执行器 (Skill Executor)、记忆模块 (Memory)、工具集 (Tools)技能示例DeepResearch (深度研究/搜索)、数据分析、文件操作、代码解释、API调用等启动与测试通过 Python 脚本启动提供 CLI 或简单 Web 交互进行功能验证是否支持 API架构上支持扩展为 API 服务便于集成到其他系统是否支持批量任务通过任务队列或循环机制可支持批量异步任务处理适合场景学习 Agent 架构、开发自动化工作流、构建个人智能助手、研究任务分解与执行2. 适用场景与使用边界在开始动手之前明确这个项目的适用场景和限制非常重要这能帮助你判断它是否是你需要的解决方案。适用场景教育与学习对于想深入了解 AI Agent 内部工作机制而非仅仅调用 API 的开发者这是一个绝佳的实战项目。你可以清晰地看到任务如何被分解、工具如何被调用、结果如何被整合。原型开发与验证当你有一个自动化流程的想法例如自动撰写周报、监控数据并报警、整理文献摘要可以基于此架构快速搭建原型验证其可行性。定制化智能工具需要为特定领域如法律、金融、科研构建具备专业技能的助手。你可以基于此架构注入领域知识库和专用工具Skills。架构参考如果你正在设计自己的 Agent 系统这个项目的代码结构、模块划分和设计模式可以提供直接的参考。使用边界与注意事项非生产级框架这类教程项目通常侧重于教学和原理演示在代码健壮性、异常处理、安全审计、性能优化方面可能与成熟的工业级框架如 LangChain、AutoGen有差距。适合用于学习和原型直接用于高并发生产环境需谨慎。技能Skills需要自行实现或集成项目会定义技能接口和几个示例如 DeepResearch但复杂的、业务相关的技能需要你自己编码或接入第三方 API。大模型依赖Agent 的“大脑”规划、决策通常需要大语言模型LLM驱动。本项目可能不包含或仅包含一个轻量级模拟器实际使用时需要接入 OpenAI、Claude 或本地部署的开源模型并承担相应的成本与合规要求。安全与合规当 Agent 具备执行代码、访问网络、操作文件等技能时必须构建严格的安全沙箱和权限控制。在实验环境中务必在隔离的容器或虚拟机中进行避免对主机系统造成影响。使用网络搜索DeepResearch技能时需遵守目标网站的服务条款和 robots.txt 协议。3. 环境准备与前置条件让我们开始准备实战环境。一个干净、可控的环境是成功的第一步。操作系统推荐Ubuntu 20.04/22.04 LTS 或 Windows 10/11 with WSL2。macOS 也可行。说明项目基于 Python主流操作系统均可。使用 Linux 或 WSL2 在依赖管理上通常更顺畅。Python 环境版本Python 3.8 - 3.11。建议使用 3.9 或 3.10这是大多数 AI 库兼容性最好的版本。管理工具强烈建议使用conda或venv创建独立的虚拟环境避免包冲突。# 使用 conda 创建环境 conda create -n agent_skills python3.9 conda activate agent_skills # 或使用 venv python -m venv venv_agent_skills # Linux/macOS source venv_agent_skills/bin/activate # Windows venv_agent_skills\Scripts\activate关键依赖核心依赖会根据项目具体实现而有所不同但通常包含以下几类基础框架fastapi(如果提供 Web API),pydantic(数据验证)。HTTP 客户端httpx或requests用于技能调用外部 API。大模型交互openai(如需接入 GPT)或transformers,langchain等。数据处理pandas,numpy(如果涉及数据分析技能)。其他工具库beautifulsoup4,markdown等用于 DeepResearch 技能解析网页和格式化内容。开发工具代码编辑器VS Code, PyCharm 等。Git用于克隆项目代码和版本管理。磁盘空间预留至少 2-5 GB 空间用于存放代码、虚拟环境和可能的模型缓存。4. 项目结构与核心架构拆解假设我们获取的项目代码结构如下这是典型 Agent 项目的组织方式agent-skills-tutorial/ ├── README.md ├── requirements.txt ├── main.py # 主入口启动 Agent ├── config.yaml # 配置文件模型API密钥、技能开关等 ├── core/ # 核心架构模块 │ ├── __init__.py │ ├── agent.py # Agent 主类协调各个组件 │ ├── planner.py # 任务规划器 │ ├── memory.py # 记忆模块对话历史、知识 │ └── executor.py # 技能执行器 ├── skills/ # 技能Tools实现目录 │ ├── __init__.py │ ├── base_skill.py # 技能基类定义接口 │ ├── deep_research.py # DeepResearch 技能 │ ├── calculator.py # 计算器技能 │ ├── web_search.py # 网络搜索技能可能调用 SerperAPI 等 │ └── file_operator.py # 文件操作技能需注意安全 ├── models/ # 可能存放本地小模型或适配器 │ └── mock_llm.py # 用于测试的模拟 LLM └── tests/ # 单元测试 └── test_skills.py核心架构组件工作流用户输入用户提出一个复杂请求如“研究一下特斯拉2025年的最新电池技术并总结成一份报告”。任务规划 (Planner)planner.py中的规划器通常由 LLM 驱动将复杂请求分解为一系列可执行的子任务。例如子任务1使用web_search技能搜索“特斯拉 2025 电池技术”。子任务2使用deep_research技能对搜索结果中的关键文章进行深度内容提取和分析。子任务3使用file_operator技能将分析结果写入report.md文件。技能执行 (Executor)executor.py中的执行器根据规划依次调用skills/目录下对应的技能类。每个技能如DeepResearchSkill都继承自base_skill.py实现标准的execute()方法。记忆管理 (Memory)memory.py负责存储对话历史、中间结果和上下文信息供规划器和后续步骤使用。结果整合与输出执行器收集各技能的执行结果可能再次调用 LLM 进行总结最终将报告返回给用户。这个流程清晰地将“思考”规划和“行动”执行分离是 Agent 架构的核心思想。5. 安装部署与启动方式步骤一获取项目代码# 假设项目托管在 GitHub git clone 项目仓库地址 cd agent-skills-tutorial步骤二安装依赖# 激活你的虚拟环境后安装依赖 pip install -r requirements.txt # 如果项目没有提供 requirements.txt可能需要手动安装 pip install fastapi uvicorn httpx pydantic步骤三配置关键参数编辑config.yaml或.env文件填入必要的配置。例如# config.yaml 示例 llm: provider: openai # 或 mock, anthropic, local api_key: ${OPENAI_API_KEY} # 建议从环境变量读取 model: gpt-4o-mini skills: deep_research: enabled: true max_depth: 2 web_search: enabled: true api_key: ${SERPER_API_KEY}对于需要 API 密钥的技能如 Web 搜索你需要先注册相应服务并获取密钥。步骤四启动 Agent 服务根据项目设计启动方式可能有两种命令行交互模式 (CLI)python main.py --mode cli启动后直接在终端与 Agent 对话。Web API 服务模式python main.py --mode api --port 8000 # 或使用 uvicorn 直接启动 FastAPI app # uvicorn core.api:app --host 0.0.0.0 --port 8000 --reload启动后可以通过http://localhost:8000/docs访问交互式 API 文档并通过 HTTP 请求与 Agent 交互。6. 核心技能代码实战以 DeepResearch 为例让我们深入一个具体技能的实现DeepResearchSkill是该项目的一个亮点。它不仅仅是简单搜索而是包含了查询生成、多源获取、内容提炼和总结的链条。技能基类定义 (skills/base_skill.py):from abc import ABC, abstractmethod from pydantic import BaseModel from typing import Any, Dict class SkillInput(BaseModel): 技能输入的通用数据模型 task_description: str parameters: Dict[str, Any] {} class SkillOutput(BaseModel): 技能输出的通用数据模型 success: bool result: Any error_message: str class BaseSkill(ABC): 所有技能必须继承的基类 name: str base_skill description: str A base skill. abstractmethod async def execute(self, input_data: SkillInput) - SkillOutput: 执行技能的核心方法 passDeepResearch 技能实现 (skills/deep_research.py):import httpx from bs4 import BeautifulSoup import markdown from .base_skill import BaseSkill, SkillInput, SkillOutput from typing import List, Dict import asyncio class DeepResearchSkill(BaseSkill): name deep_research description Performs in-depth research on a topic by searching, fetching, and summarizing content from multiple web sources. def __init__(self, search_skill, llm_client): # 依赖注入需要搜索技能和LLM客户端 self.search_skill search_skill self.llm_client llm_client async def execute(self, input_data: SkillInput) - SkillOutput: topic input_data.task_description max_sources input_data.parameters.get(max_sources, 3) try: # 1. 生成搜索查询 search_queries await self._generate_search_queries(topic) # 2. 并发执行搜索 search_tasks [] for query in search_queries[:2]: # 取前两个查询 search_input SkillInput(task_descriptionquery) search_tasks.append(self.search_skill.execute(search_input)) search_results await asyncio.gather(*search_tasks) # 3. 提取并获取网页内容 urls [] for result in search_results: if result.success and urls in result.result: urls.extend(result.result[urls][:max_sources]) contents await self._fetch_urls_contents(urls[:max_sources]) # 4. 使用 LLM 进行内容分析和总结 summary await self._summarize_contents(topic, contents) return SkillOutput( successTrue, result{ topic: topic, sources_used: len(contents), summary: summary, raw_contents: contents # 注意实际生产环境可能只返回摘要 } ) except Exception as e: return SkillOutput(successFalse, resultNone, error_messagestr(e)) async def _generate_search_queries(self, topic: str) - List[str]: 使用LLM生成针对性的搜索查询 prompt f针对以下研究主题生成3个具体、有效的网络搜索查询词。 主题{topic} 返回格式每行一个查询词。 # 调用 LLM (这里简化处理) response await self.llm_client.chat(prompt) # 解析 response返回查询词列表 queries [q.strip() for q in response.split(\n) if q.strip()] return queries if queries else [topic] async def _fetch_urls_contents(self, urls: List[str]) - List[Dict]: 并发获取URL的正文内容 async with httpx.AsyncClient(timeout10.0) as client: tasks [self._fetch_single_url(client, url) for url in urls] results await asyncio.gather(*tasks, return_exceptionsTrue) valid_contents [] for url, result in zip(urls, results): if isinstance(result, Exception): print(fFailed to fetch {url}: {result}) continue if result: valid_contents.append({url: url, content: result}) return valid_contents async def _fetch_single_url(self, client: httpx.AsyncClient, url: str) - str: 获取单个URL并提取正文文本 try: resp await client.get(url, follow_redirectsTrue) resp.raise_for_status() soup BeautifulSoup(resp.text, html.parser) # 简单的正文提取移除脚本、样式获取文本 for script in soup([script, style]): script.decompose() text soup.get_text(separator , stripTrue) return text[:5000] # 限制长度 except Exception as e: raise e async def _summarize_contents(self, topic: str, contents: List[Dict]) - str: 使用LLM总结多篇内容 combined_content \n\n---\n\n.join([fSource: {c[url]}\n\n{c[content][:1000]} for c in contents]) prompt f请基于以下关于“{topic}”的多个来源信息撰写一份简洁、全面的总结报告。 要求突出重点发现、不同观点如果有和关键数据。 信息来源 {combined_content} 总结报告 response await self.llm_client.chat(prompt) return response这段代码展示了一个相对完整的 DeepResearch 技能实现。它串联了多个子步骤并使用了异步编程来提高 I/O 密集型操作网络请求的效率。在实际项目中你可能需要添加更健壮的错误处理、内容去重、可信度评估等机制。7. 功能测试与效果验证部署完成后我们需要验证整个 Agent 系统是否按预期工作。我们从简单到复杂进行测试。测试 1基础技能调用测试首先绕过规划器直接测试单个技能是否工作正常。可以编写一个简单的测试脚本test_skill.pyimport asyncio from skills.calculator import CalculatorSkill from skills.base_skill import SkillInput async def test_calculator(): skill CalculatorSkill() # 测试计算器技能 input_data SkillInput(task_description计算 3 的平方加上 4 的立方, parameters{}) result await skill.execute(input_data) print(f技能: {skill.name}) print(f输入: {input_data.task_description}) print(f成功: {result.success}) print(f结果: {result.result}) print(f错误: {result.error_message}) if __name__ __main__: asyncio.run(test_calculator())运行此脚本预期应输出成功并给出计算结果3^2 4^3 9 64 73。这验证了技能模块的基本执行链路是通的。测试 2完整 Agent 流程测试使用模拟 LLM为了避免在测试初期就消耗真实 LLM API 费用项目通常会提供一个模拟 LLM (models/mock_llm.py)。它可以根据预设规则返回固定响应用于测试架构流程。# 启动 Agent 并使用模拟 LLM python main.py --mode cli --llm mock在 CLI 中输入一个简单任务如“今天的日期是什么”。模拟 LLM 可能会被配置为识别此问题并调用get_current_time技能如果存在或者直接返回一个固定文本。这个测试的目的是验证 Agent 的主循环、技能路由和结果返回流程是否正常。测试 3集成真实 LLM 与 DeepResearch 技能这是核心功能验证。确保你的config.yaml中配置了有效的 LLM API 密钥如 OpenAI。启动 API 服务python main.py --mode api --port 8000使用curl或 Python 脚本发送一个研究请求# test_research.py import requests import json url http://localhost:8000/agent/run payload { query: 简要总结一下量子计算在密码学领域当前面临的主要挑战。, session_id: test_session_001 } headers {Content-Type: application/json} response requests.post(url, jsonpayload, headersheaders, timeout120) if response.status_code 200: result response.json() print(任务状态:, result.get(status)) print(最终答案:, result.get(final_answer, 无)) print(执行步骤:, json.dumps(result.get(steps, []), indent2, ensure_asciiFalse)) else: print(请求失败:, response.status_code, response.text)观察执行过程在服务端日志中你应该能看到类似以下的输出[INFO] 收到查询: “简要总结一下量子计算在密码学领域当前面临的主要挑战。” [INFO] 规划器生成步骤: 1. 使用 web_search 搜索“量子计算 密码学 挑战”。 2. 使用 deep_research 分析前3条结果。 3. 使用 summarizer 生成总结。 [INFO] 执行技能: web_search, 参数: {“query”: “量子计算 密码学 挑战”} [INFO] 技能 web_search 执行成功获得5条结果。 [INFO] 执行技能: deep_research, 参数: {“urls”: [...]} [INFO] 技能 deep_research 执行成功获得分析摘要。 [INFO] 任务完成返回总结给用户。验证结果检查返回的final_answer。它应该是一段连贯的、基于网络信息的总结文本而不是简单的搜索片段拼接。这证明了 DeepResearch 技能确实进行了内容获取、分析和整合。测试成功的标准Agent 能正确解析复杂任务并生成执行计划。规划器能正确调用相应的技能。每个技能能独立完成工作并返回结构化结果。DeepResearch 技能能实际获取网页内容并生成有信息增量的总结。整个流程能顺利完成无未处理的异常。8. 接口 API 与批量任务设计一个成熟的 Agent 系统需要提供稳定的接口并能处理批量任务。API 接口设计示例项目如果使用 FastAPI其核心接口可能如下# core/api.py from fastapi import FastAPI, BackgroundTasks from pydantic import BaseModel from typing import Optional from .agent import Agent # 导入你的 Agent 主类 app FastAPI(titleAgent Skills API) agent Agent() # 全局 Agent 实例 class AgentRequest(BaseModel): query: str session_id: Optional[str] None parameters: Optional[dict] {} class AgentResponse(BaseModel): status: str # “processing”, “success”, “error” task_id: Optional[str] None final_answer: Optional[str] None steps: Optional[list] None error: Optional[str] None app.post(/v1/run, response_modelAgentResponse) async def run_agent(request: AgentRequest): 同步运行Agent适合快速任务 try: result await agent.run(request.query, request.session_id, request.parameters) return AgentResponse(statussuccess, **result) except Exception as e: return AgentResponse(statuserror, errorstr(e)) app.post(/v1/run/async, response_modelAgentResponse) async def run_agent_async(request: AgentRequest, background_tasks: BackgroundTasks): 异步运行Agent返回任务ID适合长任务 task_id generate_task_id() background_tasks.add_task(process_async_task, task_id, request) return AgentResponse(statusprocessing, task_idtask_id) app.get(/v1/task/{task_id}) async def get_task_status(task_id: str): 查询异步任务状态 status task_manager.get_status(task_id) return {task_id: task_id, status: status}批量任务处理思路对于需要处理大量独立任务的场景如分析100份文档可以在run_agent_async基础上构建队列。任务队列使用CeleryRedis或RQ(Redis Queue) 管理任务队列。批量提交提供一个/v1/batch接口接收任务列表为每个任务生成唯一ID并提交到队列。状态监控提供接口查询批量任务的整体进度和每个子任务的状态。结果收集任务完成后将结果存储到数据库如 SQLite、PostgreSQL或文件系统中供用户批量下载。一个简单的批量任务处理器示例# batch_processor.py import asyncio import aiohttp from typing import List async def process_batch_queries(queries: List[str], api_url: str, concurrency: int 3): 并发处理一批查询 semaphore asyncio.Semaphore(concurrency) async def process_one(query: str): async with semaphore: async with aiohttp.ClientSession() as session: payload {query: query} async with session.post(api_url, jsonpayload) as resp: return await resp.json() tasks [process_one(q) for q in queries] results await asyncio.gather(*tasks, return_exceptionsTrue) # 处理结果和异常 return results9. 资源占用与性能观察Agent 系统的性能取决于多个因素在开发和测试阶段需要重点关注。1. LLM API 调用开销延迟这是最主要的性能瓶颈。一次 DeepResearch 任务可能涉及多次 LLM 调用生成查询、总结内容加上网络搜索和抓取的延迟总耗时可能达到数十秒。成本如果使用 GPT-4 等模型频繁调用成本不菲。在测试阶段尽量使用gpt-3.5-turbo或本地小模型。观察方法在代码中关键节点添加计时日志或使用像langsmith这样的追踪工具。2. 本地资源占用CPU/内存如果技能涉及本地文档解析、数据处理或运行本地轻量模型会占用 CPU 和内存。使用htop(Linux) 或任务管理器 (Windows) 监控。网络 I/ODeepResearch 技能并发获取网页内容时会创建大量 HTTP 连接。确保你的代码使用了异步客户端如httpx.AsyncClient并合理控制并发数asyncio.Semaphore避免对目标网站造成压力或被封 IP。磁盘 I/O如果技能包含文件读写注意路径权限和磁盘速度。3. 优化建议缓存对频繁查询的相同或相似问题引入缓存机制如redis或diskcache直接返回历史结果。超时与重试为所有网络请求设置合理的超时并实现重试逻辑使用指数退避。限制并发与深度在 DeepResearch 技能中限制并发请求数如3-5个和搜索深度避免无限递归。使用更便宜的技能在规划阶段让 LLM 优先选择成本低、速度快的技能。例如能直接计算就不要去搜索。10. 常见问题与排查方法在实践过程中你可能会遇到以下问题问题现象可能原因排查方式解决方案启动失败提示缺少模块依赖未安装或虚拟环境未激活检查requirements.txt运行pip list确认包是否存在激活虚拟环境运行pip install -r requirements.txt运行时报ImportError项目结构问题Python 路径不对检查文件__init__.py是否存在尝试在项目根目录运行设置PYTHONPATH或在 IDE 中将项目根目录标记为 Sources RootAgent 不调用技能直接由 LLM 回答规划器Planner提示词设计问题或 LLM 配置不对检查规划器生成的任务步骤日志。检查是否使用了模拟 LLMMock LLM优化规划器提示词确保其理解可用技能列表。切换到真实 LLM 进行测试。DeepResearch 技能卡住或无返回网络请求超时、目标网站反爬、或异步编程错误查看技能执行日志检查是否有异常抛出。用curl手动测试目标 URL 是否可访问。增加请求超时时间添加 User-Agent 头检查异步函数是否正确使用await。Web 搜索技能返回空结果API 密钥无效、额度用完、或查询词太模糊检查搜索技能配置的 API 密钥。在服务商后台查看调用量和余额。更换有效的 API 密钥优化查询词尝试更具体的搜索。API 服务响应慢LLM 调用慢、技能执行慢、或代码有阻塞操作使用time命令或在代码中添加计时定位耗时最长的环节。优化 LLM 提示词减少 token 数对技能进行异步化改造考虑引入任务队列处理长任务。批量任务内存持续增长任务结果未及时释放或有内存泄漏使用memory_profiler工具分析内存使用。检查是否在全局列表中累积数据。确保任务结果被适当清理对于大数据处理使用流式或分块处理。技能执行有安全风险如文件操作技能未对用户输入进行严格的验证和过滤审查技能代码特别是涉及系统命令执行、文件路径拼接、数据库查询的部分。实施最小权限原则对输入进行白名单验证使用沙箱环境运行不可信代码。11. 最佳实践与使用建议基于以上实战和问题排查总结出以下最佳实践帮助你更稳健地使用和扩展这个 Agent Skills 项目。从简单开始逐步复杂首先让一个最简单的技能如计算器跑通然后测试单个复杂技能如 DeepResearch最后再测试多技能串联的完整 Agent 流程。配置外部化将所有可配置项API密钥、模型参数、技能开关、超时时间放在config.yaml或环境变量中不要硬编码在代码里。实现技能熔断与降级在技能执行器中为每个技能添加熔断器如circuitbreaker库。当某个技能连续失败时暂时禁用并尝试使用备用技能或直接向用户返回友好提示。日志与监控为整个系统添加结构化日志如使用structlog记录每个任务的完整生命周期便于调试和复盘。对于生产环境考虑集成 Prometheus 和 Grafana 进行指标监控。测试覆盖为每个技能编写单元测试模拟其依赖如网络请求、LLM调用。为关键工作流如规划-执行-整合编写集成测试。安全第一输入净化对所有用户输入和技能参数进行严格的验证和转义。权限控制文件操作、系统命令等危险技能必须在沙箱环境或严格限定的目录下运行。API 密钥管理使用密钥管理服务或加密存储切勿提交到代码仓库。合规使用使用网络爬虫技能时尊重robots.txt控制请求频率避免对目标网站造成负担。设计可观测性在技能的输出中不仅包含最终结果也包含其推理过程或引用来源例如DeepResearch 技能返回摘要的同时附上参考的原文链接。这增加了系统的透明度和可信度。这个 Agent Skills 架构项目提供了一个绝佳的起点让你能深入智能体系统的内部。它的价值不在于提供了一个开箱即用的强大产品而在于清晰地展示了一个可扩展、模块化的 Agent 应该如何构建。你可以基于这个骨架融入更强大的规划算法如 ReAct, Plan-and-Execute、更丰富的技能库、更高效的记忆机制甚至尝试多智能体协作。动手去修改代码添加一个新技能或者优化现有的执行流程是理解这一切的最佳方式。建议将本项目代码作为你 Agent 探索之旅的“脚手架”在它的基础上构建真正解决你实际问题的智能工具。
返回列表