zeptoclaw 仓库综合概述
1. 仓库目的
zeptoclaw 是一个生产级的多代理 AI 系统框架,专注于提供安全、可观测、可扩展的代理编排能力。它的核心目标是为开发者构建企业级代理应用提供完整的基础设施:
- 代理编排:提供完整的代理运行时、上下文管理和工具执行循环
- 多提供商抽象:统一的 LLM 提供商接口,支持重试、回退、熔断、负载均衡等企业级特性
- 安全第一:内置工具审批、路径隔离、运行时沙箱、秘密检测等多层安全机制
- 可观测性:内置健康检查、指标收集、成本追踪、SLO 监控等运维能力
- 可扩展性:提供插件系统、自定义工具、自定义提供商等扩展点
- 多渠道接入:支持 Webhook、Telegram、Slack、Discord 等多种消息渠道
2. 端到端架构可视化
2.1 整体系统架构
graph TB
subgraph "用户接入层"
CLI[cli_surface
src/cli] Channels[channels_and_message_bus
src/channels & src/bus] end subgraph "代理核心层" AgentCore[agent_core
src/agent] Tooling[tooling_framework
src/tools] SessionMemory[session_and_memory
src/session & src/memory] end subgraph "提供商与适配层" ProviderCore[provider_core
src/providers] ProviderImpls[provider_implementations
src/providers/openai/claude/gemini] end subgraph "安全与隔离层" Safety[ safety_and_security
src/safety & src/security] Runtime[ runtime_and_isolation
src/runtime & src/gateway/container_agent] end subgraph "配置与运维层" Config[ configuration
src/config] Ops[ service_resilience_and_ops
src/gateway & src/health & src/utils] Plugins[ plugin_and_extension_system
src/plugins] end CLI --> AgentCore Channels --> AgentCore AgentCore --> Tooling AgentCore --> SessionMemory AgentCore --> ProviderCore ProviderCore --> ProviderImpls Tooling --> Safety Tooling --> Runtime AgentCore --> Safety Config --> AgentCore Config --> ProviderCore Config --> Tooling Config --> Safety Ops --> AgentCore Ops --> ProviderCore Plugins --> Tooling Plugins --> Channels
src/cli] Channels[channels_and_message_bus
src/channels & src/bus] end subgraph "代理核心层" AgentCore[agent_core
src/agent] Tooling[tooling_framework
src/tools] SessionMemory[session_and_memory
src/session & src/memory] end subgraph "提供商与适配层" ProviderCore[provider_core
src/providers] ProviderImpls[provider_implementations
src/providers/openai/claude/gemini] end subgraph "安全与隔离层" Safety[ safety_and_security
src/safety & src/security] Runtime[ runtime_and_isolation
src/runtime & src/gateway/container_agent] end subgraph "配置与运维层" Config[ configuration
src/config] Ops[ service_resilience_and_ops
src/gateway & src/health & src/utils] Plugins[ plugin_and_extension_system
src/plugins] end CLI --> AgentCore Channels --> AgentCore AgentCore --> Tooling AgentCore --> SessionMemory AgentCore --> ProviderCore ProviderCore --> ProviderImpls Tooling --> Safety Tooling --> Runtime AgentCore --> Safety Config --> AgentCore Config --> ProviderCore Config --> Tooling Config --> Safety Ops --> AgentCore Ops --> ProviderCore Plugins --> Tooling Plugins --> Channels
2.2 代理运行时主循环
sequenceDiagram
participant User as 用户/渠道
participant Agent as ZeptoAgent
participant Loop as AgentLoop
participant Scratchpad as SwarmScratchpad
participant Context as RuntimeContext
participant Provider as ModelProvider
participant Tools as ToolRegistry
participant Safety as SafetyLayer
User->>Agent: 发送请求
Agent->>Context: 构建运行时上下文
Agent->>Loop: 启动代理循环
loop 代理循环
Loop->>Scratchpad: 读取当前状态
Loop->>Context: 获取 TokenBudget
Loop->>Provider: 发送 LLM 请求
Provider->>Safety: 内容安全检查
Safety-->>Provider: 安全结果
Provider-->>Loop: LLMResponse (含 LLMToolCall)
alt 包含工具调用
Loop->>Tools: 解析并选择工具
Tools->>Safety: 工具调用安全检查
Tools->>Scratchpad: 写入 ToolFeedback
Loop->>Scratchpad: 更新状态
else 无工具调用/结束
Loop->>Agent: 返回最终结果
end
end
Agent-->>User: 返回响应
2.3 提供商弹性层架构
graph TB
subgraph "提供商弹性层"
Registry[ProviderSpec & RuntimeProviderSelection]
Retry[RetryProvider]
Fallback[FallbackProvider + CircuitBreaker]
Rotation[RotationProvider + ProviderHealth]
Cooldown[CooldownTracker]
end
subgraph "具体提供商实现"
OpenAI[OpenAIProvider]
Claude[ClaudeProvider]
Gemini[GeminiProvider]
Plugin[ProviderPlugin]
end
Registry --> Retry
Retry --> Fallback
Fallback --> Rotation
Rotation --> Cooldown
Cooldown --> OpenAI
Cooldown --> Claude
Cooldown --> Gemini
Cooldown --> Plugin
3. 核心模块文档索引
3.1 agent_core - 代理核心模块
| 组件路径 | 说明 |
|---|---|
src.agent.facade.ZeptoAgent |
代理的主要对外接口 |
src.agent.facade.ZeptoAgentBuilder |
代理的构建器,用于流式配置代理 |
src.agent.loop.AgentLoop |
代理的主运行循环,负责协调 LLM 调用与工具执行 |
src.agent.loop.ToolFeedback |
工具执行结果的反馈结构 |
src.agent.scratchpad.SwarmScratchpad |
代理运行时的状态暂存区 |
src.agent.context.RuntimeContext |
代理的运行时上下文,包含预算、配置等信息 |
src.agent.context.ContextBuilder |
运行时上下文的构建器 |
src.agent.budget.TokenBudget |
Token 预算管理,用于控制代理的 Token 消耗 |
src.agent.context_monitor.ContextMonitor |
上下文监控器,用于跟踪上下文使用情况 |
3.2 provider_core 与 provider_implementations - 提供商模块
| 组件路径 | 说明 |
|---|---|
| 核心类型 | |
src.providers.types.ToolDefinition |
工具定义的统一结构 |
src.providers.types.LLMResponse |
LLM 响应的统一结构 |
src.providers.types.LLMToolCall |
LLM 工具调用的统一结构 |
src.providers.types.Usage |
Token 使用量结构 |
src.providers.types.ChatOptions |
聊天选项配置 |
| 弹性与注册 | |
src.providers.registry.ProviderSpec |
提供商规格定义 |
src.providers.registry.RuntimeProviderSelection |
运行时提供商选择器 |
src.providers.retry.RetryProvider |
重试装饰器提供商 |
src.providers.fallback.FallbackProvider |
回退装饰器提供商 |
src.providers.fallback.CircuitBreaker |
熔断器实现 |
src.providers.rotation.RotationProvider |
负载均衡/轮转装饰器提供商 |
src.providers.rotation.ProviderHealth |
提供商健康状态 |
src.providers.cooldown.CooldownTracker |
冷却时间追踪器 |
| 具体实现 | |
src.providers.openai.OpenAIProvider |
OpenAI 提供商实现 |
src.providers.claude.ClaudeProvider |
Claude 提供商实现 |
src.providers.gemini.GeminiProvider |
Gemini 提供商实现 |
src.providers.plugin.ProviderPlugin |
插件化提供商接口 |
3.3 tooling_framework - 工具框架模块
| 组件路径 | 说明 |
|---|---|
| 核心 | |
src.tools.registry.ToolRegistry |
工具注册中心 |
src.tools.types.ToolContext |
工具执行上下文 |
src.tools.types.ToolOutput |
工具输出结构 |
| 内置工具 | |
src.tools.mod.EchoTool |
回显工具 |
src.tools.custom.CustomTool |
自定义工具基类 |
src.tools.delegate.DelegateTool |
委托工具 |
src.tools.composed.ComposedTool |
组合工具 |
| 安全与审批 | |
src.tools.approval.ApprovalGate |
审批门控 |
src.tools.approval.ApprovalConfig |
审批配置 |
| 实用工具 | |
src.tools.filesystem.* |
文件系统工具(读/写/编辑/列目录) |
src.tools.shell.ShellTool |
Shell 执行工具 |
src.tools.http_request.HttpRequestTool |
HTTP 请求工具 |
src.tools.web.WebFetchTool / WebSearchTool |
Web 抓取/搜索工具 |
src.tools.mcp.client.McpClient |
MCP (Model Context Protocol) 客户端 |
| 插件化 | |
src.tools.plugin.PluginTool |
插件工具 |
src.tools.binary_plugin.BinaryPluginTool |
二进制插件工具 |
3.4 configuration - 配置模块
| 组件路径 | 说明 |
|---|---|
src.config.types.ProjectConfig |
项目级配置 |
src.config.types.RuntimeConfig |
运行时配置 |
src.config.types.AgentConfig / AgentDefaults |
代理配置与默认值 |
src.config.types.ProvidersConfig / ProviderConfig |
提供商配置 |
src.config.types.ToolsConfig / MemoryConfig / LoggingConfig |
工具、内存、日志等配置 |
src.config.types.RetryConfig / RotationConfig / FallbackConfig |
弹性配置 |
src.config.validate.Diagnostic |
配置诊断工具 |
src.config.templates.AgentTemplate / TemplateRegistry |
代理模板与模板注册 |
3.5 session_and_memory - 会话与记忆模块
| 组件路径 | 说明 |
|---|---|
| 会话 | |
src.session.mod.SessionManager |
会话管理器 |
src.session.history.ConversationHistory |
会话历史 |
src.session.types.Message / ToolCall |
消息与工具调用类型 |
| 记忆 | |
src.memory.longterm.LongTermMemory |
长期记忆 |
src.memory.builtin_searcher.BuiltinSearcher |
内置搜索器 |
src.memory.bm25_searcher.Bm25Searcher |
BM25 搜索器 |
src.memory.embedding_searcher.EmbeddingSearcher |
向量嵌入搜索器 |
src.memory.hygiene.HygieneConfig / HygieneReport |
记忆卫生配置与报告 |
3.6 channels_and_message_bus - 渠道与消息总线模块
| 组件路径 | 说明 |
|---|---|
| 消息总线 | |
src.bus.mod.MessageBus |
消息总线核心 |
src.bus.message.InboundMessage / OutboundMessage |
入站/出站消息 |
| 渠道管理 | |
src.channels.manager.ChannelManager |
渠道管理器 |
| 具体渠道 | |
src.channels.webhook.WebhookChannel |
Webhook 渠道 |
src.channels.telegram.TelegramChannel |
Telegram 渠道 |
src.channels.slack.SlackChannel |
Slack 渠道 |
src.channels.discord.DiscordChannel |
Discord 渠道 |
3.7 runtime_and_isolation - 运行时与隔离模块
| 组件路径 | 说明 |
|---|---|
src.runtime.native.NativeRuntime |
原生运行时(无隔离) |
src.runtime.docker.DockerRuntime |
Docker 容器运行时 |
src.runtime.firejail.FirejailRuntime |
Firejail 沙箱运行时 |
src.runtime.bubblewrap.BubblewrapRuntime |
Bubblewrap 沙箱运行时 |
src.runtime.landlock.LandlockRuntime |
Landlock 安全模块运行时 |
src.gateway.container_agent.ContainerAgentProxy |
容器代理代理 |
3.8 safety_and_security - 安全与安保模块
| 组件路径 | 说明 |
|---|---|
| 内容安全 | |
src.safety.mod.SafetyLayer |
安全层核心 |
src.safety.policy.PolicyEngine |
策略引擎 |
src.safety.validator.ContentValidator |
内容验证器 |
src.safety.leak_detector.LeakDetector |
秘密泄漏检测器 |
| 路径与权限 | |
src.security.path.SafePath |
安全路径封装 |
src.security.shell.ShellSecurityConfig |
Shell 安全配置 |
src.security.mount.MountAllowlist |
挂载白名单 |
src.security.agent_mode.AgentModeConfig |
代理模式配置 |
| 加密 | |
src.security.encryption.SecretEncryption |
秘密加密 |
3.9 service_resilience_and_ops - 服务弹性与运维模块
| 组件路径 | 说明 |
|---|---|
| 网关 | |
src.gateway.rate_limit.GatewayRateLimiter |
网关限流器 |
src.gateway.idempotency.IdempotencyStore |
幂等性存储 |
src.gateway.startup_guard.StartupGuard |
启动防护 |
| 健康与指标 | |
src.health.HealthCheck / HealthRegistry |
健康检查 |
src.utils.metrics.MetricsCollector |
指标收集器 |
src.utils.cost.CostTracker |
成本追踪器 |
src.utils.slo.SessionSLO |
会话 SLO 监控 |
3.10 plugin_and_extension_system - 插件与扩展系统模块
| 组件路径 | 说明 |
|---|---|
src.plugins.types.Plugin |
插件基类 |
src.plugins.types.PluginManifest |
插件清单 |
src.plugins.registry.PluginRegistry |
插件注册中心 |
src.plugins.watcher.PluginWatcher |
插件监听器 |
3.11 cli_surface - 命令行界面模块
| 组件路径 | 说明 |
|---|---|
src.cli.mod.Cli |
命令行主入口 |
src.cli.daemon.DaemonState |
守护进程状态 |
src.cli.doctor.DiagItem |
诊断项 |