loopgpt

GitHub
1.5k 132 简单 1 次阅读 2天前MIT语言模型Agent
AI 解读 由 AI 自动生成,仅供参考

loopgpt 是一款模块化的 Auto-GPT 框架,旨在将流行的 Auto-GPT 项目重构为更灵活、易扩展的 Python 包。它解决了传统自动代理工具配置复杂、难以二次开发以及对高成本模型依赖过强的问题,让开发者能够轻松构建定制化的 AI 智能体。

这款软件特别适合 Python 开发者、AI 研究人员以及希望深入探索大语言模型应用的技术爱好者。与普通用户只需点击运行的工具不同,loopgpt 提供了"Plug N Play"式的 API,允许用户直接通过代码添加新功能或集成外部服务,无需繁琐的配置文件。

其技术亮点在于对 GPT-3.5 模型的深度优化,即使没有 GPT-4 权限也能获得出色效果,同时极力降低提示词开销以节省成本。loopgpt 支持“人在回路”机制,当智能体偏离目标时,人类可随时介入纠正。此外,它具备完整的状态序列化能力,能将智能体的记忆和工具状态保存至本地文件,随时中断并恢复任务,且无需依赖外部数据库。无论是快速原型验证还是构建复杂的多步骤自动化流程,loopgpt 都提供了一个简洁而强大的基础架构。

使用场景

某科技初创公司的产品经理需要快速调研并输出一份关于“最新无线降噪耳机”的深度竞品分析报告,以便决定下一季度的采购方向。

没有 loopgpt 时

  • 流程割裂且繁琐:需人工在搜索引擎、电商网站和评测博客间反复切换,手动复制粘贴数据,耗时数小时才能收集齐基础信息。
  • 模型能力受限:若仅使用基础的 GPT-3.5,模型无法自主联网搜索实时价格或读取最新评测,只能依赖过时的训练数据,导致结论失真。
  • 缺乏纠错机制:一旦自动化脚本跑偏(如抓取了错误型号),必须中断重跑,无法在运行中即时干预修正方向。
  • 状态难以保留:中途网络波动或程序崩溃会导致进度全失,无法从断点继续,必须重新执行所有步骤。

使用 loopgpt 后

  • 全自动闭环执行:只需定义“搜索、分析、写入文件”等目标,loopgpt 即可自主调用搜索工具获取实时数据,自动完成从信息采集到生成 summary.txt 的全过程。
  • 小模型大效能:凭借优化的提示词工程,即使使用成本更低的 GPT-3.5 也能获得媲美 GPT-4 的精准搜索结果,大幅降低 API 开销。
  • 人机协同纠偏:当代理准备分析错误品牌时,用户可通过“人在回路”功能即时输入反馈修正路径,确保调研不偏离核心需求。
  • 断点续传无忧:利用全状态序列化技术,loopgpt 能将当前记忆和工具状态保存至本地,随时从断开处无缝恢复任务,无需重复劳动。

loopgpt 将原本碎片化、高成本的人工调研转化为可中断、可干预且低成本的自主智能工作流。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes必须配置 OpenAI API Key(通过 .env 文件或环境变量)。可选配置 Google API Key 和自定义搜索引擎 ID 以启用官方 Google 搜索,否则默认使用 DuckDuckGo。支持 Docker 部署。默认使用 gpt-3.5-turbo 模型,也可手动指定 gpt-4。
python3.8+
requests
duckduckgo-search
loopgpt hero image

快速开始

L♾️pGPT

一个模块化的 Auto-GPT 框架

L♾️pGPT 是对流行的 Auto-GPT 项目的重新实现,将其改造成一个规范的 Python 包,并在设计时充分考虑了模块化和可扩展性。

🚀 特性 🚀

  • “即插即用”的 API - 可扩展且模块化的“Python 式”框架,而不仅仅是一个命令行工具。可以轻松地从 Python 代码中添加新功能、集成和自定义智能体能力,无需繁琐的配置文件!
  • 兼容 GPT-3.5 - 对于尚未拥有 GPT-4 访问权限的用户来说,效果比 Auto-GPT 更好!
  • 最小化的提示开销 - 每个 token 都很重要。我们一直在努力以尽可能少的 token 数量获得最佳结果。
  • 人机协作 - 通过人工反馈,能够对偏离轨道的智能体进行“纠正方向”。
  • 完整状态序列化 - 从中断处继续;L♾️pGPT 可以将智能体的完整状态(包括记忆及其工具的状态)保存到文件或 Python 对象中。无需外部数据库或向量存储(但仍然支持它们)!

🧑‍💻 安装

从 PyPI 安装

📗 这会安装最新稳定版的 L♾️pGPT。对于大多数用户来说,这是推荐的方式:

pip install loopgpt

📕 下面两种方法会安装 L♾️pGPT 的最新开发版本。请注意,此版本可能不稳定:

从源码安装

pip install git+https://www.github.com/farizrahman4u/loopgpt.git@main

从源码安装(开发版)

git clone https://www.github.com/farizrahman4u/loopgpt.git
cd  loopgpt
pip install -e .

使用 Docker 从源码安装(开发版)

git clone https://www.github.com/farizrahman4u/loopgpt.git
cd  loopgpt
docker build -t loopgpt:local-dev .

🏎️ 开始使用

设置你的 OpenAI API 密钥 🔑

方法 1️⃣:通过 .env 文件

在当前工作目录(你打算运行 L♾️pGPT 的地方)创建一个 .env 文件,并添加以下内容:

OPENAI_API_KEY="<your-openai-api-key>"

🛑 重要 🛑

Windows 用户请确保在文件资源管理器中启用了“显示文件扩展名”选项。否则,文件可能会被命名为 .env.txt 而不是 .env

方法 2️⃣:通过环境变量

将名为 OPENAI_API_KEY 的环境变量设置为你的 OpenAI API 密钥。

如何设置环境变量:

创建一个新的 L♾️pGPT 智能体🕵️:

让我们在一个新的 Python 脚本中创建一个智能体。

from loopgpt.agent import Agent

agent = Agent()

L♾️pGPT 默认使用 gpt-3.5-turbo,此处显示的所有输出都是基于它生成的。如果使用 GPT-4 的用户可以将 model="gpt-4" 替换:

agent = Agent(model="gpt-4")

设置智能体的属性🕵️:

agent.name = "ResearchGPT"
agent.description = "一个用于研究和寻找最佳科技产品的 AI 助手"
agent.goals = [
    "在 Google 上搜索最佳耳机",
    "分析规格、价格和评论,找出前 5 名最佳耳机",
    "将前 5 名最佳耳机及其价格写入文件",
    "总结每款耳机的优缺点,并将其写入名为 'summary.txt' 的另一份文件中",
]

现在就可以开始了!让我们运行智能体的 CLI:

agent.cli()

将你的 Python 文件保存为 research_gpt.py 并运行:

python research_gpt.py

你可以通过输入“exit”来退出 CLI。

🔁 连续模式 🔁

如果将 continuous 设置为 True, 智能体会自动执行命令,而不会询问用户的许可。这可能导致无限循环,因此请谨慎使用!

agent.cli(continuous=True)

💻 仅命令行模式

你也可以直接从命令行运行 L♾️pGPT,而无需编写任何 Python 代码:

loopgpt run

运行 loopgpt --help 查看所有可用选项。

🐋 Docker 模式

你可以在前面提到的模式下使用 Docker 运行 L♾️pGPT:

# CLI 模式
docker run -i --rm loopgpt:local-dev loopgpt run

# 脚本模式示例
docker run -i --rm -v "$(pwd)/scripts:/scripts" loopgpt:local-dev python /scripts/myscript.py

⚒️ 添加自定义工具 ⚒️

L♾️pGPT 智能体自带一组内置工具,可用于执行各种基本任务,如网络搜索、文件系统操作等。你可以通过 print(agent.tools) 查看这些工具。

除了这些内置工具外,你还可以将自己的工具添加到智能体的工具箱中。

示例:WeatherGPT 🌦️

让我们创建 WeatherGPT,一个专注于天气的 AI 助手。

工具继承自 BaseTool,你只需编写文档字符串即可让工具正常运行!

from loopgpt.tools import BaseTool

class GetWeather(BaseTool):
    """快速获取指定城市的天气信息

    参数:
        city (str): 城市名称
    
    返回:
        dict: 该城市的天气报告
    """
    
    def run(self, city):
        ...

L♾️pGPT 会为你的工具分配一个默认 ID,但如果你愿意,也可以覆盖它:

class GetWeather(BaseTool):
    """快速获取指定城市的天气信息

    参数:
        city (str): 城市名称
    
    返回:
        dict: 该城市的天气报告
    """

    @property
    def id(self):
        return "get_weather_command"

接下来,让我们在 run 方法中定义工具的具体功能:

import requests

# 定义你的自定义工具
class GetWeather(BaseTool):
    """快速获取指定城市的天气信息

    参数:
        city (str): 城市名称
    
    返回:
        dict: 该城市的天气报告
    """
    
    def run(self, city):
        try:
            url = "https://wttr.in/{}?format=%l+%C+%h+%t+%w+%p+%P".format(city)
            data = requests.get(url).text.split(" ")
            keys = ("location", "condition", "humidity", "temperature", "wind", "precipitation", "pressure")
            data = dict(zip(keys, data))
            return data
        except Exception as e:
            return f"获取天气时发生错误:{e}。"

就是这样!你已经构建了自己的第一个自定义工具。让我们将其注册到一个新的智能体并运行它:

from loopgpt.tools import WriteToFile
import loopgpt

# 注册自定义工具类型

# 这里实际上并不需要,但在加载带有自定义工具的已保存代理时则需要。
loopgpt.tools.register_tool_type(GetWeather)

# 创建代理
agent = loopgpt.Agent(tools=[GetWeather, WriteToFile])
agent.name = "WeatherGPT"
agent.description = "一个告诉你天气的AI助手"
agent.goals = [
    "获取纽约和北京的天气",
    "给用户提供关于如何根据纽约和北京天气穿衣的建议",
    "将这些建议写入名为'dressing_tips.txt'的文件中"
]

# 运行代理的命令行界面
agent.cli()

让我们来看看WeatherGPT为我们写的dressing_tips.txt文件:

dressing_tips.txt

- 北京室外晴朗,气温为+10°C。建议穿一件薄外套和裤子。
- 纽约室外多云,气温为+11°C。建议穿一件薄外套、裤子,并带上雨伞。

🚢 航向修正

与Auto-GPT不同,当用户拒绝执行某个命令时,该代理并不会终止。相反,它会请求用户的反馈以调整其行动方向。

要修正代理的航向,只需拒绝执行并提供反馈即可:

代理已经更新了它的行动计划:

💾 保存和加载代理状态 💾

你可以将代理的状态保存到一个JSON文件中,方法如下:

agent.save("ResearchGPT.json")

这会保存代理的配置(模型、名称、描述等)以及其内部状态(对话状态、记忆、工具状态等)。你也可以通过在agent.save()中传入include_state=False来仅保存配置:

agent.save("ResearchGPT.json", include_state=False)

之后,你可以从上次停止的地方继续:

import loopgpt
agent = loopgpt.Agent.load("ResearchGPT.json")
agent.cli()

或者直接从命令行运行已保存的代理:

loopgpt run ResearchGPT.json

你还可以将代理状态转换为与JSON兼容的Python字典,而不是写入文件:

agent_config = agent.config()

如果只想获取配置而不包括内部状态,可以这样操作:

agent_config = agent.config(include_state=False)

要从配置重新加载代理,可以使用以下代码:

import loopgpt

agent = loopgpt.Agent.from_config(agent_config)

📋 需求

可选需求

为了支持官方的Google搜索功能,你需要设置两个环境变量GOOGLE_API_KEYCUSTOM_SEARCH_ENGINE_ID,以下是获取它们的方法:

  1. Google开发者控制台上创建一个应用。
  2. 使用Google自定义搜索创建你的自定义搜索引擎。
  3. 自定义搜索引擎创建完成后,选择它并进入其详情页面。
    • 在“基本”部分,你会找到“搜索引擎ID”字段,这个值就是你要用于CUSTOM_SEARCH_ENGINE_ID环境变量的值。
    • 接下来,转到页面底部的“程序化访问”部分。
      • 创建一个“自定义搜索JSON API”。
      • 按照提示选择你在第1步中创建的应用程序,并在获得API密钥后将其填入GOOGLE_API_KEY环境变量中。

ℹ️ 如果这些环境变量不存在,L♾️pGPT将会回退到使用DuckDuckGo搜索

💌 贡献

我们非常需要帮助!如果你愿意贡献,请开一个issue或PR。

🌳 社区

需要帮助吗?加入我们的Discord

⭐ 星标历史 📈

星标历史图

版本历史

v0.1.12024/03/10
v0.1.02023/07/16
v0.0.152023/05/12
v0.0.142023/05/10
v0.0.132023/05/09
v0.0.122023/04/30
v0.0.112023/04/27
v0.0.102023/04/24

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架