通用 Agent 框架,以严格类型安全和模块化工具系统为核心,支持 YAML 声明式配置、多 Agent 协作与外部工具暂停恢复机制。
NexAU(Agent Universe)是由 nex-agi 组织开发的通用 Agent 框架,使用 Python 编写(要求 3.12+),采用 Apache-2.0 许可证。项目以严格的类型安全文化(mypy + pyright 双重检查,零容忍 Any 和 type: ignore)和模块化架构为鲜明特征。
核心设计围绕工具系统展开:工具通过 YAML 声明 schema 并通过 binding 绑定 Python 实现,实现定义与解耦。内置文件操作、Web 搜索(Serper)、Shell 执行、目录浏览、Todo 管理等工具,同时支持 MCP 协议连接外部服务。独特的外部工具机制(kind: external)允许 Agent 循环暂停并将 pending call 返回给调用方执行后恢复,使 IDE 插件等外部系统能够驱动 Agent 工作流。
Agent 架构支持主-子 Agent 模式和 Agent Team 多 Agent 协作,可通过纯 Python API 或 YAML 声明式配置定义,后者可一行 CLI 命令启动。中间件/Hooks 管道支持对 Agent 行为的拦截与修改(预处理、缓存、日志、Provider 切换)。系统提示词支持 Jinja2 模板渲染,Skills 系统兼容 Claude Skills 格式可动态注入上下文。可观测性方面内置 Langfuse Tracer 适配器。会话管理(实验性)提供 SQL、JSONL、Memory、Remote 等可插拔存储后端。传输系统(实验性)已实现 HTTP/SSE 和 stdio。
项目采用 RFC 驱动开发流程,当前版本 v0.4.1(12 个 releases,413 commits)。典型应用场景包括代码生成 Agent、IDE 插件集成、多 Agent 团队协作等。
架构概览#
nexau/
├── archs/
│ ├── config/ # 配置模块
│ ├── llm/ # LLM 聚合器(事件流、Provider)
│ ├── main_sub/ # Agent 系统(容器、执行器、中间件)
│ ├── sandbox/ # 沙箱执行
│ ├── session/ # 会话管理(ORM、存储库、历史持久化)
│ ├── tool/ # 工具系统(定义、执行、绑定)
│ │ └── builtin/ # 内置工具
│ ├── tracer/ # 追踪系统
│ │ └── adapters/langfuse/ # Langfuse 适配器
│ └── transports/ # 传输系统
├── cli/ # 命令行工具
├── core/ # 核心模块
└── __init__.py # 导出 Agent, AgentConfig 等
安装与快速开始#
# 从 GitHub Release 安装
pip install git+ssh://git@github.com/nex-agi/NexAU.git@v0.4.1
# 从源码安装
git clone git@github.com:nex-agi/NexAU.git
cd NexAU
pip install uv
uv sync
配置 .env 文件后运行:
dotenv run uv run examples/code_agent/start.py
# 或使用 CLI
./run-agent examples/code_agent/code_agent.yaml
Python API 示例#
from nexau import Agent, AgentConfig, LLMConfig, Skill, Tool
agent_config = AgentConfig(
name="my_agent",
max_context_tokens=100000,
system_prompt="path/to/prompt.md",
system_prompt_type="jinja",
tool_call_mode="structured",
llm_config=LLMConfig(
temperature=0.7,
max_tokens=4096,
model="your-model",
base_url="your-base-url",
api_key="your-api-key",
api_type="openai_chat_completion",
),
tools=tools,
skills=skills,
middlewares=[...],
tracers=[...],
)
agent = Agent(config=agent_config)
agent.run("your task", context={...})
待确认信息#
- 完整 LLM Provider 清单(已知支持 OpenAI 兼容 API 和 Claude)
- MCP 集成具体实现细节
- 会话存储后端的数据库支持(SQL 后端具体数据库类型)
- WebSocket/gRPC 传输当前实现状态
- 沙箱执行的具体实现方式
- Web 搜索后端可替换性(当前仅 Serper)