Skip to main content

面向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()行为

🔗 相关文档

🚀 快速体验 (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-chatopenai-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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agent_os2-1.2.4.post1.tar.gz (105.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_os2-1.2.4.post1-py3-none-any.whl (142.8 kB view details)

Uploaded Python 3

File details

Details for the file agent_os2-1.2.4.post1.tar.gz.

File metadata

  • Download URL: agent_os2-1.2.4.post1.tar.gz
  • Upload date:
  • Size: 105.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for agent_os2-1.2.4.post1.tar.gz
Algorithm Hash digest
SHA256 a5f03021e0071643bc9ad498943c942b7a37883ddcf9ec39d3d5ef7500bf8773
MD5 2f7f4722796578d1e5ab058c484465b2
BLAKE2b-256 dba47262707277e39b1c9abf8e93d770791357615f29b62662779825bf66c610

See more details on using hashes here.

File details

Details for the file agent_os2-1.2.4.post1-py3-none-any.whl.

File metadata

  • Download URL: agent_os2-1.2.4.post1-py3-none-any.whl
  • Upload date:
  • Size: 142.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for agent_os2-1.2.4.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 112f25b36b3252d4f9cc0d4c94e202989058743e3fdb8a0ab933cd113a975bd9
MD5 ca6c7a7afea8a5ddec98cf7ed88b4ffc
BLAKE2b-256 68d6e7ee28fc04d0a368929a876bdd48d60bf74a158397f3d3b9fa54961254c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page