Token导航 LogoToken导航TokenDH.com
omnigent (Francesco Stabile) logo
AI代理stdio官方级别未说明来源级核验

omnigent (Francesco Stabile)

MCP Server

Omnigent是一个生产级自主AI代理框架,提供领域无关的智能架构,包括ReAct循环、多提供商LLM路由、结构化记忆、分层规划、推理图和插件系统,适用于安全、代码分析、DevOps、合规和研究等多种领域。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
AI代理Python工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

FrancescoStabile

提供方

FrancescoStabile

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

全能型

构建自主AI代理的通用支架。

在经过生产验证的基础上构建任何人工智能代理——安全、代码分析、DevOps、合规性、研究。从具有17k+LOC和320个测试的真实世界代理中提取。

![Python 3.11+](https://www.python.org/downloads/) ![Tests](#testing) ![License: MIT](LICENSE) ![Code style: ruff](https://github.com/astral-sh/ruff)

建筑 · 例子 · 贡献

______________________________________________________________________

什么是Omnigent?

大多数AI代理框架都为您提供了LLM API的包装器。Omnigent为您提供 整个大脑.

这是生产自主代理的领域无关架构——ReAct循环、多提供商LLM路由、结构化内存、分层规划、推理图、错误恢复、反射和插件系统。你需要建立一个 真实的 代理,而不是带有工具的聊天机器人。

你带来了域名。全能者带来智慧。

┌──────────────────────────────────────────────────────┐
│                   Agent Loop (ReAct)                 │
│         Reason → Act → Observe → Reflect             │
├──────────────┬────────────┬────────────┬─────────────┤
│   Router     │  Planner   │  Context   │   Graph     │
│  4 Providers │  Phases    │  Smart Trim│  Reasoning  │
├──────────────┴────────────┴────────────┴─────────────┤
│            Post-Processing Pipeline                  │
│    Extractors → Reflection → Error Recovery          │
├──────────────────────────────────────────────────────┤
│            Tool Registry + Plugin System             │
├──────────────────────────────────────────────────────┤
│  State │ DomainProfile │ Session │ Cost │ Knowledge  │
├──────────────────────────────────────────────────────┤
│          Config │ Logging │ MCP Integration          │
└──────────────────────────────────────────────────────┘

为什么是Omnigent?

问题全能解决方案
永远循环的代理人断路器 + 环路检测 (基于哈希,块在第一次重复时)+ 速率限制 (每次迭代和总上限)
上下文窗口溢出三级智能修剪 保留原子消息组+ 语义压缩 通过LLM
“只是一个工具调用者”推理图 将发现链接到多步升级路径中
无方法论分层规划器 具有基于阶段的执行、LLM细化、跳过条件和 宏观反映 阶段结束时
盲目执行工具提取器 自动解析结果→ 结构化存储器异步反射
失败会使代理崩溃错误恢复模式 具有重试策略和优雅降级
供应商锁定4名法学硕士提供者 基于任务的路由和自动回退+ 可扩展提供者ABC
没有人为监督循环中的人类 敏感工具调用的审批步骤
崩溃时失去进展检查点/回放 执行中期,会话恢复
不受信任的插件插件严格校验和 SHA-256验证模式
从零开始生产证明 --从真实的代理中提取,而不是在周末构建

快速开始

安装

pip install -e .

设置API密钥

export DEEPSEEK_API_KEY="sk-..."  # Cheapest option (~$0.001 per analysis)
# or
export ANTHROPIC_API_KEY="sk-ant-..."
# or
export OPENAI_API_KEY="sk-..."

运行示例代理

# CodeLens — code quality analyzer (included example)
python -m examples.codelens.main /path/to/any/project

通过4个步骤构建自己的代理

步骤1:定义域内存

from dataclasses import dataclass, field
from omnigent.domain_profile import DomainProfile

@dataclass
class MyProfile(DomainProfile):
    items_analyzed: list[str] = field(default_factory=list)
    risk_score: float = 0.0

第二步:注册您的工具

from omnigent.tools import ToolRegistry

registry = ToolRegistry()
registry.register(
    name="my_scanner",
    schema={"description": "Scan a target", "parameters": {
        "type": "object",
        "properties": {"target": {"type": "string"}},
        "required": ["target"],
    }},
    handler=my_scanner_function,
)

步骤3:填充注册表 (计划模板、链、提取器、反射器、错误模式)

from omnigent.registry import DomainRegistry
from omnigent.chains import ChainStep

registry = DomainRegistry(
    plan_templates={
        "my_domain": [
            {"name": "Discovery", "objective": "Map the target", "steps": [
                ("Initial scan", "my_scanner"),
            ]},
        ],
    },
    chains={
        "high_risk": [
            ChainStep("Deep dive on flagged items", "deep_scanner"),
            ChainStep("Generate remediation plan", ""),
        ],
    },
    extractors={
        "my_scanner": lambda profile, result, args: setattr(
            profile, 'risk_score', 0.8
        ),
    },
)

第四步:将其连接并运行

import asyncio
from omnigent.agent import Agent
from omnigent.router import LLMRouter, Provider

async def main():
    agent = Agent(
        router=LLMRouter(primary=Provider.DEEPSEEK),
        tools=tool_registry,
        registry=registry,  # DomainRegistry with all domain-specific behavior
    )
    async for event in agent.run("Analyze this target"):
        if event.type == "text":
            print(event.content, end="")
        elif event.type == "finding":
            print(f"\n[{event.finding.severity}] {event.finding.title}")

asyncio.run(main())

你能建造什么?

Omnigent是 领域无关 --它提供了智能架构,你提供了领域知识:

域名您添加了什么Omnigent提供了什么
安全Nmap、SQLMap、Burp工具+漏洞知识ReAct循环、攻击链推理、会话持久性
代码质量AST解析器、复杂性工具+重构模式规划、结构化发现、升级链
开发运维K8s、Terraform、监控工具+运行手册错误恢复、多步骤事件链、成本跟踪
合规文档扫描仪、政策工具+法规知识库假设跟踪、证据收集、报告
研究搜索、抓取、数据库工具+领域本体上下文管理、迭代细化、反思

示例/代码镜头/ 以实现完整的工作实施。

组件

模块目的如何自定义
agent.pyReAct回路、断路器、回路检测、速率限制、批准子类 Agent,覆盖步骤方法和钩子
注册表.py集中化 DomainRegistry 所有域特定注册表的数据类通过 DomainRegistry(...)Agent
router.py多提供商LLM路由 LLMProvider ABC和扩展思维子类 LLMProvider 对于新供应商
reasoning_graph.py多步推理链的有向图子类 ReasoningGraph
planner.py具有跳过条件和宏观反映的分层任务规划填充 plan_templatesDomainRegistry
context.py智能上下文修剪+基于LLM的语义压缩按原样工作
domain_profile.py有界假设跟踪的结构化记忆子类 DomainProfile
state.py具有Pydantic验证结果的代理状态enrich_fn 钩子
提取器.py将工具结果自动解析到DomainProfile填充 extractorsDomainRegistry
反射py每次工具调用后异步战略洞察填充 reflectorsDomainRegistry
error_recovery.py模式匹配的恢复指导填充 error_patternsDomainRegistry
chains.py已确认发现的升级链普及 chainsDomainRegistry
知识阅读器.py使用预算进行部门级知识检索填充 knowledge_mapDomainRegistry
few_shot_examples.py提高准确性的工具使用示例填充 examplesDomainRegistry
plugins.py具有严格校验和模式的文件系统插件发现插入 ~/.omnigent/plugins/
会话.py会话持久化、恢复、导出、检查点/回放按原样工作
cost_trackr.py按提供商、按任务进行成本跟踪按原样运行
config.pyYAML+.env+env配置加载按原样工作
工具/具有范围检查和模式缓存的工具注册表注册域工具

关键设计模式

数据驱动注册表(核心零域代码)

所有领域特定的行为都存在于一个注射中 DomainRegistry 数据类。您的代理在启动时填充它:

from omnigent.registry import DomainRegistry

registry = DomainRegistry(
    plan_templates={...},   # Task plan templates
    chains={...},           # Escalation chains
    extractors={...},       # Tool result parsers
    reflectors={...},       # Post-tool strategic analysis
    error_patterns={...},   # Failure recovery patterns
    knowledge_map={...},    # Knowledge file routing
    examples={...},         # Few-shot tool examples
    tool_timeouts={...},    # Per-tool timeouts
)

agent = Agent(registry=registry)

多个代理可以使用独立的注册表运行——没有全局状态泄漏。为了向后兼容性, DomainRegistry.default() 读取模块级字典。

复杂域的子类

对于不能表示为数据的行为,重写方法:

class MyAgent(Agent):
    # Domain hooks
    def _is_failure(self, tool_name, result): ...
    def _extract_finding(self, text): ...
    def _build_dynamic_system_prompt(self): ...

    # Overridable step methods (decomposed agent loop)
    def _do_context_management(self): ...
    async def _do_llm_call(self, system_prompt): ...
    async def _do_tool_execution(self, tool_calls): ...
    async def _do_post_tool_processing(self, tc, result): ...
    def _check_termination(self, text_buffer): ...

class MyGraph(ReasoningGraph):
    def _build_default_graph(self): ...

class MyProfile(DomainProfile):
    def to_prompt_summary(self): ...

推理图(微分器)

Omnigent与简单工具调用者的区别在于:当发现得到确认时,推理图会激活下游升级路径。代理人不仅发现问题 将它们束缚在多步骤推理中.

Security:    SQLi → DB Dump → Credential Extraction → Admin Access → RCE
Code:        God Object → High Coupling → Low Testability → Regression Risk
Incident:    Alert → Log Correlation → Root Cause → Blast Radius
Compliance:  Gap Found → Control Missing → Risk Assessment → Remediation

测试

# Run all tests
pytest

# Run with coverage
pytest --cov=omnigent --cov-report=term-missing

# Run specific module tests
pytest tests/test_reasoning_graph.py -v

# Run only unit tests
pytest -m unit

325项测试涵盖所有核心组件。每个测试都在没有LLM调用或网络访问的情况下运行。

项目结构

omnigent/
├── src/omnigent/         # Core framework
│   ├── agent.py           # The ReAct loop (1024 lines)
│   ├── registry.py        # DomainRegistry dataclass (97 lines)
│   ├── router.py          # Multi-provider LLM routing + LLMProvider ABC (700 lines)
│   ├── reasoning_graph.py # Chain reasoning engine (389 lines)
│   ├── planner.py         # Hierarchical task planner + macro-reflection (544 lines)
│   ├── context.py         # Smart context + semantic compression (358 lines)
│   ├── state.py           # State + Pydantic findings
│   ├── domain_profile.py  # Structured agent memory (bounded summaries)
│   ├── extractors.py      # Result parsing pipeline
│   ├── reflection.py      # Async post-tool strategic analysis
│   ├── error_recovery.py  # Failure recovery engine
│   ├── chains.py          # Escalation chain registry
│   ├── knowledge_loader.py # Knowledge base retrieval
│   ├── few_shot_examples.py # Tool usage examples
│   ├── plugins.py         # Plugin system + strict checksum mode (556 lines)
│   ├── session.py         # Session persistence + checkpoint/replay (546 lines)
│   ├── cost_tracker.py    # Cost tracking
│   ├── config.py          # Configuration management
│   ├── logging_config.py  # Structured JSON logging
│   ├── prompts/system.md  # Base system prompt
│   └── tools/             # Tool registry + schema caching (309 lines)
├── examples/codelens/     # Complete working example agent
├── tests/                 # 325 tests
├── ARCHITECTURE.md        # Deep technical architecture doc
├── CONTRIBUTING.md        # Contribution guide
└── CHANGELOG.md           # Version history

起源

Omnigent提取自 NumaSec,生产自主安全代理(17878 LOC,320测试)。

由...建造 弗朗切斯科·斯塔比尔

![LinkedIn](https://www.linkedin.com/in/francesco-stabile-dev) ![X](https://x.com/Francesco_Sta)

许可证

麻省理工学院 --把它用于任何事情。

贡献

贡献.md。我们欢迎域实现、错误修复和文档改进。

目录标签

目录标签

AI代理Python工作流自动化本地部署生产级框架多领域应用智能架构插件系统

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP