Hermes AI Agent Framework
Current Version: 0.3.20
🚀 Smart LlamaIndex Abstraction for AI Agents
🌟 Hermes is a lightweight, powerful abstraction layer over LlamaIndex that simplifies building production-ready AI agents with essential utilities and multi-agent capabilities. 🚀
✨ Features
- 🛠️ Automatic Tool Integration - Convert Python functions to tools effortlessly
- 🤖 Multi-Agent Orchestration - Coordinate multiple specialized agents
- 🧠 Enhanced Prompt Management - Built-in Chain of Thought and context awareness
- 💬 Smart Memory Management - Automatic chat history handling with configurable limits
- 🔌 Multi-Provider Support - OpenAI, Azure, Anthropic, and more
- 📊 Text Processing Utilities - Keyword extraction, formatting, and enhancement
🚀 Quick Start
pip install hermes-ai
import asyncio
from hermes.core import Agent
async def main():
# Create a simple tool
def get_weather(location: str) -> str:
"""Get weather information for a location."""
return f"Weather in {location}: Sunny, 25°C"
# Initialize your agent
agent = Agent(
provider="openai",
model="gpt-4o-mini",
name="WeatherAssistant",
description="Helps with weather information",
prompt="Provide accurate and helpful weather updates.",
tools=[get_weather]
)
# Execute the agent
response = await agent.execute(input_data="What's the weather in Tokyo?")
print(response)
asyncio.run(main())
Output:
Using the weather tool, I can see that the weather in Tokyo is Sunny with a temperature of 25°C. It's a beautiful day!
💬 Simple Chat Example
import asyncio
from hermes.core import Agent
async def main():
# Initialize agent
agent = Agent(
provider="openai",
model="gpt-4o-mini"
)
# Ask a question
response = await agent.execute(input_data="Qual é a capital do Brasil?")
print(response)
# Output: A capital do Brasil é Brasília. Ela foi oficialmente
# inaugurada em 21 de abril de 1960...
asyncio.run(main())
🌐 Web Interface Example
import asyncio
from hermes.core import Agent
from hermes.web import hermes_web
async def main():
agent = Agent(
provider="openai",
model="gpt-4o-mini"
)
await hermes_web(port=8000, agent=agent)
if __name__ == "__main__":
asyncio.run(main())
🔗 Web Interface Repository: Hermes-Web
🖼️ Screenshots Web Interface
Main chat interface with conversation history
Visualization of tools used by agents
Message input interface with validation
Loading indicator during processing
🏗️ Multi-Agent System
import asyncio
from hermes.core import Agent
async def main():
# Define specialist tools
def get_market_info(query: str) -> str:
"""Get current market conditions and trends."""
return "Market is bullish today with major indices up 2%. USD at R$ 5.10."
def calculate_investment(amount: float, period: int) -> str:
"""Calculate investment returns with recommendations."""
expected_return = amount * (1 + 0.12) ** (period / 12)
return f"Investment of R$ {amount:,.2f} for {period} months: Expected return R$ {expected_return:,.2f}"
# Create specialized agents
market_agent = Agent(
provider="openai",
model="gpt-4o-mini",
name="MarketAnalyst",
description="Expert in market analysis and quotes",
tools=[get_market_info]
)
investment_agent = Agent(
provider="openai",
model="gpt-4o-mini",
name="InvestmentAdvisor",
description="Expert in investment planning",
tools=[calculate_investment]
)
# Coordinator agent that delegates to specialists
coordinator = Agent(
provider="openai",
model="gpt-4o-mini",
name="Coordinator",
description="Routes questions to appropriate specialists",
prompt="""Analyze user questions and delegate to the right expert:
- Market questions → MarketAnalyst
- Investment questions → InvestmentAdvisor
- Complex questions → consult both""",
tools=[market_agent, investment_agent]
)
# Execute coordinated task
result = await coordinator.execute(
input_data="Should I invest R$ 10000 for 12 months? What's the market like?"
)
print(result)
asyncio.run(main())
🔧 Core Components
Agent Configuration
Agent(
provider="openai", # LLM provider
model="gpt-4o-mini", # Model name
name="Assistant", # Agent identity
description="Helpful AI", # Agent purpose
prompt="Behavior guidelines", # System prompt
tools=[function1, function2], # Available tools
temperature=0.7, # Creativity control
max_chat_history_length=20 # Memory management
)
Built-in Utilities
- Automatic tool conversion from Python functions
- Enhanced prompt formatting with current context
- Chat history management with configurable limits
- Input enhancement with keyword extraction
- Multi-provider LLM support
📁 Project Structure
hermes/
├── core.py # Main Agent class
├── utils.py # Text processing utilities
├── tools.py # Tool creation helpers
└── providers.py # LLM provider configurations
🎯 Use Cases
- Customer Support Agents
- Multi-Domain Expert Systems
- Research Assistants
- Data Analysis Tools
- Content Generation Systems
🔮 Roadmap
- Vector database integration
- Advanced memory backends
- Streaming responses
- Plugin system
- Web interface
💡 Contributing
We welcome contributions! Please see our Contributing Guide for details.
📄 License
MIT License - see LICENSE file for details.
Build intelligent agents faster with Hermes - The messenger of AI capabilities
Metadata
Release files for hermes-ai 0.3.20
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| hermes_ai-0.3.20.tar.gz | 3.4 MB | Without provenance | Details for hermes_ai-0.3.20.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| hermes_ai-0.3.20-py3-none-any.whl | Python 3 | none | any | Details for hermes_ai-0.3.20-py3-none-any.whl |
Total release size: 6.8 MB
Release files / hermes_ai-0.3.20.tar.gz
| Download URL | hermes_ai-0.3.20.tar.gz |
|---|---|
| Size | 3.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15495d1d9b9656db2a60e1428a37e7e03f9a0686b4cb84662ef169f6c69f91cb
|
|
BLAKE2b-256 checksum How to use checksums |
a97c9d317972e5337f94dcf42f6fc093b13fac0b0e44e7be0556996e0e547a54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.7
|
Release files / hermes_ai-0.3.20-py3-none-any.whl
| Download URL | hermes_ai-0.3.20-py3-none-any.whl |
|---|---|
| Size | 3.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3f533e2b70bc2bcd4d3e987aaa8dfba9c709fe6a3a5d0406783836acec6b8d68
|
|
BLAKE2b-256 checksum How to use checksums |
5590bc92628189acd8fd7c8b4b9e6ec5605f82df8539a777d1a57fdc62af7a8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.7
|
Security for hermes-ai 0.3.20
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.