# 能力与权限

Source: https://openflow.run/zh-cn/docs/design/permissions/
Language: zh-CN
Product version: 0.1.0-beta.77

为工作流配置任务所需的账号、工具和运行时能力。

工作流定义声明它准备使用哪些能力。接收和执行任务时，部署端仍会检查当前操作者的身份、工作流归属、所选账号和有效授权。

## 账号连接

外部凭据由 Connector 管理。节点选择一个账号连接（Connection），不把访问令牌直接写进修订版本。同一服务的两个账号拥有各自独立的权限；一个账号调用失败，不意味着可以改用另一个账号。

工作流共享的访问配置与执行图分开保存。发布记录和运行会固定所需的授权身份及快照，但上游撤销授权后，后续调用仍可能被拒绝。

## Agent 工具

Agent 只能调用明确声明的工具。工具声明指定应用操作或工作流、使用的账号、固定参数、由模型填写的参数，以及审批策略。模型无法通过提示词扩大这些权限。

具体配置见 [Agent 节点](https://openflow.run/zh-cn/docs/nodes/agent/index.md)和[应用操作节点](https://openflow.run/zh-cn/docs/nodes/connector/index.md)。

## 代码能力

代码在隔离环境中运行。内置模块不会授予访问宿主机文件、凭据或任意网络地址的能力。外部应用操作、工作流调用和 HTTP 主机，必须通过支持的能力接口声明。

## 变量与敏感数据

变量是账号名下的配置，可以避免把值直接写入工作流定义。不过，用户代码仍然可以返回、记录或发送读取到的值。变量不是一种“可使用但不可导出”的秘密保护机制。

只向任务传入必要的数据和权限。工作流处理敏感值时，也要检查输出和日志中会留下什么。

## 资料来源

*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#4-identity-and-capability-boundaries)
*   [docs/control/flow-authorization.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/flow-authorization.md)
