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 请求转化为拉取请求的工作流。与请求者讨论计划,并在进行更改前等待批准。

  1. 01 draft 智能体步骤
  2. 02 discuss 人工审批
  3. 03 implement 智能体步骤
  4. 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 账户以在托管云运行器上运行工作流。