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