Sortie
将问题跟踪器中的工单转化为并行、可恢复的编码代理会话。
- Star 数
- ★ 215
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- Go
- FA 评分
- 71/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 维护多个代码仓库的工程团队,希望把 GitHub、GitLab 或 Gitea 中筛选出的缺陷并行交给现有编码代理处理。
- 不适合
- 不愿为每个 issue tracker 和编码代理配置凭据与权限的团队
- 需要托管 SaaS、不想自己部署和维护服务的团队
- 源码审查
- 71/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Sortie 是一个以 Go 编写、可自行托管的编码代理编排器,用于把问题跟踪器中的待办事项交给多个编码代理并行处理。它通过一个 WORKFLOW.md 文件定义要选择的问题、使用的代理以及交给代理的指令。每个任务在独立工作区中运行,执行历史与成本数据会持久保存,并且进程重启后仍可恢复。系统能够自动重试失败任务,还可利用 CI 失败和评审意见继续驱动代理。它以单个二进制文件部署,使用 SQLite 持久化,无需另行部署数据库或任务队列,并声明自身不发送遥测数据。
Sortie 从 GitHub Issues、GitLab Issues、Gitea Issues、Linear 或 Jira 中挑选符合 WORKFLOW.md 条件的问题。该文件同时指定 Claude Code、Copilot、OpenCode、Codex、Kiro 或 Gemini 等编码代理以及运行指令。编排器为每个问题创建隔离工作区并并行启动代理,保存运行历史、进度和成本信息;失败的运行会自动重试。启用相关反馈后,CI 失败和代码评审意见可以再次传给代理。工作流配置可在不重启 Sortie 的情况下更新,持久状态由 SQLite 保存。
- 维护多个代码仓库的工程团队,希望把 GitHub、GitLab 或 Gitea 中筛选出的缺陷并行交给现有编码代理处理。
- 使用 Jira 或 Linear 管理迭代的团队,需要将工单自动转换为彼此隔离、可重试的编码会话。
- DevOps 团队需要让 CI 失败信息和评审意见返回给编码代理,以便继续修正任务。
- 同时采用 Claude Code、Codex、Copilot、OpenCode、Kiro 或 Gemini 的团队,希望由同一个自托管编排器调度这些工具。
- 不想额外维护数据库和消息队列的小型团队,希望用单个二进制文件运行代理队列并保留历史与成本记录。
如何安装或部署这个 Agent?
在支持 shell 的本机或服务器上运行:
curl -sSL https://get.sortie-ai.com/install.sh | shmacOS 也可使用 Homebrew:
brew install --cask sortie-ai/tap/sortie安装脚本需要网络访问。所给材料未注明受支持的操作系统版本、安装目录、最低 Go 或系统版本,也未提供校验安装结果的命令。
如何使用这个 Agent?
首先创建一个 WORKFLOW.md,在其中选择要处理的问题、要运行的编码代理以及任务指令;随后让 Sortie 读取匹配的问题并启动会话。若不连接外部服务,可使用文档中的本地演示流程和模拟代理;若连接真实服务,则需配置所选问题跟踪器和编码代理。所给材料没有提供 WORKFLOW.md 的字段示例、启动 Sortie 的具体 CLI 命令、环境变量名称或各服务所需的凭据与权限范围,因此无法仅凭这些材料给出完整且可复制的首次运行命令。
这个 Agent 有哪些优点和局限?
- 原生支持五类问题跟踪器和六种编码代理,避免把编排流程绑定到单一厂商。
- 每个任务使用独立工作区,并支持并行执行和失败自动重试。
- 运行历史可跨重启保存,同时能够跟踪任务进度与成本。
- 可以把 CI 失败和评审意见重新交给代理,形成后续修正循环。
- 单二进制加 SQLite 的部署边界明确,不要求独立数据库或任务队列,且声明不发送遥测。
- 采用前仍需为每个问题跟踪器和编码代理准备连接配置、凭据及相应权限,而所给材料未列出具体要求。
- 完整自动化依赖外部问题跟踪器、编码代理以及可选的 CI 和评审反馈链路,这些服务的故障或限额会影响执行。
- 所给材料没有展示 WORKFLOW.md 的结构或实际启动命令,无法据此评估首次配置的复杂度。
- 虽然架构称支持可插拔适配器,但所给材料没有提供开发自定义适配器的接口细节或兼容性保证。
这个 Agent 与同类方案有什么区别?
Sortie 明确说明其架构受到 OpenAI Symphony 启发。相较于 Symphony 的 Elixir 参考实现,Sortie 选择 Go 以简化部署,使用 SQLite 而非内存状态,通过可插拔适配器支持多种问题跟踪器和编码代理,并由编排器管理交接状态转换,而不是只依赖代理主动写回跟踪器。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Sortie 当前 | 71 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 215 | 今天 | Go | Codex · Claude Code |
| CodeMachine | 证据不足 | 命令行工具免费 + 模型费 | ★ 2.5k | 8 个月前 | TypeScript | Codex · Claude Code |
| pi-subagents | 61 · 存在缺口 | Agent 插件 / 技能免费 + 模型费 | ★ 1.4k | 2 天前 | TypeScript | — |
| LeanCTX 上下文智能层 | 75 · 表现良好 | 命令行工具免费 + 模型费 | ★ 3.9k | 1 天前 | Rust | Codex · Claude Code · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
CI 工作流将默认权限限制为只读、禁用检出凭据持久化并以提交哈希固定第三方 Actions;安全政策还陈述了路径约束、工作区名称清理、执行目录校验、环境变量密钥间接引用和不记录密钥。README 说明无遥测,并明确归因于 OpenAI Symphony,许可证和仓库来源也清楚,因此来源归因可获满分。扣分在于:提供的实现代码不能验证安全不变量;编排器会运行具有代码和网络副作用的代理,却未展示最小化代理权限、逐项确认或审批门;反馈可写回跟踪器,但外部写入范围和确认机制不清;运行历史能够保留状态,但没有证明可撤销代理提交、跟踪器写入或其他外部效果。依赖和 Actions 有明确版本、自动更新流程及漏洞报告政策,但未提供漏洞扫描、SBOM 或所列版本无已知漏洞的证据。
README、SECURITY、go.mod 和 CI 对 Go 单二进制、跨平台范围、SQLite 持久化及安全维护模式的描述相互一致,未发现直接矛盾,因此自洽性较强。静态链接和较小的直接依赖集合降低运行时依赖,但安装端点、问题跟踪器、编码代理及可选服务仍是外部可用性条件。材料说明失败运行会自动重试、历史可跨重启保留,并提供安全事件响应流程;扣分是未给出面向用户的具体运行错误格式、重试上限、退避策略、不可恢复错误分类或部分失败处理示例。
目标用户、问题场景、支持的五类跟踪器和六类编码代理都被明确列出,且支持本机或服务器、并行会话以及可热更新的 WORKFLOW.md,受众与场景覆盖充分。安全政策区分 Sortie、第三方代理和部署加固责任,也列出安全边界;但真正的代理能力限制、网络和命令权限仍依赖未提供的配置及架构文件。触发机制被描述为匹配所选问题并依据 WORKFLOW.md 启动,不过没有展示匹配语法、去重、竞态处理或误触发防护。Linux、macOS 和 Windows 均有 CI 覆盖,但部署前提、容器环境和不同跟踪器或代理的兼容性细节不足。
README 的问题、兼容性、安装、工作原理、文档、先前工作和许可证结构清楚;项目命名、WORKFLOW.md、模块路径及安全术语一致。Apache-2.0 全文存在并与元数据一致,因此许可证获满分。安装提供脚本、Homebrew、无外部服务的演示入口和正式入门入口,但管道执行远程脚本未附校验、固定版本或手动安装说明。示例主要是链接和一个测试脚本,未提供完整常见问题集。安全政策详列支持窗口、范围和报告渠道,但一般操作限制仍较少。语义版本和 CHANGELOG 更新路径被陈述,然而 CHANGELOG 内容未包含在证据中。维护渠道、时限和安全邮箱明确,但发布者身份未经企业登记验证,且未展示具体维护者或治理结构。
产出可通过运行历史、进度、成本以及 CI 和评审反馈继续处理,能支持普通工程工作流;但没有展示实际会话报告、补丁交付格式、审阅界面或完成判定样例,因此输出可用性未达全面水平。把多个现有编码代理与跟踪器、隔离工作区、重试和持久化整合为单一编排器,较手工逐项启动具有明确增量价值。单二进制、SQLite 和并行执行降低部署负担,并提供成本跟踪;扣分是未量化计算、令牌、存储、并发上限或维护成本,也没有基准或案例证明收益。
多数主要主张能够对应 README、SECURITY、go.mod 或 CI 中的具体陈述,例如依赖版本、跨平台测试、权限设置、许可和支持政策。扣分是若干关键安全和功能主张只在文档中声明,相关实现、架构章节、CHANGELOG 和完整测试未随材料提供,无法逐项追踪。不同文件对依赖、平台、凭据管理和测试策略形成一定交叉印证,但没有独立来源或完整代码证据。材料通常将产品主张、安全政策和测试配置分开表达,不过营销性效率主张及“从不记录密钥”“无遥测”等事实没有在所给源码中明确标注为已实现证据还是设计要求。
- 编排器会启动能够修改代码、调用网络并可能写回问题跟踪器的第三方代理;部署前应单独限制每个代理的文件系统、命令、网络和令牌权限。
- 不要仅凭 SECURITY.md 的陈述认定路径隔离、密钥脱敏或无遥测已经得到实现验证;本次材料未包含对应实现代码。
- 安装命令通过管道直接执行远程脚本;在受控环境中应先下载、审查并校验固定版本的安装程序。
- 自动重试和并行运行可能重复或放大外部副作用;在确认去重、重试上限、审批门和恢复流程之前,不宜用于不可逆任务。
- 发布者身份未知但不因此被视为可疑;组织应通过自己的供应链和维护者尽调建立信任。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v1.31.0 sortie 1.31.0
发布说明摘录
This release is mostly about counting what agents spend for more agent kinds, and about handling provider usage limits without wasted retries. Sortie now counts token usage and cost for every agent kind on local and SSH worker runs, including cancelled, killed, and resumed turns. The token limit and the cost limits now apply to all of them, except Kiro CLI runs, which report spend in credits that no limit counts. When Sortie cannot fully measure a run, it marks the figure as a lower bound or as unknown instead of showing zero. The dashboard and sortie stats show where each token figure came …在 GitHub 查看 ↗ -
v1.30.0 sortie 1.30.0
发布说明摘录
This release is mostly about the dashboard telling the truth about how a run ended, and about seeing what an agent actually did. A run where the agent stopped to ask for help, asked for a human review, or found nothing to change no longer reads as succeeded. The dashboard names that outcome and shows what the agent wrote. A pull request that passed its checks and waits only for a required approval now says so and stays on the Pipeline. The status card no longer reads all clear while something still waits on a person, and a running issue's labels follow the tracker instead of freezing at the s …在 GitHub 查看 ↗ -
v1.29.0 sortie 1.29.0
发布说明摘录
This release is mostly about money: you can now cap what agents spend in dollars, and the cost figures behind that cap are ones you can trust. You can set a dollar limit per issue, and a daily and a monthly limit for the whole instance. When an issue reaches its limit, Sortie stops working on it and says so on the issue. When the instance reaches a limit, no new sessions start until the day or month resets. The dashboard shows spend against each limit. …在 GitHub 查看 ↗