项目文件结构调整,作品提交
基于 Go 构建的 AI 原生多智能体运行时系统,将操作系统进程调度概念映射到 AI Agent 领域。采用两级调度模型(Agent 进程 + Task 线程)、Linux cgroup v2 资源隔离和双层 DAG 编排,面向代码安全审计场景提供自动化多智能体协作流水线。演示视频下载地址:https://pan.baidu.com/s/1MAfq0PMsLWHXpmjpO9imEA?pwd=i4i8
┌──────────────────────────────────────────────────────────┐ │ CLI (Cobra) / HTTP API │ ├──────────────────────────────────────────────────────────┤ │ Runtime (顶层协调) │ ├──────┬──────┬──────┬──────┬──────┬──────┬──────┬────────┤ │Agent │ Task │ DAG │Sched-│Execu-│Resou-│AI │Context │ │Mgr │ Mgr │ Mgr │uler │tion │rce │Broker│Mgr │ ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼────────┤ │Comm │Fault │LLM │Tool │Mis- │Stor- │Redis │Observ- │ │Mgr │Mgr │Mgr │Mgr │sion │age │Store │ability │ ├──────┴──────┴──────┴──────┴──────┴──────┴──────┴────────┤ │ cgroup v2 资源隔离 / Redis 持久化 / OpenTelemetry │ └──────────────────────────────────────────────────────────┘
核心概念:
go build -o agentos ./cmd/runtime
设置 LLM API 密钥(默认连接阿里云 DashScope,模型 qwen-plus):
qwen-plus
export LLM_API_KEY=your_api_key # 可选:自定义端点和模型 export LLM_ENDPOINT=https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions export LLM_MODEL=qwen-plus
运行时配置位于 configs/runtime.yaml,可调整调度策略、资源总量、LLM 参数、安全策略等。
configs/runtime.yaml
./agentos serve # 默认监听 :8080 ./agentos serve --addr :9090 # 自定义端口
# 提交完整的代码安全审计 Mission ./agentos submit \ --repo https://github.com/org/repo \ --commit 8ac91ef \ --profile full \ --auto-patch \ --test \ --priority 8 # 审计配置模式:full / web-security / minimal / dependency ./agentos submit --repo <url> --commit <hash> --profile web-security
./agentos list # 列出所有 Agent ./agentos get <agent_id> # 查询 Agent 详情(含资源用量) ./agentos cancel <agent_id> # 取消 Agent ./agentos resource <agent_id> --cpu 400 # 动态调整 CPU 限制 ./agentos resource <agent_id> --memory 2048 # 动态调整内存限制(MB) ./agentos mission-status <mission_id> # 查询 Mission 进度 ./agentos --server http://remote:8080 list # 指定远程服务端
./agentos --debug # 绕过 CLI,直接启动 Runtime + HTTP Server,方便 IDE 断点调试
POST
/api/v1/missions
GET
/api/v1/missions/{id}/status
/api/v1/missions/{id}/pause
/api/v1/missions/{id}/resume
/api/v1/missions/{id}/retry
/api/v1/tasks
/api/v1/tasks/{id}/state
/api/v1/agents
/api/v1/agents/{id}
DELETE
/api/v1/agents/{id}/pause
/api/v1/agents/{id}/resume
/api/v1/agents/{id}/resource
/api/v1/stats
/metrics
AgentRuntime/ ├── cmd/runtime/ # 程序入口(CLI 路由 + Debug 模式) ├── configs/ │ ├── agents.json # Agent 注册表 + 工具定义 + 全局配置 │ └── runtime.yaml # 运行时统一配置(调度/资源/LLM/安全/上下文) ├── agents/ # 业务 Agent 实现 │ ├── sdk/ # Agent 开发工具包(接口/工厂/上下文/请求响应类型) │ ├── task_planner/ # 任务规划 Agent │ ├── code_quality/ # 代码质量 Agent │ ├── security_audit/ # 安全审计 Agent │ ├── dependency_audit/ # 依赖分析 Agent │ ├── test_exec/ # 测试执行 Agent │ ├── doc_check/ # 文档检查 Agent │ ├── patch_generator/ # 补丁生成 Agent │ ├── patch_review_code/ # 补丁审查 Agent │ ├── regression_test/ # 回归测试 Agent │ ├── integrate/ # 集成汇总 Agent │ └── security/ # 安全扫描 Agent ├── internal/ │ ├── agent/ # Agent/Task 核心逻辑、进程管理、能力注册 │ ├── ai_resource/ # AI 资源经纪(多模型路由/限流/熔断/预算管理) │ ├── cli/ # CLI 命令层(Cobra):serve/submit/list/get/cancel/resource │ ├── communication/ # Agent 间通信(Mailbox/EventBus/ArtifactRef/死信队列) │ ├── config/ # 运行时配置加载与分发 │ ├── contextManager/ # 三层上下文管理(Global/Shared/Private + 压缩/去重/缓存) │ ├── dag/ # 双层 DAG 依赖图(关键路径/动态事件/故障传播/快照) │ ├── execution/ # Agent 执行管线(四阶段流水线 + AgentRunner) │ ├── fault/ # 故障容错(检测/重试/检查点/熔断/补偿/恢复) │ ├── ipc/ # IPC 消息总线(预留模块) │ ├── llm/ # LLM 客户端(OpenAI 兼容/Prompt 构建/重试/管理器) │ ├── mission/ # Mission 生命周期管理(Spec/DAG/Budget/Policy/Result) │ ├── observability/ # 可观测性(结构化日志/OpenTelemetry 链路/Prometheus 指标) │ ├── redis_store/ # Redis 持久化存储 │ ├── register/ # Agent 注册表加载器 │ ├── resource/ # cgroup v2 资源管理(准入校验/租约/动态调整) │ ├── runtime/ # 顶层运行时(12+ 管理器协调、Mission/Agent/Task 桥接) │ ├── scheduler/ # 两级调度器(优先级队列 + 资源感知打分 + 事件驱动) │ ├── server/ # HTTP REST API 服务 │ ├── storage/ # 制品存储管理 │ ├── task/ # Task 状态机与生命周期管理 │ └── tool/ # 工具管理器(注册/权限/沙箱/并发控/健康/审计/校验) └── web-security/ # 安全审计报告样例
预定义的 11 个 Agent 形成如下执行拓扑:
task_planner_agent (任务规划) ├── code_quality_agent (代码质量) ├── security_audit_agent (安全审计) ├── dependency_analyze_agent (依赖分析) ├── test_exec_agent (测试执行) ├── doc_check_agent (文档检查) └── security_agent (安全扫描) └── patch_generator_agent (补丁生成) ← 依赖上述扫描 Agent └── patch_review_code_agent (补丁审查) └── patch_regression_test_agent (回归测试) └── integrate_agent (集成汇总)
Agent 配置文件位于 configs/agents.json,每个 Agent 支持自定义:
configs/agents.json
priority
critical
high
medium
low
resource_tag
light
heavy
depend_on
tools
capabilities
role_prompt
timeout
output_artifact
agents/sdk 包提供 Agent 开发工具包,定义统一的开发契约:
agents/sdk
// Agent 接口 — 所有业务 Agent 必须实现 type Agent interface { Type() string Metadata() AgentMetadata Plan(ctx Context, req AgentRequest) (*AgentPlan, error) HandleResult(ctx Context, result TaskResult) (*AgentReaction, error) } // AgentFactory 接口 — 工厂模式创建 Agent 实例 type AgentFactory interface { Create(deps AgentDependencies) (Agent, error) }
新增 Agent 只需实现上述接口并在 agents/<your_agent>/agent.go 中提供 Register 函数,然后在 configs/agents.json 中声明配置即可。
agents/<your_agent>/agent.go
Register
两级优先级调度,Agent 间和 Agent 内 Task 各自维护优先级队列。支持资源感知打分(EMA 指数移动平均预测)、优先级老化防饥饿、公平信用补偿和高优先级抢占。调度策略可通过 runtime.yaml 配置(resource_priority / fairness / fifo)。
runtime.yaml
resource_priority
fairness
fifo
基于 Linux cgroup v2 实现 Agent 级真实资源隔离(CPU/内存/PID 硬限制),Task 级按权重虚拟分摊。支持运行时动态调整资源限额、准入校验(资源不足时拒绝新 Agent)和 OOM 事件检测。
管理多个 LLM 模型实例的生命周期:健康检查、负载均衡路由、Token 预算管理、请求限流与熔断。支持云端模型和本地 GPU 模型。
完整的故障处理链路:故障检测(Agent 崩溃/Task 超时/LLM 超时/工具失败/心跳丢失/cgroup OOM)→ 重试控制 → 检查点恢复 → 熔断器 → 故障传播控制 → 补偿管理。
三种通信机制支持 Agent 间高效协作:Mailbox(点对点消息)、EventBus(事件广播)、ArtifactRef(大对象引用传递)。内置消息 ID、ACK 确认、重试、TTL、背压、幂等处理和死信队列。
log/slog
Internal use only.
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
AgentOS Runtime
基于 Go 构建的 AI 原生多智能体运行时系统,将操作系统进程调度概念映射到 AI Agent 领域。采用两级调度模型(Agent 进程 + Task 线程)、Linux cgroup v2 资源隔离和双层 DAG 编排,面向代码安全审计场景提供自动化多智能体协作流水线。演示视频下载地址:https://pan.baidu.com/s/1MAfq0PMsLWHXpmjpO9imEA?pwd=i4i8
架构概览
核心概念:
特性
快速开始
环境要求
构建
配置
设置 LLM API 密钥(默认连接阿里云 DashScope,模型
qwen-plus):运行时配置位于
configs/runtime.yaml,可调整调度策略、资源总量、LLM 参数、安全策略等。启动服务
提交审计任务
管理命令
调试模式
HTTP API
POST/api/v1/missionsGET/api/v1/missions/{id}/statusPOST/api/v1/missions/{id}/pausePOST/api/v1/missions/{id}/resumePOST/api/v1/missions/{id}/retryPOST/api/v1/tasksPOST/api/v1/tasks/{id}/statePOST/api/v1/agentsGET/api/v1/agentsGET/api/v1/agents/{id}DELETE/api/v1/agents/{id}POST/api/v1/agents/{id}/pausePOST/api/v1/agents/{id}/resumePOST/api/v1/agents/{id}/resourceGET/api/v1/statsGET/metrics项目结构
Agent 流水线
预定义的 11 个 Agent 形成如下执行拓扑:
Agent 配置文件位于
configs/agents.json,每个 Agent 支持自定义:prioritycritical/high/medium/lowresource_taglight/medium/heavydepend_ontoolscapabilitiesrole_prompttimeoutoutput_artifactAgent SDK
agents/sdk包提供 Agent 开发工具包,定义统一的开发契约:新增 Agent 只需实现上述接口并在
agents/<your_agent>/agent.go中提供Register函数,然后在configs/agents.json中声明配置即可。核心子系统
调度器
两级优先级调度,Agent 间和 Agent 内 Task 各自维护优先级队列。支持资源感知打分(EMA 指数移动平均预测)、优先级老化防饥饿、公平信用补偿和高优先级抢占。调度策略可通过
runtime.yaml配置(resource_priority/fairness/fifo)。资源管理
基于 Linux cgroup v2 实现 Agent 级真实资源隔离(CPU/内存/PID 硬限制),Task 级按权重虚拟分摊。支持运行时动态调整资源限额、准入校验(资源不足时拒绝新 Agent)和 OOM 事件检测。
AI 资源经纪
管理多个 LLM 模型实例的生命周期:健康检查、负载均衡路由、Token 预算管理、请求限流与熔断。支持云端模型和本地 GPU 模型。
故障容错
完整的故障处理链路:故障检测(Agent 崩溃/Task 超时/LLM 超时/工具失败/心跳丢失/cgroup OOM)→ 重试控制 → 检查点恢复 → 熔断器 → 故障传播控制 → 补偿管理。
通信管理
三种通信机制支持 Agent 间高效协作:Mailbox(点对点消息)、EventBus(事件广播)、ArtifactRef(大对象引用传递)。内置消息 ID、ACK 确认、重试、TTL、背压、幂等处理和死信队列。
可观测性
log/slog的结构化日志/metrics端点,暴露 Agent 创建/完成/失败等计数License
Internal use only.