Community生产力与协作github.com

yoichiojima-2/syros

在您自己的GCP项目中,于沙箱化的Cloud Run Jobs中运行Claude Agent SDK代理——包含审计追踪、人工审批门、代理、定时部署、平台连接器、Agent技能,且零常驻成本。

syros 是什么?

Syros是一个开源平台,专为在Google Cloud Platform (GCP) 上安全、可审计地运行Claude Agent SDK代理而设计。它利用Cloud Run Jobs的无服务器特性,提供按需付费、零常驻成本的运行环境。Syros的核心功能包括:完整的审计日志记录、人工审批流程(Human Approval Gates)、定时任务部署、与Slack和Jira等平台的连接器,以及支持自定义Agent Skills。该项目的SKILL.md详细说明了如何配置GCP环境(包括启用API、创建服务账号和密钥)、设置广播机制(用于心跳和任务通知)以及使用Claude Code工具部署代理。特别地,Syros要求代理代码必须包含一个 `main.py` 入口点,并通过 `syros_deploy` 命令自动从GitHub构建镜像并部署到Cloud Run Jobs。此方案非常适合需要在生产环境中管理多个代理、确保合规性并控制成本的企业团队。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add yoichiojima-2/syros

Installed? Explore more 生产力与协作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

syros 是做什么的?

在您自己的GCP项目中,于沙箱化的Cloud Run Jobs中运行Claude Agent SDK代理——包含审计追踪、人工审批门、代理、定时部署、平台连接器、Agent技能,且零常驻成本。

概述

Syros 是一个开源平台,允许您在 Google Cloud Platform (GCP) 的沙箱化 Cloud Run Jobs 中运行 Claude Agent SDK 代理。它提供了企业级功能,例如完整的审计追踪、人工审批门、定时部署以及 Slack 和 Jira 等平台连接器。该平台采用零常驻成本模型,按使用量付费。

先决条件

  • 一个 Google Cloud Project
  • 已安装并配置了 gcloud CLI
  • Claude Code 访问权限
  • GitHub 仓库(用于托管代理代码)

设置

1. GCP 环境配置

# 启用所需 API
gcloud services enable cloudbuild.googleapis.com run.googleapis.com secretmanager.googleapis.com

# 创建服务账号
gcloud iam service-accounts create syros-agent --display-name="Syros Agent"

# 授予必要权限
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID --member="serviceAccount:syros-agent@YOUR_PROJECT_ID.iam.gserviceaccount.com" --role="roles/run.admin"
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID --member="serviceAccount:syros-agent@YOUR_PROJECT_ID.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor"

2. 创建服务账号密钥

gcloud iam service-accounts keys create syros-key.json --iam-account=syros-agent@YOUR_PROJECT_ID.iam.gserviceaccount.com

3. 设置广播机制

Syros 使用发布/订阅进行心跳和任务通知。创建一个主题并订阅:

gcloud pubsub topics create syros-events
gcloud pubsub subscriptions create syros-sub --topic=syros-events

创建代理

代理代码结构

Syros 要求每个代理都有一个包含 main.py 的特定结构:

my-agent/
├── main.py
├── requirements.txt
└── skill.json(可选)

示例 main.py

from syros import Agent

agent = Agent(name="my-agent")

@agent.task
def process_data(input: str) -> str:
    # 您的代理逻辑
    return f"处理完成:{input}"

if __name__ == "__main__":
    agent.run()

部署

使用 Claude Code 部署代理:

claude code --cd my-agent/

在 Claude 中,运行:

> syros_deploy

这将自动从您的 GitHub 仓库构建 Docker 镜像,将其推送到 Google Container Registry,并部署为 Cloud Run Job。

配置

环境变量

您可以在 skill.json 文件中配置环境变量:

{
  "env": {
    "SLACK_BOT_TOKEN": "secret:slack-token",
    "JIRA_API_TOKEN": "secret:jira-token"
  },
  "schedule": "0 9 * * 1-5"  // Cron 表达式
}

秘密管理

Syros 集成 Secret Manager 用于安全存储凭据:

echo -n "my-secret-value" | gcloud secrets create slack-token --data-file=-

用法

运行代理

手动触发代理:

gcloud run jobs execute my-agent

查看日志

gcloud logging read "resource.type=cloud_run_job AND resource.labels.job_name=my-agent"

审计追踪

所有代理执行都会被记录到 Cloud Logging,并带有结构化元数据,便于审计。

支持的平台

  • Slack: 通过 Syros Slack 连接器发送/接收消息
  • Jira: 自动创建和更新工单
  • 自定义 Webhook: 通过 Webhook 连接器集成任何平台

许可

MIT

相关技能