AgentSys is currently an experimental sample framework intended to explore ergonomic interfaces for multi-agent systems. It is not intended to be used in production, and therefore has no official support. (This also means we will not be reviewing PRs or issues!)
The primary goal of AgentSys is to showcase the handoff & routines patterns explored in the Orchestrating Agents: Handoffs & Routines cookbook. It is not meant as a standalone library, and is primarily for educational purposes.
pip install git+ssh://git@github.com/lifsys/agentsys.gitpip install git+https://github.com/lifsys/agentsys.gitThe project is organized into several key modules:
agentsys.orchestration: Core orchestration functionalitySwarm: Main orchestration class for managing agent interactionsAgent: Base class for defining agents
agentsys.models: Model interfaces and implementationsBaseModel: Abstract base class for model implementationsOpenAIModel: OpenAI model implementation
agentsys.config: Configuration managementSettings: Configuration settings and utilities
agentsys.types: Type definitions and data structuresagentsys.util: Utility functions and helpers
from agentsys import Swarm, Agent
client = Swarm()
agent = Agent(
name="test",
instructions="You are a helpful assistant.",
model="gpt-4",
)
messages = [{"role": "user", "content": "Hello!"}]
response = client.run(agent, messages)
print(response.messages[-1]["content"])AgentSys supports function calling with both OpenAI's function calling and tool calling APIs:
def get_weather(location: str) -> str:
"""Get the weather for a location."""
return f"The weather in {location} is sunny!"
agent = Agent(
name="weather",
instructions="You can help users check the weather.",
model="gpt-4",
functions=[get_weather],
)
messages = [{"role": "user", "content": "What's the weather in San Francisco?"}]
response = client.run(agent, messages)
print(response.messages[-1]["content"])You can configure AgentSys using environment variables or by passing a config object:
from agentsys import Settings
settings = Settings(
openai_api_key="your-api-key",
temperature=0.7,
)The Swarm class is the main entry point for interacting with agents. It handles:
- Message routing
- Function calling
- Response streaming
- Error handling
This is an experimental project and we are not accepting contributions at this time.
MIT
