Syncless

Project Template

Project Template 把重复协作流程固定成可复用的 Project 启动方式。

Project Template 不是传统表单。它描述一个协作流程的节点、上下游关系、每个节点应该问什么、谁应该负责,以及 Agent 应该如何在信息不完整时追问。它让团队把隐性的协作契约显式化。

模板包含什么

节点

每个节点对应一个责任人或责任角色,例如 Requester、Manager、Finance、Product、Engineering。

边

边描述上下游关系。一个节点只能有清晰的上游,避免责任链路变成混乱网状。

说明与开场问题

节点可以带自然语言说明和 conversation opener,让 Agent 用团队语言收集信息。

负责人选择

创建 Project 时为节点选择成员,模板负责流程结构,成员负责具体判断。

什么时候应该做模板

当一个流程第三次出现,就应该考虑模板化。重复出现意味着团队已经有隐性 SOP:需要哪些信息、谁先判断、谁最后执行、哪些问题经常缺失。

报销审核

Requester 提交金额和附件,Manager 判断合理性,Finance 核对政策,Legal 在特殊金额或合同场景介入。

客户反馈处理

Support 或 Sales 提供原始反馈,Product 提炼需求,Engineering 评估可行性。

上线流程

文案、设计、工程、运营、数据各自有节点,Project 聚合交付物。

供应商/采购审批

Agent 收集报价、合同、历史支出和业务理由,再交给负责人判断。

Cloud environment setup

Cloud environment setup 是 Project Template 上可选的初始化步骤。从模板启动 Project 时,Syncless 会打开这个 Project 后续要使用的同一个共享云端环境,并在模板真正 ready 前运行 setup script。

它适合做持久化的项目初始化:在 /work 下创建目录、准备 Python venv、下载私有资源,或者预热小型缓存。/work 是持久化共享目录,Project 中所有人都能访问。

设置了 Cloud environment setup 的 template 启动可能需要耗费一定时间,此时启动是异步的;可以通过 check API查询启动状态。

Secrets

你可以把 secrets 声明成 key-value 字段,然后在 setup script 里像环境变量一样引用,例如 $GITHUB_TOKEN。

启动流程

1
在模板里保存 setup script 和 secrets
用这个脚本在 Project ready 前准备 /work 下的共享项目状态。
2
从模板启动 Project
如果 setup script 为空,Project 会直接 ready。如果脚本有内容,Project 会先进入 setting_up。
3
ready 以后再发送 prompt
在应用里,Syncless 会自动等待 setup 完成。如果你使用 Console API,需要轮询 Project template status endpoint,并在 Project ready 以后再继续。

Shell 脚本示例

这个例子在 /work 下创建项目级 Python venv,用 pip 安装轻量依赖,并且只在 token 存在时下载私有文件。

set -euo pipefail

mkdir -p /work/cache /work/bin

if [ ! -x /work/.venv/bin/python ]; then
  python -m venv /work/.venv
fi

/work/.venv/bin/python -m pip install --upgrade pip requests

if [ -n "${GITHUB_TOKEN:-}" ] && [ ! -f /work/cache/private-data.json ]; then
  curl -fsSL \
    -H "Authorization: Bearer $GITHUB_TOKEN" \
    -o /work/cache/private-data.json \
    "https://raw.githubusercontent.com/example/private/main/data.json"
fi

/work/.venv/bin/python - <<'PY'
from pathlib import Path
Path('/work/cache/ready.txt').write_text('ready\n')
PY

API 检查状态示例

通过 Console API 创建 Project 时,把 start response 当作异步启动结果处理。发送 task prompt 前,轮询 status endpoint,直到返回 ready。

created=$(curl -fsSL \
  -X POST "https://api.syncless.ai/api/console/v1/templates/<template_id>/projects" \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{"name":"Launch checklist","nodes":{"<node_id>":"<owner_id>"}}')

project_id=$(printf '%s' "$created" | python -c 'import json,sys; print(json.load(sys.stdin)["project_id"])')

curl -fsSL \
  "https://api.syncless.ai/api/console/v1/projects/$project_id/template-status?wait_seconds=5" \
  -H "Authorization: Bearer <api_key>"

On this page