OutcomeCI
官方使用OutcomeCI在团队工具中创建、验证并管理由智能体驱动的工作流。
你可以用 OutcomeCI MCP 做什么?
- 起草工作流计划 — 让您的AI阅读请求,并使用
draft工具提出分步计划。 - 通过讨论完善计划 — 让您的AI通过
discuss与您反复迭代计划,直到您批准为止。 - 执行已批准的更改 — 指示您的AI在设定权限内使用
implement实施商定的计划。 - 报告结果 — 要求您的AI将结果(如PR链接)发布到原始对话线程中,使用
announce。 - 审查执行痕迹 — 请求每个工作流步骤调用、返回或被拒绝内容的摘要。
托管 MCP 服务器
npx add-mcp 'https://api.outcomeci.com/v1/mcp'可安装到 Claude Code、Codex、Cursor 等客户端
文档
描述工作流。一起构建它。
将你喜欢的智能体连接到 OutcomeCI,描述你想要完成的工作。一起构建步骤、工具和审批,然后让 OutcomeCI 运行工作流。
draft
阅读请求和代码仓库。在讨论串中提出计划。
discuss
与请求者一起处理反馈,直到他们批准。
implement
在工作流权限范围内进行商定的更改。
announce
将结果带回发起对话的原始位置。
构建一个将 Slack 请求转化为拉取请求的工作流。与请求者讨论计划,并在进行更改前等待批准。
- 01
draft智能体步骤 - 02
discuss人工审批 - 03
implement智能体步骤 - 04
announce智能体步骤
一起审查工作流。当工作到达时,OutcomeCI 会运行它。
查看完整工作流
apiVersion: outcomeci.workflow/v1
name: slack-to-pull-request
trigger:
webhook: {uses: slack, auth: secrets.slack_signing, events: [mention, dm]}
secrets:
slack: vault:slack/bot-token
slack_signing: vault:slack/signing-secret
github: vault:github
apis:
slack: {uses: slack, auth: secrets.slack}
github: {uses: github, auth: secrets.github}
reasoning:
default: {runner: codex}
steps:
- draft:
reason: >
Read the repositories named in the request. Draft a plan with
a section per repository and post it in the request's thread.
from: trigger
can:
- github.read
- slack.post: {channel: trigger.channel, thread_ts: trigger.ts}
returns:
plan: {summary, repos: [{repo: {owner, name}, steps: [string]}]}
- discuss:
with: draft.plan
converse: slack.thread(draft.calls.slack.post)
by: trigger.user
until: converged
max_turns: 12
returns: [plan, status]
- implement:
when: discuss.status == "converged"
for_each: discuss.plan.repos as target
reason: Implement the approved plan and open one pull request.
with: [discuss.plan, target]
can:
- github.write: {repo: target.repo}
policy: "One branch, one PR, only files the plan needs. No force-push."
returns:
pr?: {url, number: int, branch}
reason?: string
- announce:
with: [implement, discuss.plan]
reason: Reply in the original thread with each PR link or the reason no PR was opened.
can:
- slack.post: {channel: trigger.channel, thread_ts: trigger.ts}
制定计划。然后批准它。
决定在哪些环节由人工引导、审查和批准。为每个步骤赋予智能体明确的权限,并将更改限制在你设定的边界内。
-
每个步骤的权限
选择每个步骤可以执行哪些操作以及可以访问哪些资源。超出这些授权范围的调用将被拒绝。 -
更改前的策略审查
添加诸如单一分支和单一 PR 之类的规则。策略审查员会在提议的更改被发送之前对其进行检查。 -
凭据保留在 Vault 中
OutcomeCI 将凭据附加到 API 调用。智能体通过授权进行操作,而不会接收到令牌。
# product-engineering
OutcomeCI APP
我将为活动页面添加 CSV 导出功能,并包含测试。
Maya
只导出筛选后的结果,并保持现有的列顺序。
OutcomeCI APP
已更新计划:按当前列顺序导出筛选后的结果,并为两者添加测试。可以继续吗?
修订后的计划已准备好供批准
Jordan
可以,继续吧。
实施权限
仓库
acme/console
授权
github.write
策略
单一分支。单一 PR。禁止强制推送。
凭据
由代理附加
可追踪的执行环境。
每次运行都会留下一条你可以检查的记录,从第一次工具调用到最终结果。
查看每个步骤调用了什么、返回了什么、以及什么被拒绝,并附有原因。全程跟踪工作直至其产生结果。
slack-to-pull-request
已完成5 次 API 调用 · 1 次被拒绝
01 github.read acme/console 已确认
读取活动页面及其现有测试。仓库内容已返回给草稿步骤。
02 slack.post #product-engineering / 原始讨论串 已确认
发布了修订后的 CSV 导出计划,包括筛选结果和现有列顺序。消息回执标识了用于审批的对话。
03 github.write 强制推送提议 被拒绝
策略审查拒绝了提议的强制推送。策略允许一个新分支和一个 PR,不允许强制推送。此请求未发送到 GitHub。
04 github.write acme/console / 拉取请求 #142 已确认
从新分支为已批准的 CSV 导出功能打开了拉取请求。GitHub 返回了 PR 编号和 URL。
05 slack.post #product-engineering / 原始讨论串 已确认
将拉取请求链接和摘要发布到原始讨论串。Slack 返回了消息回执。
结果已返回到 Slack 讨论串展开调用以检查
保留你的工作流。更换你的智能体或模型。
将你的工作流保留在 OutcomeCI 中或你的代码仓库中。为每个步骤选择智能体和模型,并在本地或云端运行。
你的智能体
- Codex
- Claude Code
- OpenCode
设置默认值、覆盖某个步骤,或为使用限制添加备用方案。
你的模型
- OpenRouter
- LiteLLM
使用你已有的模型访问权限。为每个工作流或步骤选择模型,而无需将你的编排绑定到单一提供商。
你的执行环境
本地OutcomeCI 云
相同的工作流格式和运行器镜像。为每个环境配置凭据。
更喜欢从你喜欢的智能体开始?
通过 MCP 将其连接到 OutcomeCI,并一起构建你的工作流。
MCP 服务器 URL
https://api.outcomeci.com/v1/mcp
官方设置指南:OpenCode ↗ Claude Code ↗ Codex ↗
更喜欢在你的机器上开始?
使用 Docker 和你的智能体登录在本地测试。无需 OutcomeCI 账户。
$ pipx install outcomeci-cli
一个工作流只是开始。
从事件、计划或请求开始。汇集每项工作所需的工具、智能体和审批。
警报 → 调查 → 审查
分类处理传入的警报
从传入的 Webhook 开始,调查问题,并在进行更改前提出修复方案以供审查。
请求 → 研究 → 回答
回答仓库问题
赋予智能体对相关代码的只读访问权限,并将答案带回给提问者。
计划 → 摘要 → 更新
准备晨间更新
收集仓库活动,总结变更内容,并按你选择的计划分享更新。
从事件开始 Slack · Webhook · 电子邮件 · 计划 · CLI
连接你的工具 探索开源连接器 ↗
常见问题解答
OutcomeCI 仅用于编码工作流吗?
不是。OutcomeCI 是一个用于智能体工作流的编排框架。围绕你想要完成的工作定义触发器、步骤、工具和审批。拉取请求演练只是一个示例;工作流还可以调查问题、总结活动,并通过受支持的连接器执行操作。
我可以使用哪些智能体和模型?
OutcomeCI 支持 Codex、Claude Code 和 OpenCode。在你的工作流中选择一个运行器及其支持的模型,覆盖特定步骤的智能体,或为使用限制配置备用方案。将你的工作流保留在 OutcomeCI 中或你的代码仓库中。
我的工作流可以在哪里运行?
在 OutcomeCI 云的托管运行器上运行工作流,或使用 Docker 和你自己的智能体登录在本地测试。两者使用相同的运行器镜像和工作流格式。为每个环境配置凭据和智能体连接。
执行跟踪记录了什么?
运行的日志记录 API 调用、其结果以及带原因的拒绝。用它来检查工作流尝试了什么以及发生了什么。它是工具执行的记录,而不是智能体私有推理的转录。
如果运行失败或智能体达到限制会怎样?
打开运行日志查看失败原因,并在重试前检查记录的调用。云运行会重试某些临时故障(例如智能体连接繁忙),最多五次。为使用或速率限制配置备用智能体。对于失败的本地运行,修复原因并使用 CLI 的重试选项恢复。结果不确定的调用不会自动重放。
如果没有人批准计划会怎样?
你设置审批窗口。超时的审批步骤会跳过其余步骤。在演练中,实施需要已批准的计划;如果讨论超时或在未达成一致的情况下达到轮次限制,则跳过实施。
权限和密钥如何处理?
每个步骤都有明确的操作和参数范围授权。代理会拒绝超出这些授权的调用,并将 Vault 中的凭据附加到允许的调用。可选的策略审查会根据自然语言规则检查提议的更改,工作流可以等待人工审批。
支持哪些工具和触发器?
目前提供 GitHub 和 Slack 连接器。从 Slack 提及和私信、Webhook、电子邮件、cron 计划或 CLI 启动工作流。连接器是开源的;通过连接器仓库请求其他 API。
我需要在本地试用时创建账户吗?
不需要。安装 CLI 并使用 Docker、你的智能体登录以及你连接工具的凭据在本地测试工作流。创建 OutcomeCI 账户以在托管云运行器上运行工作流。