Observed since 20 Oct, 22:18 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Production-grade multi-agent framework with minimal dependencies
Command. Coordinate. Execute.
AgenticOptio is a disciplined AI agent library built for reliable multi-model orchestration. Named after the Roman military Optio—the trusted second-in-command who coordinated formations, supervised operations, and stepped in as acting commander—this framework embodies the same principles of tactical coordination, operational resilience, and execution discipline.
Why "Optio"? In Roman legions, an Optio was the backbone of military precision—responsible for coordination, training supervision, and maintaining formation integrity. They were the reliable officers who transformed strategic vision into flawless tactical execution. AgenticOptio brings this same operational excellence to AI agent coordination.
# Install directly from GitHub
pip install git+https://github.com/yourusername/agenticoptio.git
# Or clone and install locally
git clone https://github.com/yourusername/agenticoptio.git
cd agenticoptio
pip install -e .
# Or install dependencies manually
pip install openai
ollama pull llama3.2import asyncio
from agenticoptio import OllamaChat
async def main():
# Create chat model
llm = OllamaChat(model="llama3.2")
# Send a message
messages = [{"role": "user", "content": "Hello!"}]
response = await llm.ainvoke(messages)
print(response.content)
asyncio.run(main())
import asyncio
from agenticoptio import OllamaChat
async def main():
llm = OllamaChat(model="llama3.2")
messages = [{"role": "user", "content": "Tell me a story"}]
async for chunk in llm.astream(messages):
print(chunk.content, end="", flush=True)
asyncio.run(main())
import asyncio
from agenticoptio import OllamaEmbedding
async def main():
embedder = OllamaEmbedding(model="nomic-embed-text")
# Embed multiple texts
texts = ["Hello world", "How are you?"]
embeddings = await embedder.aembed(texts)
print(f"Generated {len(embeddings)} embeddings")
print(f"Embedding dimension: {len(embeddings[0])}")
asyncio.run(main())
from agenticoptio import OllamaChat
# Connect to remote Ollama instance
llm = OllamaChat(
model="llama3.2",
host="http://192.168.1.100:11434"
)
# Coming soon - OpenAI
from agenticoptio import OpenAIChat
llm = OpenAIChat(model="gpt-4o", api_key="your-key")
# Coming soon - Anthropic
from agenticoptio import AnthropicChat
llm = AnthropicChat(model="claude-3-5-sonnet-20241022", api_key="your-key")
# Coming soon - Unified factory
from agenticoptio import create_chat
llm = create_chat("openai", model="gpt-4o")
OLLAMA_HOST: Default Ollama host URL (default: http://localhost:11434)OPENAI_API_KEY: OpenAI API key (coming soon)ANTHROPIC_API_KEY: Anthropic API key (coming soon)class OllamaChat:
def __init__(
self,
model: str = "llama3.2",
host: str = "http://localhost:11434",
temperature: float = 0.0,
max_tokens: int | None = None,
timeout: float = 60.0,
max_retries: int = 2,
)
async def ainvoke(self, messages: list[dict]) -> AIMessage
def invoke(self, messages: list[dict]) -> AIMessage
async def astream(self, messages: list[dict]) -> AsyncIterator[AIMessage]
def bind_tools(self, tools: list) -> "OllamaChat"
class OllamaEmbedding:
def __init__(
self,
model: str = "nomic-embed-text",
host: str = "http://localhost:11434",
timeout: float = 60.0,
max_retries: int = 2,
batch_size: int = 100,
)
async def aembed(self, texts: list[str]) -> list[list[float]]
def embed(self, texts: list[str]) -> list[list[float]]
async def aembed_query(self, text: str) -> list[float]
def embed_query(self, text: str) -> list[float]
See the examples/ directory for usage examples:
basic_usage.py - Simple chat conversation with Ollamastreaming_example.py - Streaming responses with OllamaMore examples will be added as new providers are integrated.
In Roman legions, the Optio was the disciplined officer who transformed strategy into flawless execution. They coordinated formations, supervised training, enforced standards, and stepped in as acting commander when needed. AgenticOptio brings this same operational excellence to AI:
MIT License
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0 | 11 Dec 2025 | 3 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 22:18 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:de546130c202b6535ce5d620a4433017160084d32fbd73145295a0e7cdea3d49