本文档由 g2rain-agent-runtime 的 README.md 自动同步生成。

G2Rain

# g2rain-agent-runtime

下一代AI软件开发范式,AI原生Agent平台,开源的企业级SaaS底座。

谷雨 Agent 的运行时执行服务。它把 Agent 配置、用户输入、模型能力和工具能力组织为可追踪、可恢复的任务执行过程,并通过 SSE 持续返回对话进度与最终结果。

官网 (opens new window) · Issues (opens new window) · Discussions (opens new window)

# 平台定位

g2rain-agent-runtime 位于谷雨 AI Agent 平台的执行层:它加载 Agent Studio 管理的 Agent 与技能配置,经 Model Nexus 调用模型、经 MCP Registry 调用工具,并把可追踪的任务状态和流式结果提供给上游应用。

# 功能概览

能力 说明
流式对话执行 POST /v1/chat/completions 返回 text/event-stream;一轮对话推送过程事件并以结果事件收口。
任务图与状态 维护任务实例、节点、边、节点载荷与状态迁移,支撑多步骤 Agent 执行。
检查点与恢复 持久化检查点和恢复记录,使任务可在安全边界继续。
工具编排 统一调度内置工具和 MCP 工具,并记录调用过程与结果。

# 核心流程

flowchart LR
  Client[上游应用] -->|POST /v1/chat/completions| Runtime[Agent Runtime]
  Runtime --> Studio[Agent Studio]
  Runtime --> Nexus[Model Nexus]
  Runtime --> Mcp[MCP Registry]
  Runtime --> Store[(MySQL / Redis)]
  Runtime -->|PROGRESS / RESULT| Client
  1. 调用方提交一轮对话请求;Runtime 创建或续接会话,并注册 SSE 连接。
  2. Runtime 根据 Agent 与 Skill 配置构建执行流程,协调模型与工具调用。
  3. 执行过程写入任务图、节点载荷和工具调用记录,并推送 PROGRESS 事件。
  4. Runtime 写入任务终态,推送唯一的 RESULT 事件并关闭连接。

任务中断后,Runtime 根据检查点、恢复记录及工具调用的幂等信息,选择安全边界继续,避免无依据地重放可能产生副作用的调用。

# 工程结构

模块 说明
g2rain-agent-runtime-api 定义运行时 API、DTO、VO 与枚举契约。
g2rain-agent-runtime-biz 实现会话、任务、状态、工具、持久化及 Web 接口。
g2rain-agent-runtime-startup 组装 Spring Boot、虚拟线程、参数解析和环境配置。
docs/ 维护项目架构、状态、SSE、技能、契约、运维与安全文档。

模块依赖方向固定为:startup → biz → api。

# 本地启动

前置条件:JDK 25、Maven,以及可用的 MySQL、Redis 与所依赖的服务。运行时默认使用 nacos 配置;本地联调可显式启用 dev profile,并在本机安全地配置数据源和依赖服务。

mvn -pl g2rain-agent-runtime-startup -am spring-boot:run "-Dspring-boot.run.profiles=dev"

默认端口由 SERVER_PORT 控制,未设置时为 8080。生产或共享环境请通过 Nacos 及环境变量提供配置,不要将凭据提交到仓库。

# 配置说明

配置项 说明
SERVER_PORT HTTP 端口;未设置时为 8080。
SPRING_PROFILES_ACTIVE 默认 nacos;dev 与 nacos 不应同时激活。
NACOS_SERVER_ADDR Nacos 注册与配置中心地址。
G2RAIN_MODEL_NEXUS_ENDPOINT Model Nexus 服务端点。
G2RAIN_MCP_REGISTRY_ENDPOINT MCP Registry 服务端点;MCP 路径默认为 /mcp。

真实凭据、密钥和环境地址仅应通过 Secret、环境变量或受控配置中心提供。

# 构建与验证

目标 命令 说明
构建与验证 mvn clean verify 执行 Maven 验证生命周期。
构建本地镜像 ./build.sh <tag> 使用 Jib 构建 g2rain/g2rain-agent-runtime:<tag>。

# 接口说明

接口 用途
POST /v1/chat/completions 提交渠道、可选 Agent/会话、用户输入或恢复动作;以 SSE 返回 PROGRESS 与 RESULT 事件。
GET /task_instance/list、GET /task_instance/page 查询任务实例。
POST /task_checkpoint/save 保存任务检查点。
POST /task_resume_record/save 保存任务恢复记录。
POST /tool_call_record/save 保存工具调用记录。

完整的请求字段、事件顺序和客户端处理方式见 SSE 事件约定。

# 关联模块

  • Agent Studio:维护运行所需的 Agent 配置与技能资料。
  • MCP Registry:提供可发现、可调用的 MCP 工具服务。
  • Model Nexus:统一访问聊天、嵌入等模型能力。

# 职责边界

本仓库负责 Agent 对话、任务图和节点编排,以及运行状态、检查点、恢复记录和工具调用记录的持久化。

本仓库不负责编辑 Agent/Skill 配置、登记 MCP 工具、管理模型供应商密钥,也不承担网关鉴权、统一路由或部署编排。

# 运维与安全

  • 健康检查:GET /actuator/health;指标、健康与信息端点的访问权限由部署环境控制。
  • 任务、节点、工具调用和请求关联 ID 应贯穿日志与排障;日志不得记录提示词全文、Token、密钥或工具敏感载荷。
  • 工具调用可能产生外部副作用;恢复或重试前必须依据调用记录和幂等策略判定。
  • 服务无法启动时,优先检查激活的 profile、Nacos、MySQL、Redis,以及 Studio、Model Nexus、MCP Registry 的连通性。

# 文档入口

# 参与贡献

欢迎通过 Issue、文档改进、功能建议和 Pull Request 参与贡献。提交前请补充必要的测试与文档,执行 mvn clean verify,并确认状态、事件、契约、配置及部署说明与变更保持一致。