面向LLM的工作流图嵌套调度框架
Project description
AgentOS2 项目脚手架
LLM驱动的智能工作流系统,支持图结构编排、流程嵌套、双层并发架构
📌 项目结构
agent_os2/
├── agent_os/ # 核心框架
│ ├── base_agent.py # Agent抽象
│ ├── flow.py # DAG调度器
│ ├── base_model/ # 模型接口
│ ├── utility.py # 工具函数
│ └── visualize.py # 可视化
├── agents/examples/ # 示例
├── agent_settings.json # Agent配置
├── model_settings.json # 模型配置
└── DEVELOPING_GUIDE.md # 开发指南
🚀 核心特性
一、BaseAgent
1.1 生命周期
✅ 已完成: 标准流程(激活→批处理→执行→下发) | 三阶段(setup/pipeline/post_process) | 纯函数特性
1.2 上下文系统
✅ 已完成: Settings(构建时继承) | Args/SharedContext/ExtraContexts(运行时) | 模板系统({src.*}/{ctx.*}) | 深度合并
⏳ 未完成: 上下文压缩 | RAG/KAG集成
1.3 批处理
✅ 已完成: batch_field | 批处理索引 | 双层并发架构
1.4 模型交互
✅ 已完成: 统一接口 | 智能重试 | 超时控制 | 严格模式 | JSON校验 | 模型配置优先级加载 | 为自动模型选择提供接口
1.5 日志系统
✅ 已完成: user_info | debug_info | 批处理标识 | 即时输出
1.6 agent_command
✅ 已完成: memory(替换更新Shared Context) | memory_append(追加更新Shared Context) | actions(修改图结构) | add_context(注入接口对象) | 可扩展
二、Flow
2.1 图结构调度
✅ 已完成: 有向图依赖 | 拓扑并发 | 动态修改 | 循环/条件分支
⏳ 未完成: 分布式调度 | 远程执行
2.2 Flow功能
✅ 已完成: Agent/Flow一体化 | YAML DSL | 入口管理 | 别名机制 | 热重载 | Agent类对象注入机制 | 注册系统
2.3 上下文隔离
✅ 已完成: 父子隔离 | 按需继承(expected_shared_context_keys) | 动态更新 | 优化传递
2.4 执行统计
✅ 已完成: 资源限制(max_*_limit) | 性能指标 | 执行可视化 | flow_results
三、辅助系统
3.1 模型系统
✅ 已完成: Processor注册 | ModelConfig | 内置多模型配置 | 流式输出 | 多模态输入解析 | 多轮对话 | 多模态输出
3.2 工具函数
✅ 已完成: DSL解析 | Agent发现 | JSON解析 | 字典合并 | 模板解析
⏳ 未完成: Token压缩 | RAG/KAG工具
3.3 执行接口
✅ 已完成: execute() | 可视化执行 | 单Agent测试 | 双模式 | 并发限制 | observer
⏳ 未完成: 分布式执行 | MCP插件
📖 最新更新
- 上下文传递优化: 只传递存在的键,改进get()行为
🔗 相关文档
- DEVELOPING_GUIDE.md - 详细开发指南
- examples/ - 示例工作流
🚀 快速体验 (Quick Start)
跟随以下步骤,快速体验 AgentOS2 的强大功能。
1. 配置模型
首先,您需要在项目根目录下创建一个文件夹 aos_config,并在其中创建一个 model_settings.json 文件。这是AgentOS2寻找模型配置的地方。
./aos_config/model_settings.json 内容示例:
{
"google-chat":{
"api_key":"YOUR_GEMINI_API_KEY",
"base_url":"",
"proxy":"",
"models":[
"gemini-2.5-flash"
]
}
}
提示: 请将
"YOUR_GEMINI_API_KEY"替换为您自己的API密钥。AgentOS2的内置示例默认使用gemini-2.5-flash模型,您也可以根据需要配置其他模型,例如lite-llm-chat或openai-chat。
2. 运行内置示例
项目自带了一个“故事生成”的示例,让您无需编写代码即可感受AgentOS2的流程编排能力。
创建一个Python文件(例如 run_example.py)并添加以下代码:
import asyncio
from agent_os2.examples.story_generate_example import start_story_generate
async def main():
# 故事生成示例的入口函数
# 你可以修改 user_input 来尝试不同的故事主题
user_input = "我想听一个关于一只勇敢的小猫去外太空探险的故事"
result = await start_story_generate(user_input)
print("流程执行完毕,最终结果:", result)
if __name__ == "__main__":
asyncio.run(main())
3. 查看可视化结果
运行 run_example.py 后,程序会自动在执行目录下的 memory/ 文件夹中生成一个带时间戳的子目录,例如 memory/statistics_20240730-103000。
进入该目录,找到并用浏览器打开 visualization.html 文件。您将看到一个交互式流程图,清晰地展示了“故事生成”工作流中每个Agent的执行顺序、输入输出和最终结果。
Project details
Release history Release notifications | RSS feed
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 agent_os2-1.2.5.tar.gz.
File metadata
- Download URL: agent_os2-1.2.5.tar.gz
- Upload date:
- Size: 105.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3682e3a6e3f6badca67afde5f386a86bb02541e4b512726a9fe4354e0d559b26
|
|
| MD5 |
c78931f0807bb2bd4c6404344b53c53f
|
|
| BLAKE2b-256 |
03ca1ae65350b29e62d1ab5e5146eaa4fec91e66c9ea89956bbee651dc746e2c
|
File details
Details for the file agent_os2-1.2.5-py3-none-any.whl.
File metadata
- Download URL: agent_os2-1.2.5-py3-none-any.whl
- Upload date:
- Size: 143.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcb86382acc75bcb0960a9769c9b34735c5a393ef046b140a0f739022ee04802
|
|
| MD5 |
21b6cd3558317f6f1ec519c5edcdfb4f
|
|
| BLAKE2b-256 |
c7a1388ea608f20178444e2a8832afac03f8bb1b13deb76ca06112a02882018c
|