RootDriver
根源出发,驱动万物
一个轻量级的 Python AI Agent 开发框架。
解决痛点:
- 想快速跑一个 Agent?一行代码,不需要编排、不需要懂设计模式
- 市面框架太重、太复杂、学习成本高?RootDriver 核心代码几千行,不用记几百个 API
- 需要扩展?按需添加,想加什么加什么,不被框架绑架
特性
- 简洁易用:装饰器方式定义工具,快速构建 Agent
- 模块化设计:LLM 适配器、工具系统、会话管理解耦
- 工具调用:支持 function calling,自动执行工具并返回结果
- 状态管理:支持内存和数据库持久化检查点
- 异常体系:完整的异常类层次结构
- 异步支持:全面异步支持,并发 Agent / 工具调用
安装
pip install rootdriver
快速开始
定义工具
from rootdriver import tool
@tool
def get_weather(city: str) -> str:
"""获取城市天气"""
return f"{city} 晴天"
创建 Agent
from rootdriver import Agent, LLMConfig, OpenAIAdapter
llm_config = LLMConfig(
model="gpt-4",
adapter=OpenAIAdapter(
api_key="YOUR_API_KEY",
base_url="BASE_URL"
)
)
agent = Agent.create(
llm_config=llm_config,
tools=[get_weather],
system_prompt="你是一个有用的助手",
)
# 单次对话(无 tool)
response = agent.talk("北京天气怎么样?")
print(response)
使用工具
# 完整对话循环(包含工具调用)
response = agent.react("帮我查下上海天气")
print(response)
异步用法
import asyncio
from rootdriver import Agent, LLMConfig, OpenAIAdapter
async def main():
# 单次异步对话
response = await agent.atalk("你好")
print(response)
# 并发多个 Agent
results = await asyncio.gather(
agent.areact("问题1"),
agent.areact("问题2"),
agent.areact("问题3"),
)
asyncio.run(main())
记忆持久化
Agent 支持对话历史持久化到 JSON 文件:
agent = Agent.create(
llm_config=llm_config,
system_prompt="你是一个有用的助手",
db_path="conversations.json",
)
# 对话
response = agent.react("我们之前聊了什么?")
# 手动保存到数据库
agent.conversation_repo.db_opt.update(
agent.engine.conversation.get_messages(),
checkpoint_name="session_1"
)
# 从数据库恢复对话历史
messages = agent.conversation_repo.db_opt.get("session_1")
agent.engine.conversation.update_message(messages)
内存快照
# 保存到内存快照
agent.conversation_repo.buffer_opt.update(
agent.engine.conversation.get_messages(),
checkpoint_name="backup_point"
)
# 从内存快照恢复
messages = agent.conversation_repo.buffer_opt.get("backup_point")
核心组件
| 组件 | 说明 |
|---|---|
Agent |
智能体入口,整合 LLM、工具、会话 |
Engine |
核心引擎,处理对话循环和工具调用 |
Conversation |
会话管理,维护消息历史 |
LLM |
LLM 调用封装 |
Tool |
工具集合,管理所有可调用工具 |
State |
状态管理,支持检查点和持久化 |
JsonDB |
JSON 文件数据库封装 |
项目结构
rootdriver/
├── agent.py # Agent 智能体
├── engine.py # 引擎核心
├── conversation.py # 对话管理
├── conversation_repo.py # 会话持久化仓库
├── state.py # 状态管理(保留但待简化)
├── db/ # 数据库封装包
│ └── json_db.py # JsonDB 实现
├── exceptions.py # 异常定义
├── llm/
│ ├── llm.py # LLM 封装
│ ├── base_adapter.py # 适配器基类
│ └── adapter/
│ └── openai_adapter.py # OpenAI 适配器
├── tool/
│ ├── base_tool.py # 工具基类
│ └── tools.py # 工具集
├── types/ # 类型定义
└── utils/ # 工具函数
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rootdriver-0.7.0.tar.gz
(24.1 kB
view details)
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 rootdriver-0.7.0.tar.gz.
File metadata
- Download URL: rootdriver-0.7.0.tar.gz
- Upload date:
- Size: 24.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
263e9224034b85f88402e8df8101f5ba1de1ab47788435d78ccb916ddc739bfa
|
|
| MD5 |
97de7973f95dc324b974e9a6e52dfa18
|
|
| BLAKE2b-256 |
dfc50ce84e3f5a5684b81127e1454246321a83e1620a734a6031c765fcbcae0e
|
File details
Details for the file rootdriver-0.7.0-py3-none-any.whl.
File metadata
- Download URL: rootdriver-0.7.0-py3-none-any.whl
- Upload date:
- Size: 32.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec88edb1ef23c2469a16309677497b3a564907d6635a05ee268d198060363805
|
|
| MD5 |
e148d5c1911c7e926141baf80e0428aa
|
|
| BLAKE2b-256 |
4450bd01ffe249b0edd649f876e5fefbb639e31e75c714234494b58ccad01124
|