Skip to main content

A nano, minimalistic, and lightweight library for building ReACT-based AI agents that use tools to solve tasks.

Project description

🚀 Nbagents Summary

What We Added

Async Support

  • Full async/await support for both tools and LLM calls
  • run_async() method for async execution
  • is_async_function() utility to detect async functions
  • run_sync_or_async() utility to handle both sync and async functions seamlessly

🔧 Built-in Tools

  • Web Search: Search the web using DuckDuckGo API (both sync and async versions)
  • File Operations:
    • read_file: Read content from files
    • write_file: Write content to files
    • list_files: List files in directories
  • Time: get_current_time - Get current date and time
  • Auto-registration of built-in tools (can be disabled with include_builtin_tools=False)

📋 Comprehensive Logging

  • setup_logger() function for easy logger configuration
  • Agent-specific loggers with configurable log levels
  • Debug logging for tool execution and iterations
  • Info/Warning/Error logging for key events
  • Tool registration and execution logging

🔄 Enhanced Error Handling

  • Better retry mechanisms for both LLM calls and tool execution
  • Graceful error reporting with detailed messages
  • Tool execution attempt logging
  • Improved exception handling

🛠️ Improved Tool System

  • Enhanced Tool class with async support detection
  • Better tool schema parsing
  • Tool metadata including async status
  • Improved tool registry with built-in tool management

🎯 Better Agent Configuration

  • log_level parameter for controlling logging verbosity
  • include_builtin_tools parameter to control built-in tool loading
  • Enhanced initialization with better defaults

📦 Dependencies Added

  • requests - For web search functionality
  • aiohttp - For async web search
  • asyncio - For async support (built-in)
  • logging - For comprehensive logging (built-in)

🎮 Usage Examples

Basic Usage with Built-in Tools

from nbagents import Agent

agent = Agent(llm=your_llm_function, include_builtin_tools=True)
result = agent.run("Get the current time and save it to a file")

Async Usage

import asyncio
from nbagents import Agent

async def main():
    agent = Agent(llm=async_llm_function, include_builtin_tools=True)
    result = await agent.run_async("Search for Python tutorials and save results")

asyncio.run(main())

Custom Logging

from nbagents import Agent, setup_logger

logger = setup_logger("my_agent", "DEBUG")
agent = Agent(llm=your_llm, log_level="DEBUG")

Custom Tools with Async

@agent.tool("async_process")
async def async_process(data: str) -> str:
    await asyncio.sleep(1)  # Simulate async work
    return f"Processed: {data}"

Verified Working Features

  • ✅ File read/write operations work correctly
  • ✅ Time retrieval works correctly
  • ✅ Async tool execution works
  • ✅ Comprehensive logging is functional
  • ✅ Error handling and retries work
  • ✅ Tool registration and discovery works
  • ✅ Both sync and async LLM calls supported

🚀 Next Possible Enhancements

  • Memory/persistence system
  • Multi-agent communication
  • Plugin system
  • Configuration file support
  • Performance metrics and monitoring
  • Additional built-in tools (database, API calls, etc.)
  • Tool composition and chaining
  • Custom prompt templates

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nbagents-0.1.1.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nbagents-0.1.1-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file nbagents-0.1.1.tar.gz.

File metadata

  • Download URL: nbagents-0.1.1.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.10.5 Windows/10

File hashes

Hashes for nbagents-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5bf47ee822863f9a9cbd3db5b6aff080d337561e122157532540f5a751503e66
MD5 cf12bbcf4ab71cfb5bf63ffad6e7aa73
BLAKE2b-256 b6bf28dc2e3e1c2df0c0e67f2bc84662d9e9d71032ed69076942a272e554802e

See more details on using hashes here.

File details

Details for the file nbagents-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: nbagents-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.10.5 Windows/10

File hashes

Hashes for nbagents-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fb239bc6600cc2514fb6c41398f403a088f13fb50c78f87d9423823dfb4133c5
MD5 789cd8735290b5c61edc0a7263bee0e8
BLAKE2b-256 51ea8baff27af7105a8bccbe00ea9e447e595633f5c25b39f029850cc6d4c90f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page