SuperAPI AI 工具集

maestro

Maestro 是一个基于 Python 的开源 AI 智能体编排框架,用于让 Claude Opus 等大语言模型将目标拆解为子任务,并调度子智能体逐个执行,最后汇总精炼为最终结果。它最初使用 Anthropic API,后经 LiteLLM 重写,支持 Anthropic、OpenAI、Gemini、Cohere、Groq 等多种 API,也可通过 LMStudio 或 Ollama 在本地运行。

访问官网

工具介绍

Maestro 是一个 AI 辅助任务分解与执行工作流框架。它通过 Anthropic API 调用两个 AI 模型(Opus 与 Haiku)协同工作:先由 Opus 将目标拆解为可管理的子任务,再由 Haiku 逐个执行,最后将结果精炼为连贯的最终输出。该项目已更新支持 Claude 3.5 Sonnet,并可配合任意 API 使用,包括 Anthropic、Gemini、OpenAI、Cohere 等。得益于使用 LiteLLM 对代码库的重写,选择模型变得更加容易。

主要能力

  • 使用 Opus 模型将目标拆解为可管理的子任务。
  • 使用 Haiku 模型执行每个子任务。
  • 为 Haiku 模型提供之前子任务的记忆作为上下文。
  • 使用 Opus 模型将子任务结果精炼为最终输出。
  • 生成详细交换日志,记录整个任务分解与执行过程。
  • 将交换日志保存为 Markdown 文件,便于查阅。
  • 为 Opus 模型使用改进的提示词,以更好地评估任务完成情况。
  • 在处理代码项目时创建代码文件和文件夹。

使用方式 在脚本中设置 API 密钥,例如: os.environ["OPENAI_API_KEY"] = "YOUR KEY" os.environ["ANTHROPIC_API_KEY"] = "YOUR KEY" os.environ["GEMINI_API_KEY"] = "YOUR KEY" 并配置模型,例如: ORCHESTRATOR_MODEL = "gemini/gemini-1.5-flash-latest" SUB_AGENT_MODEL = "gemini/gemini-1.5-flash-latest" REFINER_MODEL = "gemini/gemini-1.5-flash-latest" 也可使用 gpt-3.5-turbo 等。

运行前需安装依赖,首先安装 litellm,安装完成后运行脚本。若使用搜索功能,需替换 Tavily API 密钥(可从 https://tavily.com/ 获取)。

本地运行:可配合 LMStudio 或 Ollama。使用 LMStudio 时先从 https://lmstudio.ai/ 下载应用,再以偏好方式运行本地服务器;建议移除应用内的系统提示词(将提示词字段留空),以便脚本自身提示词生效。使用 Ollama 时先从 https://ollama.com/download 安装客户端,然后拉取模型,例如: ollama.pull('llama3:70b') ollama.pull('llama3:8b') 可根据所需模型进行定制,通常只需执行一次,或在新版本发布时更新模型。

运行要求

  • 已安装 Python。
  • Anthropic API 密钥。
  • 所需的 Python 包:anthropic 和 rich。

运行流程 克隆仓库或下载脚本文件;安装所需 Python 包;将脚本中的占位 API 密钥替换为实际密钥;如使用搜索,替换 Tavily API;打开终端或命令提示符,导航到脚本所在目录;运行脚本;在提示时输入目标。脚本将开始任务分解与执行过程,并通过格式化面板在控制台显示进度和结果。完成后,脚本会显示精炼后的最终输出,并将完整交换日志保存为以目标命名的 Markdown 文件。

主要函数

  • opus_orchestrator(objective, previous_results=None):调用 Opus 模型将目标拆解为子任务或提供最终输出。它使用改进的提示词评估任务完成情况,并在目标完全达成时包含短语 "The task is complete:"。
  • haiku_sub_agent(prompt, previous_haiku_tasks=None):调用 Haiku 模型执行子任务提示,并提供之前子任务的记忆。
  • opus_refine(objective, sub_task_results):调用 Opus 模型审查并精炼子任务结果,形成连贯的最终输出。

脚本采用迭代过程,反复调用 opus_orchestrator 函数将目标拆解为子任务,直到提供最终输出。每个子任务随后由 haiku_sub_agent 函数执行,结果存储在 task_exchanges 和 haiku_tasks 列表中。当 Opus 模型在响应中包含 "The task is complete:" 时,循环终止,表示目标已完全达成。最后调用 opus_refine 函数审查并精炼子任务结果。整个交换日志(包括目标、任务分解和精炼后的最终输出)保存到 Markdown 文件。

可定制项

  • 调整 client.messages.create() 调用中的 max_tokens 参数,控制 AI 模型生成的最大 token 数。
  • 更换模型,例如将 Haiku 替换为 Sonnet 或 Opus。
  • 通过修改 rich 库的 Panel 和 Console 配置调整控制台输出格式。
  • 修改相关代码段以定制交换日志格式和文件扩展名。

其他支持特性

  • 支持 Groq,可利用其超快 API 响应。
  • 创建子智能体任务时,Claude Opus 会执行搜索,为子智能体提供最佳答案参考。
  • 在 maestro-gpt.py 中支持将 GPT-4 作为编排器。

许可证 本项目基于 MIT License 发布。

致谢 感谢 Anthropic 提供 AI 模型和 API;感谢 Rich 提供美观的控制台格式化。