AI Skill Hub 强烈推荐:AI工作流 是一款优质的Agent工作流。AI 综合评分 8.0 分,在同类工具中表现稳健。如果你正在寻找可靠的Agent工作流解决方案,这是一个值得深入了解的选择。
AI工作流 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
AI工作流 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 克隆仓库 git clone https://github.com/false-systems/sykli cd sykli # 查看安装说明 cat README.md # 按 README 完成环境依赖安装后即可使用
# 查看帮助 sykli --help # 基本运行 sykli [options] <input> # 详细使用说明请查阅文档 # https://github.com/false-systems/sykli
# sykli 配置说明 # 查看配置选项 sykli --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export SYKLI_CONFIG="/path/to/config.yml"
<p align="center"><em>sykli</em> — Finnish for <em>cycle</em></p>
<p align="center"><strong>Run your checks. Reuse the work. Explain the result.</strong></p>
<p align="center"> <img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue"> <img alt="Rust 1.85+" src="https://img.shields.io/badge/rust-1.85%2B-orange"> <img alt="Linux, macOS, Windows" src="https://img.shields.io/badge/platforms-linux%20%7C%20macos%20%7C%20windows-lightgrey"> <img alt="Runs locally" src="https://img.shields.io/badge/runs-locally-success"> </p>
<p align="center"> <a href="#see-it-in-30-seconds">Demo</a> · <a href="#start-in-your-repository">Quick start</a> · <a href="#how-it-works">How it works</a> · <a href="#in-ci">CI</a> · <a href="docs/agents.md">Agents</a> · <a href="#command-map">Commands</a> </p>
Sykli is one binary that turns your repository's checks into a declared graph. It runs the graph in order, reuses any result whose inputs haven't changed, and writes a receipt that ties every outcome to the exact tree it ran against. It works the same on your laptop, in CI and for a coding agent.
Keep Cargo, npm, Go and your shell scripts. Sykli doesn't replace your tools. It decides which of them need to run and keeps a verifiable record of what did.
A task's declared env values may name ${worktree_cache}, a directory that belongs to the worktree the run is in:
{
"name": "test",
"run": "cargo test --workspace --locked",
"inputs": ["Cargo.toml", "Cargo.lock", "src/main.rs"],
"env": {
"CARGO_TARGET_DIR": "${worktree_cache}/cargo-target",
"CARGO_BUILD_BUILD_DIR": "${worktree_cache}/cargo-build"
}
}
It expands to $(git rev-parse --git-common-dir)/sykli/worktrees/<id>/cache. <id> (16 hex digits) identifies one incarnation of the worktree: its top level, its own git directory, and a token sykli keeps in that git directory (sykli-incarnation). Sykli makes the directory when a run needs it. It is the same on every run in that worktree, and different in every other worktree. A worktree removed and made again at the same path gets a new directory: git gives it the same git directory, but deletes the old token with the old worktree. It lies outside the work tree, so it never shows in git status or in a tree a receipt binds. The directory belongs to the tasks: sykli keeps its own records beside it, in <id>/, so a task may empty or remove it (cargo clean), and the next run makes it again.
Recommended for Rust contracts: declare both variables. When every worktree of a clone shares one Cargo target directory ([build] target-dir in ~/.cargo/config.toml, or a CARGO_TARGET_DIR set for everything), the final artifacts land in shared debug/<name> paths. A gate in one worktree can then run a binary that another worktree built. Cargo may find the other worktree's build fresh and build nothing, or another build may replace debug/<name> while the gate's tests run it. The receipt then claims a pass for code that never ran.
- CARGO_TARGET_DIR=${worktree_cache}/cargo-target moves the final artifacts. - A shared [build] build-dir (Cargo 1.91 and later) holds the intermediate ones: dependencies, fingerprints and test binaries. With CARGO_TARGET_DIR alone, a gate still finds another worktree's build fresh there. CARGO_BUILD_BUILD_DIR=${worktree_cache}/cargo-build moves those too. A Cargo without build-dir ignores it. - Both take precedence over Cargo's configuration, so each gate builds in its own worktree's directory. Your own cargo commands keep the shared ones.
What it costs:
- The first gate in each worktree builds cold. Later gates there are incremental. - Each worktree keeps build directories of its own on disk until it is gone. - Adding the lines changes the contract's digest, so receipts from before them read as another contract's. - A sykli older than this one hands ${worktree_cache} to the task as written, and Cargo then builds in a ${worktree_cache}/ directory inside the work tree. Adopt the lines once every sykli that runs the contract knows them. - On Windows, paths under .git\sykli\worktrees\<id>\cache\ are about 50 characters longer than under an in-tree target\, which counts against MAX_PATH (260) for tools that do not use long paths. If a build hits it, enable long paths (the LongPathsEnabled policy, and core.longpaths for git), or keep the clone's path short.
The cache key covers the declaration, never the directory. The key contains ${worktree_cache} as written, not the path it expands to. A pass is evidence about the inputs it ran with, and a build in a directory that no other worktree writes is a build of those inputs. So:
- Identical work in two worktrees has the same key. - A worktree you move keeps its cached passes. - A pass earned with a shared directory is never reused once the contract declares ${worktree_cache}, because the declaration changed.
Sykli records the directory nowhere, in no receipt and no journal. A task's own captured output may name it: cargo test prints the paths it runs.
The directory keeps worktrees apart by accident, not by force: its path can be computed, and any process that can write the common git directory can write into it, just as it can write receipts.
Where a contract is written or run (validate, lock, plan, run, resume, the pre-commit hook), these are refused: validate exits 1, and the others exit 2.
- In an env value, any ${…} other than ${worktree_cache}, or an unclosed one. Such a value is never passed on literally. A $ that opens no ${ is kept as written ($ORIGIN, $LINENO). - In an env value, $${. It is reserved for an escape of ${, so that adding one later never changes what a valid contract means. There is no escape for a literal ${ yet. - ${worktree_cache} (or $worktree_cache) anywhere but an env value: in run, workdir, inputs, outputs or an env name. Sykli does not expand it there, and a shell would make it empty. Declare it in env and use the variable.
Where a contract is judged (verify, status --commit, the pre-push hook), none of these apply. A commit whose contract an earlier sykli ran with "PS4": "+${LINENO}: " keeps the verdict its receipt earns.
On Linux and macOS a run holds the directory's lease. So do its tasks that name it, and whatever they start. When a run is recorded in any worktree of the clone, sykli sets aside the directory of every worktree incarnation that is gone, but never one whose lease is held. An incarnation is gone once its worktree was removed, moved, made again, or pruned by git, unless git keeps it locked (git worktree lock, for a worktree on removable media). The run deletes what it set aside once its work is done, so a large directory never delays its start. On Windows the directories are made but never pruned: remove sykli/worktrees/ in the common git directory yourself, when no run is live.
On Linux and macOS, typed production captures declared source, builds an artifact and runs the required checks. A production ID lets another terminal or agent resume from the same local store.
sykli init --production --smoke '"$SYKLI_INPUT_executable" --help'
sykli targets
sykli produce TARGET --stop-after build
sykli resume PRODUCTION_ID
Use the target name and production ID that Sykli prints. Stopping after build exits 1 while checks remain. Artifact availability and completed checks are recorded separately. Failed work requires an explicit retry, and an unresolved lost attempt cannot silently become a success. See the production agent loop for preparation without execution, bounded parallel work and diagnostics. A production's delivery field says the artifact is in the local store; it says nothing about any deployment.
高质量的AI工作流项目,值得关注
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
总体来看,AI工作流 是一款质量优秀的Agent工作流,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | sykli |
| 原始描述 | 开源AI工作流:The contract layer between AI agents and the work they execute.。⭐9 · Elixir |
| Topics | AI工作流Elixir |
| GitHub | https://github.com/false-systems/sykli |
| License | MIT |
| 语言 | Elixir |
收录时间:2026-06-28 · 更新时间:2026-07-03 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端