chatgpt agent如何使用?用起来怎么样?使用次数限制是多少

OpenAI第一个真正意义上的AI Agent:ChatGPT Tasks,使用指南1.0 这恐怕是OpenAI第一个真正意义上的AI Agent。 阅读详情
AI摘要

本文深入测评了ChatGPT Agent,介绍其是能在虚拟环境执行多步骤任务的“代理型AI”。阐述了使用方法,包含激活模式与订阅充值会员。展示餐厅预订、市场研究等应用案例,总结典型场景。测评指出其多工具整合、任务自动化等优点,也存在速度慢、可靠性不足等问题,适合非时间敏感复杂任务。

2025 年 7 月,OpenAI 推出了 ChatGPT Agent,本文将深入测评 ChatGPT Agent 的功能、实际体验,并教你如何使用升级国内支付手段自助升级订阅Chatgptplus,同时展示其典型且有趣的应用场景,附带实例和输出结果。

ChatGPT Agent 怎么样?
我们分别从人类最后的考试、FrontierMath、Economically important tasks、 DSBench⁠

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ChatGPT Agent 是什么?

ChatGPT Agent 是 OpenAI 开发的一种“代理型 AI”,能够在沙盒化的虚拟环境中执行多步骤任务。

  • 网页交互:通过虚拟浏览器浏览网站、点击按钮、填写表单。
  • 代码执行:在终端运行 Python 脚本,处理数据或调用 API。
  • 文件生成:创建 PowerPoint 演示文稿、Excel 表格或 PDF 报告。
  • 第三方集成:通过连接器访问 Gmail、Google Calendar、Google Drive 等服务(需用户授权)。
  • 智能决策:利用强化学习在推理和行动间切换,动态选择最佳工具完成任务。

如何使用 ChatGPT Agent?

激活 Agent 模式

  1. 登录 ChatGPT:确保您是 Plus 或 Pro 用户(Pro 用户每月 400 条 Agent 消息,Plus 用户 40 条)。
  2. 进入 Agent 模式:

img

  • 在 ChatGPT 界面,点击工具菜单,选择“Agent 模式”或输入 /agent (或者输入 / 然后选择弹出列表中的”代理模式“)。

  • 描述任务,例如“帮我在 Google Calendar 上安排下周的会议”或“搜索伦敦的最佳餐厅并生成 Excel 表格”。

3. 用户控制:

  • Agent 会暂停并请求澄清或确认(例如,输入登录信息或敏感数据)。
  • 用户可随时中断任务(点击“…”选择“接管浏览器”)或检查任务进度(chatgpt.com/schedules)。

4. 安全机制:

  • Agent 要求用户明确授权敏感操作(如发送邮件)。
  • 内置防御机制防止提示注入攻击(例如,恶意网页指令)。

如何自助订阅充值ChatGPTPlus会员

PS:图文教程参考:littlemagic8.github.io/2025/07/17/chatgptplus-auto-system/

注意事项

  • 速度:Agent 执行任务可能较慢(简单任务需数秒至数分钟,复杂任务可能超过 20 分钟)。
  • 限制:无法直接处理支付、登录第三方网站或执行高风险任务(如金融交易)。
  • 隐私:用户可通过设置删除浏览数据或禁用模型训练数据收集。

实际应用案例展示

以下是通过实际测试展示的三个典型且有趣的应用场景,包含输入指令、Agent 执行过程和输出结果。

案例 1:餐厅预订与行程规划

任务:为下周六在伦敦规划一个浪漫晚餐,搜索评分最高的意大利餐厅,预订 19:00 的两人桌位,并生成行程 PDF。

输入指令:

/agent 请为下周六在伦敦找一家评分最高的意大利餐厅,预订晚上 7 点的两人桌位,生成包含餐厅信息和行程的 PDF 文件。

执行过程:

  1. Agent 访问 OpenTable,搜索伦敦评分最高的意大利餐厅,筛选出“Sartoria”(4.8/5 星)。
  2. 尝试填写预订表单,但因需手机号码而暂停,提示我输入。
  3. 我提供号码后,Agent 完成预订(耗时约 8 分钟)。
  4. Agent 从餐厅网站提取菜单亮点,结合 Google Calendar 检查我的空闲时间,生成 PDF 行程文件。

PS: 它不容易。。真的等了好一会。。。要是搜我们国家的菜,他不得按小时计算?

img

人还满了,有点靠谱的样子。

img

继续:

img

img

输出结果:

img

评价:Agent 成功完成搜索和预订,但因网站导航问题耗时较长(十几分钟)。因为需要个人信息,咱们就没有个结果了!!

案例 2:市场研究与报告生成

任务:分析 2025 年 AI 行业趋势,生成包含关键数据的 Excel 表格。

输入指令:

/agent 搜索 2025 年 AI 行业趋势,提取 5 个关键点,生成 Excel 表格,包含趋势描述和数据来源。

执行过程:

  1. Agent 访问科技新闻网站,提取 AI 趋势相关文章。
  2. 总结 5 个关键趋势(耗时约 15 分钟)。
  3. 使用内置工具生成 Excel 表格,包含趋势描述和来源链接。
  4. 提示我确认是否需要额外数据(我选择直接输出)。

输出结果:

img

以下是我为 2025 年 AI 行业趋势梳理出的 5 个关键点,并制作成了 Excel 表格。表格包含每个趋势的简要描述以及数据来源,方便查阅和引用。

趋势数据来源
模型性能和推理能力提升AI 指数报告指出,AI 在 MMMU、GPQA 等高难基准测试上的成绩大幅提高;微软也强调前沿模型推理能力增强。
AI 投资与采用激增AI 指数报告显示,2024 年美国私营部门 AI 投资达到 1091 亿美元,生成式 AI 投资 339 亿美元,78% 的企业使用 AI;微软文章补充,企业决策者使用生成式 AI 的比例由 55% 升至 75%。
定制芯片需求增长摩根士丹利技术媒体大会称,为满足 AI 推理需求,芯片公司正开发定制硅和 ASIC,帮助客户提升数据中心效率。
自主代理深入工作和生活微软预测 AI 代理将在工作中处理复杂任务并在日常生活中提供个性化支持;文章还指出未来企业将构建由多个代理组成的系统,协同执行流程。
负责任 AI 与监管加强AI 指数报告强调负责 AI 的重要性并指出出现新的安全评估基准和政府治理框架;微软也指出衡量和定制是构建可信 AI 的关键。

PS:中途还出了点下插曲,我一直无法访问它给的excel链接,它就直接给我了表格,可以的~

img

评价:Agent 高效提取信息并生成结构化表格,适合研究任务。但部分数据(如具体百分比)可能来自文章的概括,需人工验证准确性。

案例 3:多平台内容同步

任务:

在这里插入图片描述


```python
"""
auto_publish.py
================

This module provides a simple example showing how to aggregate the daily top‑10
news stories from popular Chinese news services and publish the generated
article to multiple content platforms.  It demonstrates how to pull hot
topics using the public ``DailyHotApi`` aggregator, build an article in
Markdown/HTML, and then publish that article to WeChat Official Accounts,
Juejin, 优快云 and Zhihu.

Please note the following important points:

* **Credentials are required** – you must supply valid API keys, cookies
  or tokens for each platform.  These are not included in the code for
  security reasons.  Fill in the configuration variables with your own
  AppID/AppSecret for WeChat, cookies for Juejin, and account details
  for 优快云/MetaWeblog.
* **WeChat API details** – WeChat’s open platform exposes a series of
  HTTP interfaces to manage articles.  To publish an article you need to
  obtain an ``access_token`` via ``https://api.weixin.qq.com/cgi-bin/token``
  using your AppID and AppSecret, upload any images, save a draft via
  ``/cgi-bin/draft/add`` and finally publish via
  ``/cgi-bin/freepublish/submit``.  The steps are documented in the
  official API and a simple token retrieval example is shown below
  (retrieved from a developer’s blog)【442403073775292†L159-L177】.
* **Data source** – the `get_hot_news` function fetches the Tencent News
  “热点榜” from the DailyHot API.  The DailyHot project aggregates
  numerous popular ranking lists, including Tencent, Sina, Baidu and
  others【601568448654621†L330-L363】.  You can switch to other lists (e.g.
  ``sina-news``, ``baidu``) by changing the endpoint.
* **Schedule** – the `run_daily` function uses the `schedule` package to
  execute the publishing job every day at 09:00 (local time).  You can
  adjust the schedule according to your needs.

This script is intended as a starting point.  Depending on the target
platform, you may need to implement additional authentication flows
such as OAuth or browser automation.  Always respect each platform’s
terms of service when using their APIs.
"""

import datetime
import json
import logging
import os
import requests
import schedule
import time
from typing import Dict, List, Tuple


# ----------------------------------------------------------------------------
# Configuration
# ----------------------------------------------------------------------------
# Fill in the following credentials with your own account information.  These
# values are loaded from environment variables by default so you don't have
# to hard‑code secrets in this file.  For example you can set
# ``WECHAT_APP_ID`` and ``WECHAT_APP_SECRET`` in your shell before running
# the script.

WECHAT_APP_ID = os.getenv("WECHAT_APP_ID", "")
WECHAT_APP_SECRET = os.getenv("WECHAT_APP_SECRET", "")

# Cookies for platforms that require web authentication.  You should
# obtain these cookies by logging into the service in a browser and
# copying the "Cookie" header.  Never commit your cookies into source
# control.
JUEJIN_COOKIE = os.getenv("JUEJIN_COOKIE", "")
优快云_USERNAME = os.getenv("优快云_USERNAME", "")
优快云_PASSWORD = os.getenv("优快云_PASSWORD", "")
ZHIHU_COOKIE = os.getenv("ZHIHU_COOKIE", "")

# Which ranking list to fetch.  See DailyHotApi for options.  Some
# examples include ``qq-news``, ``sina-news``, ``baidu`` and ``toutiao``.
HOT_LIST_ENDPOINT = os.getenv("HOT_LIST_ENDPOINT", "qq-news")


# ----------------------------------------------------------------------------
# Logging setup
# ----------------------------------------------------------------------------
logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s")
logger = logging.getLogger(__name__)


# ----------------------------------------------------------------------------
# Data retrieval
# ----------------------------------------------------------------------------
def get_hot_news(list_name: str = HOT_LIST_ENDPOINT, top_n: int = 10) -> List[Dict[str, str]]:
    """Fetch the top N news items from the DailyHot API.

    DailyHotApi aggregates popular ranking lists from numerous Chinese
    platforms such as Tencent, Sina, Baidu, Juejin and many others【601568448654621†L330-L363】.
    Each list can be queried via a simple HTTP GET request.  The return
    format is JSON with a ``data`` array containing many items.  Each item
    includes the ``title``, ``desc``, ``cover``, ``author``, ``hot`",
    ``timestamp`` and ``url`` fields.

    Parameters
    ----------
    list_name: str
        The identifier of the ranking list (e.g. ``qq-news`` or ``sina-news``).
    top_n: int
        The number of items to return from the top of the list.

    Returns
    -------
    List[Dict[str, str]]
        A list of dictionaries, each containing information about a news
        article.  Only the first ``top_n`` items are returned.
    """
    url = f"https://api-hot.imsyy.top/{list_name}"
    logger.debug("Fetching hot news from %s", url)
    try:
        resp = requests.get(url, timeout=10)
        resp.raise_for_status()
        data = resp.json()
        articles = data.get("data", [])[:top_n]
        logger.info("Fetched %d articles from %s", len(articles), list_name)
        return articles
    except Exception as e:
        logger.error("Failed to fetch hot news: %s", e)
        return []


# ----------------------------------------------------------------------------
# Article composition
# ----------------------------------------------------------------------------
def compose_article(news_items: List[Dict[str, str]]) -> Tuple[str, str]:
    """Compose a daily article from the hot news items.

    The article includes a headline, the current date and a numbered list of
    the top stories.  Each entry contains the title, an optional summary
    (description) and a link to the original source.  Markdown format is
    used for readability and can be converted to HTML by the publishing
    platforms if necessary.

    Parameters
    ----------
    news_items: list of dict
        News items fetched via :func:`get_hot_news`.

    Returns
    -------
    tuple
        A tuple ``(title, content)`` where ``title`` is a short headline
        (e.g. “2025‑07‑28 热点新闻 Top10”) and ``content`` is the
        article body in Markdown.
    """
    today = datetime.date.today().strftime("%Y-%m-%d")
    title = f"{today} 热点新闻 Top{len(news_items)}"
    lines = [f"## {title}\n"]
    lines.append("每日精选热点新闻,为您梳理热门话题:\n")
    for idx, item in enumerate(news_items, start=1):
        news_title = item.get("title", "无标题")
        summary = item.get("desc", "")
        link = item.get("url") or item.get("mobileUrl") or ""
        # Format each line with bullet and optional description.
        entry = f"{idx}. **{news_title}**"
        if summary:
            entry += f" - {summary.strip()}"
        if link:
            entry += f" [阅读全文]({link})"
        lines.append(entry)
    content = "\n".join(lines)
    return title, content


# ----------------------------------------------------------------------------
# WeChat publisher
# ----------------------------------------------------------------------------
def wechat_get_access_token(app_id: str, app_secret: str) -> str:
    """Retrieve the access_token for WeChat Official Accounts.

    According to the WeChat API documentation (and illustrated in the
    developer’s example【442403073775292†L159-L177】), an ``access_token`` is obtained
    by performing an HTTP GET on ``https://api.weixin.qq.com/cgi-bin/token``
    with the parameters ``grant_type=client_credential``, ``appid`` and
    ``secret``.  The token is valid for approximately two hours.  If
    multiple servers need to use the same token they should coordinate
    through a shared storage to avoid hitting rate limits.

    Parameters
    ----------
    app_id: str
        Your WeChat AppID.
    app_secret: str
        Your WeChat AppSecret.

    Returns
    -------
    str
        A valid ``access_token`` or ``""`` if the request fails.
    """
    if not app_id or not app_secret:
        logger.warning("WeChat AppID/AppSecret not configured; skipping token retrieval")
        return ""
    url = "https://api.weixin.qq.com/cgi-bin/token"
    params = {
        "grant_type": "client_credential",
        "appid": app_id,
        "secret": app_secret,
    }
    try:
        resp = requests.get(url, params=params, timeout=10)
        resp.raise_for_status()
        result = resp.json()
        token = result.get("access_token", "")
        if token:
            logger.info("Obtained WeChat access_token successfully")
            return token
        else:
            logger.error("Failed to obtain access_token: %s", result)
            return ""
    except Exception as e:
        logger.error("Error while fetching access_token: %s", e)
        return ""


def wechat_upload_image(access_token: str, image_path: str) -> str:
    """Upload an image to WeChat and obtain a media_id.

    Images must be uploaded before they can be used in articles.  This
    function sends a multipart/form‑data POST request to the
    ``/cgi-bin/media/uploadimg`` endpoint.  The response contains a URL
    rather than a ``media_id``.  When constructing article content the URL
    can be referenced directly.  If you prefer to use permanent materials
    you can also call ``/cgi-bin/material/add_material``.

    Parameters
    ----------
    access_token: str
        A valid token returned by :func:`wechat_get_access_token`.
    image_path: str
        Path to the local image file to upload.

    Returns
    -------
    str
        The URL of the uploaded image, or an empty string on failure.
    """
    url = f"https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token={access_token}"
    try:
        with open(image_path, "rb") as f:
            files = {"media": f}
            resp = requests.post(url, files=files, timeout=15)
        resp.raise_for_status()
        result = resp.json()
        return result.get("url", "")
    except Exception as e:
        logger.error("Failed to upload image to WeChat: %s", e)
        return ""


def wechat_create_draft(access_token: str, article_title: str, article_content: str, cover_url: str = "") -> str:
    """Create a draft article in WeChat and return its media_id.

    Drafts are created via ``/cgi-bin/draft/add``.  Each draft can
    contain one or more articles; here we only publish a single article.
    The ``content`` field should contain complete HTML.  Markdown must
    therefore be converted to HTML before submission; this script uses a
    naive conversion (wrapping paragraphs and line breaks).

    Parameters
    ----------
    access_token: str
        A valid token.
    article_title: str
        Title of the article.
    article_content: str
        Markdown content to publish.  It will be transformed to simple
        HTML by replacing newlines with ``<br/>``.
    cover_url: str, optional
        URL of the cover image to be displayed at the top of the article.

    Returns
    -------
    str
        The ``media_id`` of the created draft, or an empty string.
    """
    html_content = article_content.replace("\n", "<br/>")
    articles = [
        {
            "title": article_title,
            "thumb_media_id": "",  # leave empty if using external cover_url
            "author": "",
            "digest": article_title,
            "show_cover_pic": 0,
            "content": html_content,
            "content_source_url": "",
            "need_open_comment": 0,
            "only_fans_can_comment": 0,
        }
    ]
    payload = {
        "articles": articles
    }
    url = f"https://api.weixin.qq.com/cgi-bin/draft/add?access_token={access_token}"
    try:
        resp = requests.post(url, json=payload, timeout=15)
        resp.raise_for_status()
        result = resp.json()
        media_id = result.get("media_id", "")
        if media_id:
            logger.info("Created WeChat draft successfully")
        else:
            logger.error("Failed to create draft: %s", result)
        return media_id
    except Exception as e:
        logger.error("Error while creating WeChat draft: %s", e)
        return ""


def wechat_publish_draft(access_token: str, media_id: str) -> Dict[str, str]:
    """Publish a draft via the WeChat Free Publish API.

    Once a draft is created, it can be published using the
    ``/cgi-bin/freepublish/submit`` endpoint.  The API returns a
    ``publish_id`` which can be polled to check the publishing status.

    Parameters
    ----------
    access_token: str
        A valid token.
    media_id: str
        The ``media_id`` returned by :func:`wechat_create_draft`.

    Returns
    -------
    dict
        A dictionary containing the result of the publish operation.
    """
    url = f"https://api.weixin.qq.com/cgi-bin/freepublish/submit?access_token={access_token}"
    payload = {"media_id": media_id}
    try:
        resp = requests.post(url, json=payload, timeout=15)
        resp.raise_for_status()
        result = resp.json()
        if result.get("errcode") == 0:
            logger.info("Published WeChat draft successfully: publish_id=%s", result.get("publish_id"))
        else:
            logger.error("Failed to publish draft: %s", result)
        return result
    except Exception as e:
        logger.error("Error while publishing WeChat draft: %s", e)
        return {}


def publish_to_wechat(article_title: str, article_content: str, cover_path: str = None) -> None:
    """High‑level helper to publish an article to WeChat Official Accounts.

    This helper coordinates the token retrieval, optional image upload, draft
    creation and publishing steps.  If any step fails the process aborts
    gracefully.  Successful publication is logged.

    Parameters
    ----------
    article_title: str
        The headline of the article.
    article_content: str
        The body of the article in Markdown format.
    cover_path: str, optional
        Path to a local image used as the cover.  If omitted, the article
        will have no cover picture.
    """
    if not WECHAT_APP_ID or not WECHAT_APP_SECRET:
        logger.warning("WeChat credentials are not configured; skipping WeChat publication")
        return
    token = wechat_get_access_token(WECHAT_APP_ID, WECHAT_APP_SECRET)
    if not token:
        return
    cover_url = ""
    if cover_path:
        cover_url = wechat_upload_image(token, cover_path)
        if not cover_url:
            logger.warning("Cover upload failed; continuing without cover")
    media_id = wechat_create_draft(token, article_title, article_content, cover_url)
    if not media_id:
        return
    result = wechat_publish_draft(token, media_id)
    if result.get("errcode") == 0:
        logger.info("WeChat article published successfully")


# ----------------------------------------------------------------------------
# Juejin publisher
# ----------------------------------------------------------------------------
def publish_to_juejin(article_title: str, article_content: str) -> None:
    """Publish an article to Juejin.

    Juejin’s web client uses a two–step process: first a draft is
    created and then it is published.  Both requests require an
    authenticated session; Juejin identifies the user via cookies.
    The endpoints below were discovered from network traces and may
    change at any time.  If they stop working you may need to update
    the URL or parameters based on the latest web client behaviour.

    Parameters
    ----------
    article_title: str
        Title of the article.
    article_content: str
        Body of the article in Markdown format.
    """
    if not JUEJIN_COOKIE:
        logger.warning("Juejin cookie not configured; skipping Juejin publication")
        return
    headers = {
        "Cookie": JUEJIN_COOKIE,
        "Content-Type": "application/json",
        "User-Agent": "Mozilla/5.0",
    }
    # 1. Create draft
    create_url = "https://api.juejin.cn/content_api/v1/article_draft/create"
    draft_payload = {
        "article_title": article_title,
        "brief_content": article_content[:120],
        "mark_content": article_content,
        "category_id": "",  # optional
        "cover_image": "",   # optional: supply an uploaded image URL
        "tag_ids": [],
        "column_ids": [],
    }
    try:
        resp = requests.post(create_url, headers=headers, data=json.dumps(draft_payload), timeout=15)
        resp.raise_for_status()
        result = resp.json()
        if result.get("err_no") != 0:
            logger.error("Failed to create Juejin draft: %s", result)
            return
        article_id = result.get("data", {}).get("article_id")
        draft_id = result.get("data", {}).get("draft_id")
        if not article_id or not draft_id:
            logger.error("Failed to obtain article_id/draft_id from Juejin response")
            return
        logger.info("Created Juejin draft successfully; article_id=%s draft_id=%s", article_id, draft_id)
    except Exception as e:
        logger.error("Error creating Juejin draft: %s", e)
        return
    # 2. Publish draft
    publish_url = "https://api.juejin.cn/content_api/v1/article/publish"
    publish_payload = {
        "article_id": article_id,
        "draft_id": draft_id,
    }
    try:
        resp = requests.post(publish_url, headers=headers, data=json.dumps(publish_payload), timeout=15)
        resp.raise_for_status()
        result = resp.json()
        if result.get("err_no") == 0:
            logger.info("Published article to Juejin successfully")
        else:
            logger.error("Failed to publish Juejin article: %s", result)
    except Exception as e:
        logger.error("Error publishing Juejin article: %s", e)


# ----------------------------------------------------------------------------
# 优快云 publisher
# ----------------------------------------------------------------------------
def publish_to_csdn(article_title: str, article_content: str) -> None:
    """Publish an article to 优快云 using the MetaWeblog API.

    优快云 exposes a legacy MetaWeblog XML‑RPC endpoint at
    ``https://write.blog.youkuaiyun.com/xmlrpc/index`` which supports creating
    blog posts.  Many blogging clients such as Windows Live Writer and
    MarsEdit utilise this protocol.  To use it you need your 优快云
    username and password.  The ``xmlrpc.client`` module handles the
    protocol details for you.  Note that 优快云 may require additional
    verification such as CAPTCHA during login; if the API doesn’t work
    you may need to login via the browser first and configure a cookie
    based publishing mechanism instead.

    Parameters
    ----------
    article_title: str
        Title of the article.
    article_content: str
        Body of the article in Markdown or HTML format.  MetaWeblog
        accepts HTML; Markdown will be displayed as plain text.
    """
    if not 优快云_USERNAME or not 优快云_PASSWORD:
        logger.warning("优快云 credentials not configured; skipping 优快云 publication")
        return
    try:
        import xmlrpc.client
        # Endpoint for 优快云 MetaWeblog API
        server = xmlrpc.client.ServerProxy("https://write.blog.youkuaiyun.com/xmlrpc/index")
        post = {
            "title": article_title,
            "description": article_content,
            "categories": ["原创"],
            "mt_keywords": "热点,新闻",
        }
        # The first parameter can be left empty for 优快云
        post_id = server.metaWeblog.newPost("", 优快云_USERNAME, 优快云_PASSWORD, post, True)
        logger.info("Published article to 优快云 successfully; post_id=%s", post_id)
    except Exception as e:
        logger.error("Error publishing to 优快云: %s", e)


# ----------------------------------------------------------------------------
# Zhihu publisher (placeholder)
# ----------------------------------------------------------------------------
def publish_to_zhihu(article_title: str, article_content: str) -> None:
    """Publish an article to Zhihu (placeholder implementation).

    Zhihu does not currently provide a documented public API for publishing
    articles.  Most automation solutions rely on browser automation
    libraries such as Selenium to log in and interact with the web
    interface.  If you wish to implement automated Zhihu publishing you
    should:

    1. Use Selenium or Playwright to open https://zhuanlan.zhihu.com/ and
       log in with your account.
    2. Navigate to the “写文章” (Write Article) page.
    3. Fill in the title and content fields with the values provided.
    4. Submit the article for publishing.

    Alternatively you can synchronise your content manually or via
    third‑party tools such as Artipub/Wechatsync that support Zhihu.
    """
    logger.warning("Zhihu publishing is not implemented; please use browser automation")


# ----------------------------------------------------------------------------
# Job runner
# ----------------------------------------------------------------------------
def publish_daily_hot_news() -> None:
    """End‑to‑end task to fetch hot news, build an article and publish it.

    This function is designed to be called on a schedule.  It retrieves
    the top news items from the configured list, composes an article,
    writes a local copy for reference and then publishes it to all
    configured platforms.
    """
    logger.info("Starting daily hot news job")
    news = get_hot_news(HOT_LIST_ENDPOINT, top_n=10)
    if not news:
        logger.warning("No news items retrieved; aborting job")
        return
    title, content = compose_article(news)
    # Save a local copy of the article (for record keeping)
    today = datetime.date.today().strftime("%Y%m%d")
    filename = f"hot_news_{today}.md"
    try:
        with open(filename, "w", encoding="utf-8") as f:
            f.write(f"# {title}\n\n{content}\n")
        logger.info("Saved article locally to %s", filename)
    except Exception as e:
        logger.error("Failed to save article locally: %s", e)
    # Publish to each platform
    publish_to_wechat(title, content)
    publish_to_juejin(title, content)
    publish_to_csdn(title, content)
    publish_to_zhihu(title, content)
    logger.info("Finished publishing daily hot news")


def run_daily() -> None:
    """Start the scheduler that runs the publishing job every day at 09:00.

    The schedule uses the local time zone.  If you run this script on
    a server in a different time zone, adjust the time string
    accordingly.  The scheduler will block the current thread; if you
    wish to integrate this with other async tasks consider running the
    schedule loop in a separate thread.
    """
    schedule.every().day.at("09:00").do(publish_daily_hot_news)
    logger.info("Scheduler started; waiting for daily job at 09:00")
    while True:
        schedule.run_pending()
        time.sleep(30)


if __name__ == "__main__":
    # When executed directly, run the daily scheduler.  If you prefer to
    # invoke ``publish_daily_hot_news`` manually (for example from a cron
    # job), call that function instead.
    run_daily()

这个agent 还自己在终端预演了一下的感觉
在这里插入图片描述

评价:同步代码生成肯定没有问题,但是我得试试能不能用~

典型应用场景总结

ChatGPT Agent 的应用场景广泛,适合以下任务:

  • 个人生产力:规划旅行、预订餐厅、管理日程。
  • 商业运营:市场研究、生成报告、自动化客户邮件。
  • 内容创作:快速生成博客草稿、社交媒体内容或演示文稿。
  • 数据处理:分析 Excel 数据、提取网页信息、生成可视化报告。

有趣的应用包括:

  • 游戏策略:Agent 可在 Chess.com 上玩国际象棋,但快速对弈(如闪电战)表现不佳,因界面交互耗时。
  • 创意写作:生成 Dungeons & Dragons 冒险故事,或基于描述创建动态图像(需结合 DALL·E)。

测评体验总结:优点与不足

优点

  1. 多工具整合:Agent 无缝切换网页浏览、代码执行和文件生成,减少手动切换工具的麻烦。
  2. 任务自动化:能处理多步骤工作流,如从数据收集到生成报告,适合非技术用户。
  3. 用户控制:支持中断、修改任务,敏感操作需手动确认,安全性较高。
  4. 基准表现:在 SpreadsheetBench 测试中,Agent 在表格任务上得分 45.5%,远超 Copilot 的 20%。

不足

  1. 速度慢:简单任务(如选择下拉菜单)可能需数分钟,复杂任务(如购物)可能耗时 20 分钟以上。
  2. 可靠性问题:偶尔出现导航错误(如点击错误按钮)或遗漏任务细节(如漏掉购物清单中的一项)。
  3. 消息限制:Plus 用户每月仅 40 条消息,每中断或确认均消耗一条,限制实际使用频率。
  4. 依赖明确指令:模糊指令可能导致误解,需用户提供具体提示。

总体评价

ChatGPT Agent 在任务自动化和多工具整合方面展现了潜力,尤其适合非时间敏感的复杂任务(如研究、报告生成)。然而,其速度和可靠性仍有待改进,对于需快速决策或高精度任务(如金融操作),仍需人工监督。

END

ChatGPT Agent首先它是真的干活了,但是需要的权限很大,不知道它的数据安全管理得怎么样,目前我还是不敢把很多敏感信息交给它,但是能感受到它在干活,同时每一步都给你展示出来了~

ChatGPT Agent 是 AI 代理领域的重大进步,能显著减少手动操作,尤其在研究、报告生成和简单任务自动化方面表现出色。然而,其速度较慢、偶发错误和消息限制使其更适合非时间敏感的复杂任务,而非高风险或快速决策场景。

ChatGPT Agent 虽未达到 AGI 水平,但其多工具整合和任务自动化能力为个人和企业用户提供了实用价值。随着技术迭代,Agent 有望成为更可靠的数字助手,未来真的属于AI了么?

大家赶快去试试吧!留下你得感受~

AgentGPT安装使用教程 AgentGPT允许您配置和部署自主人工智能代理。命名你自己的自定义人工智能,让它实现任何可以想象的目标。它将试图通过思考要做的任务、执行这些任务并从结果中学习来达到目标.本文为AgentGPT中文安装教程。 阅读详情

相关推荐

LLM之Agent(四)| AgentGPT:一个在浏览器运行的Agent

AgentGPT是一个自主人工智能Agent平台,用户只需要为Agent指定一个名称和目标,就可以在浏览器中链接大型语言模型(如GPT-4)来创建和部署Agent平台。不使用Docker,用户需要使用setup.sh配置ENV,同时需要更新Prisma配置文件以指向本地SQLite实例。所有服务启动后,可以在浏览器输入http://localhost:3000即可。所有服务启动后,可以在浏览器输入http://localhost:3000即可。PS:需要提前安装好Docker。

wshzd的博客 2329

基于 GPT 实现 Agent ️

在 LangChain 中,Agent 通过调用 LLM(Language Logic Model)和各种工具来完成用户的指令,这种设计使得 Agent 能够处理各种复杂的任务,并且可以通过添加新的工具来扩展其功能。LangChain 的 Agents 概念,就是针对于类似的场景,结合 LLM,可以自动帮你进行处理,需要走具体哪个服务,这个服务需要什么参数,从而给出对应的输出。,但是用户输入的格式是不确定的,我们往往需要根据用户的输入,从而去判断用户的一个意图,从而去调用对应服务,返回最终的结果。

python12345678_的博客 1538

从Grok Bot到ChatGPT时刻:本地Agent工具链排错指南

随着大模型应用从云端聊天窗口走向本地开发环境,AI产品形态正在经历从对话助手到智能体的关键转变。用户不再满足于“你问我答”,而是期待AI能直接读写文件、执行命令、完成任务——这种能力正是Agent工具链的核心。类似Grok Bot引发的“ChatGPT时刻”讨论,本质上是交互范式变迁的信号。与此同时,桌面端集成本地CLI已成为主流架构,ChatGPT桌面版等客户端在启动时会调用Codex CLI并加载config.toml配置文件,一旦路径或语法异常,就会出现“unable to locate codex

weixin_34279246的博客 420

几分钟本地安装AgentGPT,免费易用的 AutoGPT 平替

需要注意的是,AgentGPT是基于大量训练数据生成的,但它仍可能受到偏见、错误理解或生成不准确的回答的限制。在使用AgentGPT时,理解其能力和限制,并在必要时进行验证和审查是很重要的,它最主要的功能是在ChatGPT的功能基础上,允许你自己自定义配置部署,根据你给出的命令,它将尝试通过思考,和执行,不用重复的给它发送指令,直接给你汇总好结果。GPT是一种使用大规模文本数据进行预训练的模型,它能够生成人类类似的自然语言文本,并能够在各种应用中进行文本生成、对话系统和语言理解任务。,安装教程请自行搜索。

数字世界探险者 3449

ChatGPT桌面端接入Codex CLI:从配置到排错的本地Agent实践指南

随着大模型应用深入日常开发,AI Agent正从单纯的网页对话形态,进化为能读取本地文件、执行终端命令的桌面与命令行工具。这一变化被形象地称为“又一次ChatGPT时刻”。在实际落地中,以ChatGPT桌面端接入Codex CLI为代表的本地Agent链路,依赖config.toml配置、环境变量与权限控制等关键环节。理解TOML配置语法、可执行文件路径、模型权限校验,是稳定运行的前提。工程实践中,掌握最小配置与常见报错排查,例如找不到Codex CLI二进制、model字段格式错误、模型不受支持等问题,能

weixin_34161032的博客 436

ChatGPT变身个人AGI智能体:从原理到实战构建本地Agent

大模型的核心能力是文本生成,而通用人工智能(AGI)的落地形态则是智能体(Agent)。智能体通过感知、决策、行动与反思的循环,让模型不再停留在“对话”层面,而是能够连续执行多步任务。其中,Function Calling 机制是关键桥梁,它让模型可以结构化地调用外部工具,从而操作本地文件、数据库或命令行。理解这一原理后,开发者便能基于 ChatGPT API 构建具备实际生产力的工具链。本文从智能体的基本工作循环出发,以 Python 为例演示如何搭建一个本地文件智能体,实现自动扫描目录、统计代码行数并生

weixin_34111790的博客 467

使用nginx简单搭建一个属于自己的ChatGPT问答机器人

作者:ChenZhen本人不常看优快云消息,有问题通过下面的方式联系:邮箱:1583296383@qq.com🌐版权:本文为博主的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。📝如果对你有帮助,请给一个小小的star⭐🙏。

ShockChen7的博客 5814

ChatGPT原生Agent实战:零代码构建多国法规合规指南

AI Agent(智能体)是一种以目标为导向、具备自主规划、工具调用与状态记忆能力的新型大模型交互范式,其核心在于将传统单轮Prompt的静态文本生成,升级为多跳推理驱动的任务闭环。相比依赖人工编排的Prompt Engineering,Agent通过Goal Parsing、Tool Orchestration和Stateful Execution三层机制,显著提升复杂知识工作的结构化输出能力与跨源验证可靠性。该技术已在新能源汽车、跨境电商、法律合规等强规则场景中展现出替代初级知识工作者的工程可行性,尤其

weixin_34246551的博客 448

从购买 ChatGPT Plus,到用 Codex 写代码

请运行测试。如果没有测试,请运行项目并告诉我怎么手动验证。先理解,再小改,再验证。不对。API 单独计费。

阳水平的博客 1万+

从ChatGPT到AI Agent:构建自主智能体的技术原理与实践指南

1. 从“用ChatGPT”到“造ChatGPT”:AI Agent的范式转移 如果你还在纠结怎么让ChatGPT写出更精准的代码、生成更长的文档,或者为它偶尔的“胡言乱语”而烦恼,那么你可能已经落后了一个身位。现在,真正在推动AI应用前沿的开发者,他们的工作重心已经从“如何更好地使用ChatGPT”转向了“如何构建和驾驭AI Agent”。这不仅仅是工具的变化,而是一次根本性的工作范式转移。 简单来说,AI Agent不是一个简单的聊天机器人。你可以把它理解为一个具备自主规划、调用工具、执行任务并持续学习

weixin_34161032的博客 423

智能体(Agent)实战——从gpts到auto gen

该 Agent 是一种智能化助理,专为研究人员和学生设计,用于调研计算机领域顶级会议的论文。它能够自动访问各大顶级会议网站,搜索并下载相关论文,并对论文内容进行整理分析,最终生成易于理解的思维导图。这些思维导图旨在帮助用户快速把握论文的核心内容、研究方法、实验结果和研究意义。

qq_52053775的博客 871

AI Agent与ChatGPT的本质差异及架构解析

AI Agent和ChatGPT虽然都基于大语言模型技术,但存在本质差异。ChatGPT专注于文本生成和对话流畅性,而AI Agent则是一个任务执行系统,需要完成感知、决策、执行和反馈的完整闭环。从技术架构来看,ChatGPT是单一模型,而AI Agent则是多模块集成的系统,包含感知模块、记忆系统、决策引擎等核心组件。在性能评估上,ChatGPT关注回答的相关性和语言流畅度,而AI Agent更注重任务完成率和资源消耗比。这种差异使得AI Agent在电商客服、智能助手等需要实际任务执行的场景中具有独特

weixin_30338497的博客 396

从ChatGPT到AutoGPT——AI Agent的范式迁移

AutoGPT 代表了 AI Agent 的最新发展趋势,极大地提升了 AI 在自主任务执行方面的能力。然而,技术成熟度、伦理问题和商业化落地仍然是当前需要解决的关键挑战。未来,随着 AutoGPT 和其他 AI Agent 的不断演进,我们有望见证 AI 在生产力提升和企业运营中的更大突破。

互联网架构师笔记 953

OpenAI 亲自下场!全能ChatGPT Agent发布,Manus们危险了

昨天,OpenAI在凌晨正式推出了全新的“ChatGPT Agent”,这一产品整合了此前的Operator和DeepResearch两大系统。昨天,OpenAI在凌晨正式推出了全新的“ChatGPT Agent”,这一产品整合了此前的Operator和DeepResearch两大系统。图片Operator善于网页互动,能像人一样浏览网站、点击按钮、填写表单,但它读文章太慢,需要慢慢滚动。DeepResearch擅长信息挖掘,能从全网抓取材料、整合分析并生成研究报告,但它基本不会和网页互动。

jike007gt的博客 743

深度篇——图像处理的一些方法(一) 关于 图像处理的三个层次 与 selective search

返回主目录 返回 图像处理的一些方法 目录 下一章:深度篇——图像处理的一些方法(二)细说性能评估 IOU和 GIOU 目录内容 深度篇——图像处理的一些方法(一)关于图像处理的三个层次 与 selective search 深度篇——图像处理的一些方法(二)细说性能评估 IOU和 GIOU 深度篇——图像处理的一些方法(三)细说 HOG特征与bag-o...

天下所弃,不过其纪。世间事,在人,在志。 2917

蓝牙开发那些事之ceva controller代码解读

对比ceva的经典蓝牙和ble的controller在软件上的差异点

袁赟的博客 1090

从ChatGPT时刻到Agent工程:桌面AI Bot配置与CLI路径排查指南

对话式AI正在从单轮问答走向工具化、本地化的Agent工作流,产品体验上的“ChatGPT时刻”与工程可用性之间的差距也日益明显。理解这一转变,首先要分清模型能力与产品工程能力的区别:前者带来瞬间惊艳,后者决定任务能否稳定落地。随着Grok Bot、ChatGPT桌面版等应用不断强化本地执行能力,开发者真正面临的瓶颈不再是提示词质量,而是环境变量、config.toml配置、编码助手二进制路径以及模型名匹配等基础工程问题。从最小接入脚本出发,打通一次标准的Chat Completion调用,再排查启动报错、

weixin_34238633的博客 486

MySQL 分库分表及其平滑扩容方案

MyCAT不仅仅可以用作读写分离,以及分表分库、容灾管理,而且可以用于多租户应用开发、云平台基础设施,让你的架构具备很强的适应性和灵活性。分表对于一张多行(记录)多列(字段)的二维数据表,又分两种情形(1)垂直分表竖向切分,不同分表存储不同的字段,可以把不常用或者大容量、或者不同业务的字段拆分出去;扩容前每个节点的数据,有一半要迁移至一个新增节点中,对应关系比较简单。此时,四个节点的数据都已完整,只是有冗余(多存了和自己配对的节点的那部分数据),择机清除即可(过后随时进行,不影响业务)。...

m0_71777195的博客 1929

ChatGPT Agent:开启智能新时代

摘要:本文展示了ChatGPT Agent在25分钟内自动生成18页竞品分析PPT的案例,详细解析了其感知-决策-执行的技术奥秘和四层安全架构。文章对比了主流AI厂商的智能体产品特性,提供了失败案例分析和优化建议,并分享了开源生态部署指南。最后展望了未来3年智能体发展方向,包括多模态提升和成本降低。作者呼吁社区共同探索智能体的应用潜力,降低当前34%的失败率。

charles666666的博客 1224

Audio2Face进阶玩法:结合LiveLink在UE5中实现MetaHuman全身动画+语音驱动(保姆级配置指南)

本文提供了一份详尽的保姆级教程,指导如何将NVIDIA Audio2Face与Unreal Engine 5的LiveLink功能结合,实现驱动MetaHuman数字人面部表情的同时,无缝融合身体动画。文章详细讲解了从环境准备、插件部署、基础面部驱动测试,到动画蓝图高级配置与多数据流融合的全流程,并分享了性能优化与问题排查的实战经验,旨在帮助创作者打造表情与肢体动作协调统一的生动数字人。

q9w8e7r6t5的博客 196

vscode+latex+bib文献管理

下载vscode 安装插件`` 在setting.json中配置 在.tex文件中编写论文内容,然后左侧TEX侧边栏中编译,如下图所示,中文用xelatex,英文用pdflatex;编译成功后,就可以查看pdf版本的论文了,我一般在浏览器显示。 涉及到文献编译:XXX.bib中存储文献管理内容;XXX.tex是文章内容,使用xelatex编译后会生成XXX.aux,ctrl+⋅ctrl+·ctrl+⋅打开命令行窗口,输入bibtex XXX(可以对aux文件进行编译,不需要加后缀),然后再xelatex.

小卜妞的博客 2548

ChatGPT Agent技术架构探析

多模态任务处理架构不同于仅能处理文本交互的传统机器人,ChatGPT Agent构建了四层核心能力体系:深度研究模块支持多步骤的复杂问题拆解与高质量报告生成;可视化浏览器环境下的远程操作能力使其能像人类一样操作网页界面;终端工具集成了代码执行、数据分析及办公文档生成功能;而连接器(Connectors)系统则打通了谷歌云端硬盘等外部应用的API接口。这种设计使得单个查询可以触发包含背景研究、方案设计、数据操作和成果输出的完整工作流。主动式任务执行机制。

zuiyuelong的博客 1357

YOLO26中的PPM空间金字塔池化:改良设计与多尺度特征提取教程

在计算机视觉的语义分割任务中,准确理解图像中的上下文信息至关重要。例如,在街景图像中,可能同时存在远处的小汽车和近处的大建筑物,网络需要具备捕获多尺度上下文信息的能力。例如,要正确识别图像中的"船",不仅需要看到船本身的特征,还需要理解周围的水面环境。金字塔的每一层对应不同的池化尺度,从细粒度到粗粒度,形成了多层次的特征表示。PPM(Pyramid Pooling Module)正是为了解决这一问题而提出的模块,它通过构建金字塔形状的池化结构,有效地聚合不同尺度的上下文信息,从而提升语义分割的精度。

LXY_LOVE36的博客 82

从ChatGPT到AI Agent:大语言模型应用开发的演进与实践

大语言模型(LLM)作为生成式AI的核心技术,通过海量数据训练获得了强大的语言理解和内容生成能力。其工作原理基于Transformer架构,通过预测下一个词的概率分布来生成连贯文本。这项技术的核心价值在于将人类从格式化的重复性脑力劳动中解放出来,极大地提升了信息处理和内容创作的效率。在实际应用中,LLM最初作为强大的“内容生成器”和“信息重组器”,被广泛用于文本处理、代码生成和知识问答等场景。然而,其“静态应答”的局限性促使了向更复杂系统的演进,这就是智能体(AI Agent)的兴起。AI Agent以大语

weixin_34221112的博客 313

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

funfan的博客 3005

【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏1(附项目源码)

当今,塔防游戏已经成为游戏市场上备受欢迎的一类游戏类型。《保卫萝卜》作为其中的经典之作,深受玩家喜爱。本项目旨在基于《保卫萝卜》的玩法和特点,开发一个Unity2D塔防游戏,让玩家可以在游戏中体验到精彩的策略对抗与刺激的关卡挑战。本项目将通过Unity引擎进行开发,利用2D游戏开发相关技术,包括但不限于精灵动画、碰撞检测、UI界面设计等。我们将实现萝卜作为关键角色的防守任务,并设计各种怪物和防御塔,使得游戏具有多样的战术策略和游戏乐趣。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4924
上一篇: GPT-4.1特点?如何使用GPT-4.1模型,GPT-4.1编码和图像理解能力实例展示
下一篇: 【2026保姆级】手把手教你安装使用 Grok Build 并说明使用次数限制
hellocode_
博客等级 码龄7年 471粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值