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
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80984.shtml
英文地址,請注明出處:http://en.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…