Agent Builder API - Agent Smith 扩展的后端服务(开源代码)

​一、软件介绍

文末提供程序和源码下载

        Agent Builder API - Agent Smith 扩展的后端服务(开源代码)手动设置:在本地计算机中克隆此存储库并启动 python FAST API 服务器。(可选)安装并设置 Mongo DB。Dev Container 设置:Dev Containers 允许您自动执行环境设置。使用此设置可在预安装了扩展的隔离环境中安装和运行容器服务。您还可以使用密钥在远程环境/浏览器中打开 GitHub Codespaces 以传递模型 API 密钥。

二、Manual Setup 手动设置

  1. Set up a Python virtualenv and install dependencies
    设置 Python virtualenv 并安装依赖项

    python -m venv --prompt agent-builder-api venv
    source venv/Scripts/activate
    # venv/Scripts/activate (Windows PS)
    pip install -r requirements.txt
  2. Set the model name and API key in .env file
    在 .env 文件中设置模型名称和 API 密钥

    OPENAI_API_KEY="sk----"
    MODEL_NAME="openai"
  3. Start the server in the new terminal
    在新终端中启动服务器

    python -m agentbuilder.main
[Optional] Start using Poetry
[可选]开始使用 Poetry

For fine-grained dependency management, use Poetry to pick and choose dependency packs based on your LLM model provider and tool features.
对于精细的依赖项管理,请使用 Poetry 根据您的LLM模型提供程序和工具功能来挑选依赖项包。

  1. Follow the Offical Instruction Guide to install Poetry.
    按照 官方说明指南安装 Poetry。

  2. Pick and choose dependency packs to install.
    选择要安装的依赖项包。

    poetry install --extras "mcp openai gemini cohere anthropic mongodb vectordb langgraph guardrails ui"
  3. Set the model name and API key in .env file
    在 .env 文件中设置模型名称和 API 密钥

    OPENAI_API_KEY="sk----"
    MODEL_NAME="openai"
  4. Start the server in the new terminal
    在新终端中启动服务器

    poetry run start-server

Note 注意

Poetry will create a virtual environment for us.
诗歌将为我们创造一个虚拟环境。

MCP servers MCP 服务器
  • Local MCP servers can be added in MCP server folder
    可以在 MCP 服务器文件夹中添加本地 MCP 服务器

  • Multiple MCP clients can be configured in MPC client file
    可以在 MPC 客户端文件中配置多个 MCP 客户端

    mcp_servers={"math": {"command": sys.executable,"args": [f"{current_dir}\\servers\\math.py"],"transport": "stdio",}}
[Optional] Enable MongoDB
[可选]启用 MongoDB

By default, data is stored as JSON files. Enable storage in Mongo DB by setting url using the environment variable.
默认情况下,数据存储为 JSON 文件。通过使用环境变量设置 url 在 Mongo DB 中启用存储。

MONGODB_URL="mongodb://localhost:27017/llmdb"

三、Dev Containers Setup 开发容器设置

  1. Enable Dev Containers in vscode by following the steps in official documentation.
    按照官方文档中的步骤在 vscode 中启用 Dev Containers。

  2. Click on the badge below to run the services in an isolated container environment in a local machine.
    单击下面的徽章,在本地计算机的隔离容器环境中运行服务。

    This will clone the repo and start the API and Mongo DB container services.
    这将克隆存储库并启动 API 和 Mongo DB 容器服务。

Tip 提示

Use URL mongodb://mongodb:27017/llmdb in Mongo DB vscode extension to view storage data.
使用 Mongo DB vscode 扩展中的 URL mongodb://mongodb:27017/llmdb 查看存储数据。

  1. Execute F1 > Dev Containers: Attach to Running Container.. and select agent-builder-container.
    执行 F1 > Dev Containers:附加到正在运行的容器..,然后选择 agent-builder-container。

  2. Set the model name and API key in .env file
    在 .env 文件中设置模型名称和 API 密钥

    OPENAI_API_KEY="sk----"
    MODEL_NAME="openai"

四、Customization 定制

Dependency packs and environment configuration
依赖项包和环境配置

Dependency packs allow fine-grained package installations based on your requirements. Use the environment variable EXTRA_DEPS in the docker-compose file to update.
依赖项包允许根据您的要求进行精细的软件包安装。使用 docker-compose 文件中的环境变量 EXTRA_DEPS 进行更新。

install-extra-deps.sh script can be used in dev container mode if docker-compose is not available.
如果 docker-compose 不可用,则可以 install-extra-deps.sh Dev Container 模式下使用该脚本。

For example, the below environment configuration will install dependencies for the Gemini model, Mongo DB, Langchain Graph, and VectorDB
例如,以下环境配置将安装 Gemini 模型、Mongo DB、Langchain Graph 和 VectorDB 的依赖项

EXTRA_DEPS: "gemini,mongodb,langgraph,vectordb"

Tip 提示

Start with a basic dependency pack to support your model and add other features incrementally
从基本依赖项包开始以支持您的模型,并逐步添加其他功能

The following models are supported by its dependency pack
其依赖项包支持以下模型

Model 型Dependency pack 依赖项包ENV key name ENV 密钥名称
OPEN AI 开放人工智能openai OpenAI 公司OPENAI_API_KEY
GEMINI 双子座gemini 双子座GOOGLE_API_KEY
COHEREcohere 凝聚COHERE_API_KEY
ANTHROPIC ANTHROPIC 类anthropic 人为的ANTHROPIC_API_KEY

Some pre-configured tools require extra dependencies or API keys to get enabled.
某些预配置工具需要额外的依赖项或 API 密钥才能启用。

Tool 工具Dependency pack 依赖项包ENV key name ENV 密钥名称
internet_search-TAVILY_API_KEY
vectorstore_searchvectordb 矢量数据库EMBED_MODEL_NAME

Adding Tools 添加工具

Add custom Tools or Toolkits using tool factory module (agentbuilder/factory/tool_factory).
使用工具工厂模块 (agentbuilder/factory/tool_factory) 添加自定义工具或工具包。

  1. Create your tool 创建您的工具

    agentbuilder/tools/my_custom_tool.py
    代理构建器/工具/my_custom_tool.py

    from pathlib import Path
    from langchain_core.tools import tool
    from pydantic import BaseModel, Field@tool
    def my_custom_tool(a: int, b: int):
    """Custom Tool Description"""
    return a + bmy_custom_tool.name="custom_tool_name"
    my_custom_tool.description="Custom Tool Description"class field_inputs(BaseModel):
    a: int = Field(description="First input")
    b: int = Field(description="Second input")my_custom_tool.args_schema = sum_inputs
    my_custom_tool.metadata= {"file_path": str(Path(__file__).absolute())}
  2. Add your tool in get_all_tools method in tool_factory module.
    在 get_all_tools 模块tool_factory方法中添加您的工具。

    agentbuilder/factory/tool_factory.py
    代理生成器/工厂/tool_factory.py

    def get_all_tools()->Sequence[BaseTool]:return get_vectordb_tools()+ get_websearch_tools() + json_tools + [directly_answer_tool,weather_clothing_tool,temperature_tool,temperature_sensor_tool,sum_tool,greeting_tool,git_diff_tool,repl_tool,
    +           my_custom_tool]

Adding Agents 添加代理

Agents can be created using Extension UI or declared in code. Add your agents using the Agent Factory Module (agentbuilder/factory/agent_factory).
代理可以使用扩展 UI 创建,也可以在代码中声明。使用 Agent Factory 模块 (agentbuilder/factory/agent_factory) 添加代理。

  1. Create your agent 创建您的代理

    def my_agent():return AgentParams(name="my_agent",preamble= "You are a powerful agent that uses tools to answer Human questions",tools=  ["my_custom_tool"],agent_type= 'tool_calling')
  2. Add your agent in get_all_agents method.
    在 get_all_agents 方法中添加代理。

    def get_all_agents():
    return [default_agent(),weather_agent(),python_agent(),git_agent(),
    +       my_agent()
    ]

Custom Agent Builder and Graphs
自定义代理生成器和图表

Customize your Agent Workflow using custom prompts and graphs. Filter the agent using the agent name to apply customizations.
使用自定义提示和图表自定义您的代理工作流程。使用代理名称筛选代理以应用自定义。

For example, the following code applies graph builder workflow for the Agent named "graph_agent"
例如,以下代码将图形生成器工作流应用于名为“graph_agent”的代理

def get_agent_builder(params:AgentBuilderParams):agent_name= params.namematch agent_name:case "graph_agent":from agentbuilder.agents.BaseGraphAgentBuilder import BaseGraphAgentBuilderreturn BaseGraphAgentBuilder(params)case _:return BaseAgentBuilder(params)

Important 重要

Dependency pack "langgraph" needs to be installed for BaseGraphAgentBuilder.
需要为 BaseGraphAgentBuilder 安装依赖项包 “langgraph”。

Configuring models 配置模型

Update model configuration using environment variables.
使用环境变量更新模型配置。

Supports {Provider}/{ModelName} format
支持 {Provider}/{ModelName} 格式

  • Gemini 双子座

    Create API keys https://aistudio.google.com/app/apikey
    创建 API 密钥 https://aistudio.google.com/app/apikey

     MODEL_NAME="gemini/gemini-pro"EMBED_MODEL_NAME="gemini/embedding-001"GOOGLE_API_KEY=<GOOGLE_API_KEY>
  • Cohere 凝聚

    Create API keys Login | Cohere
    创建 API 密钥 https://dashboard.cohere.com/api-keys

     MODEL_NAME="cohere/command"EMBED_MODEL_NAME="cohere/embed-english-v3.0"COHERE_API_KEY=<COHERE_API_KEY>
  • Open AI 打开 AI

    Create API keys https://platform.openai.com/docs/quickstart/account-setup
    创建 API 密钥 https://platform.openai.com/docs/quickstart/account-setup

     MODEL_NAME="openai/gpt-4o"EMBED_MODEL_NAME="openai/text-embedding-3-large"OPENAI_API_KEY=<OPENAI_API_KEY>
  • Anthropic 人

    Create API keys Home \ Anthropic and Voyage AI | Home
    创建 API 密钥 https://www.anthropic.com/ 和 https://www.voyageai.com/

     MODEL_NAME="anthropic/claude-3-opus-20240229"EMBED_MODEL_NAME="voyageai/voyage-2"ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY>VOYAGE_API_KEY=<VOYAGE_API_KEY>
  • Ollama 奥拉马

    Use local models for function calls.
    使用本地模型进行函数调用。

    [!TIP] Use JSON chat agent type for better compatibility with local models.
    [!提示] 使用 JSON 聊天代理类型以更好地与本地模型兼容。

    Install Ollama and pull the model.
    安装 Ollama 并拉取模型。

    ollama pull mistral:v0.3

    Set environment variable.
    设置环境变量。

    MODEL_NAME="ollama/mistral:v0.3"

五、软件下载

夸克网盘分享

本文信息来源于GitHub作者地址:https://github.com/nagaraj-real/agent-builder-api

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/80984.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C及C++的SOAP协议库

一.gSOAP gSOAP 是一个功能强大的开源工具包&#xff0c;专为 C 和 C 设计&#xff0c;用于快速开发基于 SOAP 协议的 Web 服务和客户端。 1.协议支持 SOAP 版本&#xff1a;完整支持 SOAP 1.1/1.2 规范&#xff0c;包括消息格式、编码规则和错误处理。 传输协议&#xff1a…

html5+css3实现傅里叶变换的动态展示效果(仅供参考)

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>傅里叶变换的动态展示效果</title><sty…

ECharts中Map(地图)样式配置、渐变色生成

前言 在日常开发中&#xff0c;ECharts 几乎成了我们绘制数据图表的标配工具&#xff0c;功能强大到几乎无所不能。不过每次用的时候都要翻官方文档查配置项&#xff0c;确实有点小繁琐 &#x1f605; 为了提升效率&#xff0c;也方便以后快速复用&#xff0c;这里就整理记录…

内存分配器ptmalloc2、tcmalloc、jemalloc,结构设计、内存分配过程详解

1. 引言 博主之前做过一个高并发内存池的项目实践&#xff0c;在实践中对于内存分配器的内存分配过程理解更加深刻了。在此期间&#xff0c;翻查了不少资料以及博客&#xff0c;发现源码分享的博客不多&#xff0c;能生动完整的讲述ptmalloc2、tcmalloc、jemalloc它们的结构设…

【拥抱AI】Deer-Flow字节跳动开源的多智能体深度研究框架

最近发现一款可以对标甚至可能超越GPT-Researcher的AI深度研究应用&#xff0c;Deer-Flow&#xff08;Deep Exploration and Efficient Research Flow&#xff09;作为字节跳动近期开源的重量级项目&#xff0c;正以其模块化、灵活性和人机协同能力引发广泛关注。该项目基于 La…

openfeign与dubbo调用下载excel实践

一、前言 openfeign和dubbo均是rpc框架 RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;框架 是一种允许程序像调用本地方法一样调用远程服务器上函数的技术。它隐藏了底层网络通信的复杂性&#xff0c;让开发者可以专注于业务逻辑&#xff0c;实现…

解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs-强化学习算法

解密企业级大模型智能体Agentic AI 关键技术&#xff1a;MCP、A2A、Reasoning LLMs-强化学习算法 现在我们的核心问题是有一些同学会知道要才能强化学习。为什么才能强化学习&#xff1f;是实现AGI。例如从这个其实你从第一阶段开始以后&#xff0c;就是chatbot&#xff0c;这…

音频分类的学习

1.深度学习PyTorch入门-语音分类 https://blog.csdn.net/sinat_41787040/article/details/129795496 https://github.com/musikalkemist/pytorchforaudio https://github1s.com/musikalkemist/pytorchforaudio/blob/main/04%20Creating%20a%20custom%20dataset/urbansoundda…

美SEC主席:探索比特币上市证券交易所

作者/演讲者&#xff1a;美SEC主席Paul S. Atkins 编译&#xff1a;Liam 5月12日&#xff0c;由美国SEC加密货币特别工作组发起的主题为《资产上链&#xff1a;TradFi与DeFi的交汇点》系列圆桌会议如期举行。 会议期间&#xff0c;现任美SEC主席Paul S. Atkins发表了主旨演讲。…

Qt file文件操作详解

1.引言 很多应用程序都具备操作文件的能力&#xff0c;包括对文件进行写入和读取&#xff0c;创建和删除文件等等&#xff0c;甚至某些应用程序的就是为了操作文件&#xff0c;像WPS Office。基于此Qt框架中专门提供了对文件操作的类&#xff1a;QFile。 2.QFile文件操作 QF…

【测试开发知识储备】之Jacoco(Java Code Coverage)

文章目录 Jacoco是什么Jacoco的主要功能&#xff08;一&#xff09;多样化覆盖率指标分析&#xff08;二&#xff09; 丰富的报告生成&#xff08;三&#xff09;实时数据收集 Jacoco的工作原理&#xff08;一&#xff09;字节码增强&#xff08;二&#xff09;测试执行与数据收…

Docker 介绍与使用

Docker 文章目录 Docker介绍与虚拟机的比较启动速度占用资源 优势更容易迁移更容易维护更容易扩展 使用场景持续集成提供可伸缩的云服务搭建微服务架构 镜像与容器镜像构成&#xff08;分层结构&#xff09;镜像与容器的区别 安装 Docker常用命令介绍镜像相关容器相关 实战&…

《AI大模型应知应会100篇》第62篇:TypeChat——类型安全的大模型编程框架

第62篇&#xff1a;TypeChat——类型安全的大模型编程框架 摘要 在构建 AI 应用时&#xff0c;一个常见的痛点是大语言模型&#xff08;LLM&#xff09;输出的不确定性与格式不一致问题。开发者往往需要手动解析、校验和处理模型返回的内容&#xff0c;这不仅增加了开发成本&a…

upload-labs通关笔记-第5关 文件上传之.ini绕过

目录 一、ini文件绕过原理 二、源码审计 三、渗透实战 1、查看提示 2、制作.user.ini文件 &#xff08;1&#xff09;首先创建一个文本文件 &#xff08;2&#xff09;保存文件名为.user.ini 2、制作jpg后缀脚本 &#xff08;1&#xff09;创建一个文本文件 &#xf…

为什么 Linux 上默认没有 host.docker.internal

在 Linux 环境中&#xff0c;host.docker.internal 是 Docker 为容器提供的一个特殊 DNS 名称&#xff0c;用于指向宿主机的 IP 地址&#xff08;类似 macOS/Windows 中的行为&#xff09;。但这个功能在 Linux 上默认不启用&#xff0c;需要手动配置才能使用。以下是详细解释和…

C++GO语言微服务和服务发现②

01 创建go-micro项目-查看生成的 proto文件 02 创建go-micro项目-查看生成的main文件和handler ## 创建 micro 服务 命令&#xff1a;micro new --type srv test66 框架默认自带服务发现&#xff1a;mdns。 使用consul服务发现&#xff1a; 1. 初始consul服务发现&…

Redis--常见数据类型List列表

目录 一、概念 二、命令 2.1 LPUSH 2.2 LPUSHX 2.3 RPUSH 2.4 RPUSHX 2.5 LRANGE 2.6 LPOP 2.7 RPOP 2.8 LINDEX 2.9 LINSERT 2.10 LLEN 2.11 阻塞版本命令 三、内部编码 一、概念 列表类型是用来存储多个有序的字符串&#xff0c;列表中的每个字符串称为元素&…

QListWedget控件使用指南

QListWedget公共函数 函数签名功能描述QListWidget(QWidget *parent nullptr)构造函数&#xff0c;创建一个QListWidget对象&#xff0c;可指定父部件&#xff08;默认为nullptr&#xff09;。virtual ~QListWidget()虚析构函数&#xff0c;释放QListWidget对象及其资源。voi…

Seata源码—1.Seata分布式事务的模式简介

大纲 1.Seata分布式事务框架简介 2.Seata AT模式实现分布式事务的机制 3.Seata AT模式下的写隔离机制 4.Seata AT模式下的读隔离机制 5.官网示例说明Seata AT模式的工作机制 6.Seata TCC模式的介绍以及与AT模式区别 7.Seata Saga模式的介绍 8.单服务多个库的分布式事务…

【Qt】之音视频编程2:QtAV的使用篇

QtAV 基本播放控制功能实现&#xff08;C & QML&#xff09; QtAV 提供了完整的播放控制 API&#xff0c;支持 播放、暂停、停止、快进快退、截屏 等功能。以下是具体实现方法&#xff1a; 1. C 控制方式 基本播放控制 #include <QtAV> #include <QtAV/AVPlaye…