HippoDb Agent SDK
Python SDK for building self-tuning AI agents backed by HippoDb.
Homepage: https://luthen.ai/
This package is designed for developers who want to build custom agents with:
- an LLM tool-use loop
- persistent memory in HippoDb
- configurable business tools
- optional rule enforcement, tuning, gateway, and networking features
What This SDK Provides
AgentRunnerto boot and run an agentRoleConfigto define agent identity and prompt behaviorBaseToolto define business-domain toolsAgentSettingsto configure runtime behavior- built-in memory, OS, and calculator tools
- HippoDb-backed memory client and memory seeding support
Core Concepts
1. Role
A role defines what the agent is, which tools it can see, and how it should behave.
2. Tools
Tools are Python classes that inherit from BaseTool. They are how the agent interacts with external systems.
3. Runner
AgentRunner wires together the LLM, tools, HippoDb, configuration, and terminal runtime.
4. Memory
HippoDb acts as the persistent memory layer for concepts, rules, and conversation continuity.
Installation
pip install hippodb-agent-sdk
For local development against a source checkout:
pip install -e .
Configuration
Configuration is loaded from:
- SDK defaults in
src/hippodb_agent/defaults.env - local
.env - environment variables
Important settings include:
LLM_API_KEYANTHROPIC_API_KEYHIPPODB_URLMODEL
Example .env:
LLM_API_KEY=your_key_here
HIPPODB_URL=http://localhost:7700
MODEL=anthropic/claude-sonnet-4-20250514
Minimal Example
Create a small agent with one custom tool.
tools.py
from hippodb_agent import BaseTool
class HelloTool(BaseTool):
name = "demo_hello"
description = "Return a hello message"
input_schema = {
"type": "object",
"properties": {},
"required": [],
}
async def execute(self, inp: dict) -> dict:
return {"message": "hello from HippoDb Agent SDK"}
role.py
from hippodb_agent import RoleConfig
MY_ROLE = RoleConfig(
name="demo_agent",
display_name="Demo Agent",
tool_scopes=["demo_"],
fabric="demo_agent",
system_prompt="You are a helpful demo agent.\n\n{manifest}",
)
main.py
from hippodb_agent import AgentRunner
from role import MY_ROLE
from tools import HelloTool
runner = AgentRunner(
role=MY_ROLE,
business_tools=[HelloTool],
)
if __name__ == "__main__":
runner.start()
Run it with:
python main.py
Building a New Agent
For a typical agent project, you usually create:
tools.pyfor business-domain toolsrole.pyforRoleConfigmain.pyas the startup entry pointseed.yamlfor pre-educationtest_suite.pyor tests for validation
Example Tool
from hippodb_agent import BaseTool
class ListEmployees(BaseTool):
name = "hr_list_employees"
description = "List all employees"
input_schema = {"type": "object", "properties": {}, "required": []}
backend = "hr"
async def execute(self, inp: dict) -> dict:
r = await self.api.get("/employees")
r.raise_for_status()
return r.json()
Example Runner With Backend
from hippodb_agent import AgentRunner
from role import MY_ROLE
from tools import ListEmployees
runner = AgentRunner(
role=MY_ROLE,
business_tools=[ListEmployees],
api_base_url="http://localhost:9000",
seed_file="seed.yaml",
)
if __name__ == "__main__":
runner.start()
Public SDK Surface
The intended primary imports are:
from hippodb_agent import (
AgentSettings,
RoleConfig,
AgentRunner,
BaseTool,
ApiClients,
)
Additional helper exports currently include:
get_os_toolsget_calc_toolsBaseMemoryFormatterget_formatterDataGatewayMaskStrategyFieldPolicyAgentNetwork
Runtime Behavior
Installing this package does not start any worker or background service.
Runtime behavior begins only when your application starts an agent, typically through AgentRunner.start().
Depending on configuration, startup may:
- connect to HippoDb
- create or reuse a fabric
- seed memory from
seed.yaml - start internal scheduler tasks
- connect to the optional agent network
Notes
- This repository currently includes some optional subsystems beyond the core SDK, such as networking, gateway/compliance, tuning, monitoring, and sleep orchestration.
- The primary use of the package is as an SDK for building custom agents.
- Bundled utility applications may exist in the repository, but they are not required for SDK usage.
Development
Useful local commands:
pip install -e .[dev]
pytest
License
This SDK is distributed under the PolyForm Noncommercial License 1.0.0. In short:
- Free to install, run, modify, and evaluate for any noncommercial purpose (personal projects, research, internal evaluation, etc.)
- Any commercial use requires a separate license from us.
See LICENSE for the full terms.
For commercial licensing inquiries, contact darshana@behaviol.com.
This technology is created and owned by Behaviol Pvt Ltd, distributed under the product name Luthen (https://luthen.ai/).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hippodb_agent_sdk-1.2.1.tar.gz.
File metadata
- Download URL: hippodb_agent_sdk-1.2.1.tar.gz
- Upload date:
- Size: 186.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4302e4bf17cfbcfc3ac1e9cd8fe834735b0000232b3d9c266772620a522adde
|
|
| MD5 |
6e8e9bd5cd514e5a3c72108626f31178
|
|
| BLAKE2b-256 |
db2891b14930aaae66cc0da577e74db8b247324ebd0d20d8ed830b28efeb4c1b
|
File details
Details for the file hippodb_agent_sdk-1.2.1-py3-none-any.whl.
File metadata
- Download URL: hippodb_agent_sdk-1.2.1-py3-none-any.whl
- Upload date:
- Size: 214.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eda38434bb3613efd586be4b9021659d14048d174a882fd73686d43882c7522
|
|
| MD5 |
4ac0e5d060af19e287bb3bc0b6a2d391
|
|
| BLAKE2b-256 |
9ac75b9c573e1a5c7fe0be80ea4b3d8b3cc3bd7c59a0d6b4cc11e3d19b142257
|