ai-agent ai-agent — библиотека для создания асинхронных GPT-агентов с поддержкой Tool Calling, Tool Dispatching, управлением файлами, автоматическим предсказанием Tool Calls на базе ML, легко интегрируется с LangChain и FastAPI.
Установка bash Копировать Редактировать pip install ai-agent или локально из исходников:
bash Копировать Редактировать pip install -e . Основные компоненты 1️⃣ GptAgent python Копировать Редактировать from ai_agent import GptAgent
agent = GptAgent( openai_key="sk-...", instructions="Ты помощник.", name="MyAgent", model="gpt-4o" ) Методы: await create() Создание Assistant и Thread в OpenAI API.
await update_agent(new_assistant_name, new_assistant_instructions, new_assistant_model) Обновление параметров агента.
await update_memory() Создание нового Thread (обновление памяти).
await send_text_message(text: str) Отправка текстового сообщения.
await send_image_message(text: str, file_path: list[str]) Отправка изображения с текстом.
await message(text: str, file_path: Optional[list[str]]) Универсальный метод для отправки текста или изображения.
await get_image_description(image_path: str) Генерация описания изображения.
Пример: python Копировать Редактировать await agent.create() await agent.message("Привет, что ты умеешь?") 2️⃣ StorageManager python Копировать Редактировать from ai_agent.tools import StorageManager
storage = StorageManager()
await storage.start_cleanup() Методы: await save_file(user_id, assistant_id, file_name, content, expiry_hours, schema=None) Сохранение файла.
await delete_files(user_id, assistant_id, file_names) Удаление указанных файлов.
await list_files(user_id, assistant_id) Список файлов.
await delete_assistant_folder(user_id, assistant_id) Удаление папки ассистента.
await get_file_path(user_id, assistant_id, file_name) Получение пути к файлу.
await get_files_by_extension(user_id, assistant_id, extension) Получение файлов по расширению.
Пример: python Копировать Редактировать await storage.save_file("user1", "agent1", "test.txt", "Hello", 1) files = await storage.list_files("user1", "agent1") 3️⃣ ToolCallPredictor python Копировать Редактировать from ai_agent.tools import ToolCallPredictor
predictor = ToolCallPredictor() Методы: await train(data) Обучение модели.
await load_model() Загрузка модели.
await predict_tools(text) Предсказание инструментов для текста.
await predict_tools_batch(texts) Пакетное предсказание.
await generate_tool_calls(text) Генерация Tool Calls для текста.
await generate_tool_calls_batch(texts) Пакетная генерация Tool Calls.
await prepare_user_message(text) Генерация сообщения для Assistant API.
await prepare_user_messages_batch(texts) Пакетная генерация сообщений.
Пример: python Копировать Редактировать data = [ {"text": "translate", "tools": ["translator"]}, {"text": "analyze image", "tools": ["analyzer"]} ]
await predictor.train(data) await predictor.load_model() tools = await predictor.predict_tools("translate") 4️⃣ ToolManager python Копировать Редактировать from ai_agent.tools import ToolManager, ToolCallPredictor, StorageManager, ToolsCollector
manager = ToolManager( assistant_id="aid", user_id="uid", predictor=ToolCallPredictor(), storage=StorageManager(), collector=ToolsCollector() ) Методы: await generate_tool_calls(text) Генерация Tool Calls.
await generate_user_message(text) Генерация пользовательского сообщения.
await handle_tool_calls(tool_calls) Обработка Tool Calls.
get_generated_files() Получение списка сгенерированных файлов.
5️⃣ ToolDispatcher python Копировать Редактировать from ai_agent.tools import ToolDispatcher Методы: await dispatch(tool_calls) Обработка Tool Calls.
get_file_names() Получение имён файлов.
6️⃣ ToolsCollector python Копировать Редактировать from ai_agent.tools import ToolsCollector
collector = ToolsCollector() Методы: @collector.tool(schema) Декоратор для регистрации инструмента.
await get_tools() Получение схем инструментов.
await get_function(name) Получение функции по имени.
await get_all() Получение всех зарегистрированных функций.
await call_tool(name, arguments) Вызов инструмента с аргументами.
Пример: python Копировать Редактировать @collector.tool({ "function": { "name": "multiply", "parameters": { "type": "object", "properties": { "x": {"type": "integer"} }, "required": ["x"] } } }) def multiply(x): return {"result": x * 2}
tools = await collector.get_tools() result = await collector.call_tool("multiply", {"x": 5}) Лицензия MIT License.
Metadata
Release files for openai-agent-core 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openai_agent_core-0.1.2.tar.gz | 16.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openai_agent_core-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.5 kB
Release files / openai_agent_core-0.1.2.tar.gz
| Download URL | openai_agent_core-0.1.2.tar.gz |
|---|---|
| Size | 16.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b05cbdb24eb15a0d1e94eab2e3160ed346cd2cb7d7418f8b71eacb0023c5596d
|
|
BLAKE2b-256 checksum How to use checksums |
246350610df824c05ee96aa54ea85f19e34a2bd1847091bf1048bc66c1008674
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.0rc2
|
Release files / openai_agent_core-0.1.2-py3-none-any.whl
| Download URL | openai_agent_core-0.1.2-py3-none-any.whl |
|---|---|
| Size | 16.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f803ac5daa283d3fa6b66bf787aff9d745aa8ff98471507c99da321aa266a0b
|
|
BLAKE2b-256 checksum How to use checksums |
3e87226ea38a162a6ea1dbda024e3c507da67074081ea82af6d07fcb822960eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.0rc2
|