<div id="agentic-workflows"></div>

# 智能体工作流

这一页介绍每个受支持 OpenProgram release 已包含的现成 agent 及其使用方式。如果你想直接用而不是自己写函数，从这里开始。

## 是什么

Agentic Workflow 是用 [Agentic Programming](../agentic-programming/README.zh.md) 写成的成品工作流——代码里叫 **harness** 或 **agentic program**：一个自包含的 git 仓库，里面是一组 `Agent` method。release 中固定的版本会注册进 OpenProgram，像内置函数一样出现在聊天、Web UI 的 Programs 页和 `openprogram programs run` 里。

三个第一方 workflow：

| Workflow | Release 状态 | 一句话 |
|---|---|---|
| [GUI Agent](gui-agent.zh.md) | 已包含 | 给一句任务，自主操作桌面（截图 → 识别 → 点击 → 验证循环） |
| [Research Agent](research-agent.zh.md) | 已包含 | 从研究选题到可提交论文，带确定性核查层 |
| [Wiki Agent](wiki-agent.zh.md) | 已包含 | 把会话 / 笔记沉淀成模板化 HTML 知识库 |

## 管理命令

```bash
openprogram programs list          # 所有已注册的函数与 program
openprogram programs available     # 第一方状态 + 已装第三方 harness
openprogram programs install <owner>/<repo>   # 任意第三方 harness（git URL 亦可）
openprogram programs install <ref> --upgrade  # 重装 / 升级
openprogram programs uninstall <Harness-Name> # 删除第三方 harness
openprogram programs run <name> -a key=value  # 直接运行一个 program
```

`programs run` 还接受 `--provider`（openai-codex / gemini-cli / anthropic / openai / gemini，默认自动探测）和 `--model` 覆盖模型。

第一方 Programs 是 immutable 产品组件。在可变扩展或开发环境中，`programs install` 会克隆额外第三方 harness、安装其声明的依赖并登记批准的来源。

`openprogram programs list` 包含 owner 已授权发布的 Workflow 注册入口，包括 `workflow/weekly_report/` 这类分类目录中的项目。列出条目不会执行 Workflow，也不会导入未登记的项目。

## 用哪种方式触发

- **Web 参数表单**：点击 Programs 中的 **Use** 或侧栏收藏。新标签页变成草稿聊天；已有聊天保留草稿和执行中的任务。填写任务要求后明确发送。打开或关闭表单不会执行 Workflow。
- **聊天里**：入口函数以 `as_tool=True` 注册为工具，直接用自然语言描述任务，模型会调用它（如 `gui_agent`、`research_agent`、`wiki_agent`）。
- **命令行**：`openprogram programs run gui_agent -a task="Open Firefox"`。
- **Python 里**：harness 的函数就是普通可 import 的 Python 函数。

## 编写你自己的

任何满足目录契约（`<package>/agentics/__init__.py` 暴露 `PROGRAM_ENTRIES`）的仓库都能被同一条 `programs install` 命令安装。契约、最小模板和发布流程见[安装与编写 Harness](../installing-harnesses.zh.md)。

Harness 契约与单个 Workflow 包不同。包合同、完整测试示例、相对路径以及 `workflows validate/test/publish` 命令见[编写、测试和发布 Workflow](authoring.zh.md)。生成式 `create_workflow` 和 `revise_workflow` 也使用同一强制行为测试要求。

Workflow 表单只询问任务信息，不要求配置执行设置。文本润色在同一次模型请求中根据文本判断风格，不强制用户选择。浏览器 backend 和会话标识保留为内部参数。文档页码和输出位置属于可选的任务要求。显式 Python 调用仍支持受支持的覆盖值。

## 周报

如果 Workflow 目录已安装 `weekly_report`，可以直接提供周报内容或修改要求。例如：“提交本周周报：……”；“只修改本周周报的下周计划，其他字段不变”；“只查看本周提交记录”；“不要提交，把草稿写到 reports/weekly_report.md”。

它先读取配置的飞书表单，核对姓名和年份、周次。没有记录时新建提交一次；已有可编辑记录时，从提交历史打开并保存。部分修改保留未指定的字段。明确要求草稿或只读检查时不会提交。检查结果不明确、登录失败或记录无法唯一确认时停止；达到提交次数上限不等于已有记录不能编辑。

只有观察到新的成功提示并核对保存内容后才报告完成。写入结果不明确时直接说明，不自动重试。浏览器原有授权要求保持不变。流程使用有次数与时间限制的浏览器步骤，不使用 `goal()` 循环，也不编造进展、指标或论文名称。

### 组长周报草稿

`group_weekly_report(task)` 主动从记忆、相关本地文件和微信查找范围、材料与作者证据，生成未发送草稿。缺字段不再提问，未核实作者与不可用来源写入限制。显式 `source: "supplied"` 只使用所给材料。来源选项见[每周报告](reports.zh.md)。

完整且显式只用输入材料的结构化核对由代码完成，不调用模型。汇总按成员限制模型上下文，核验来源引用并保留不确定项。本地文件保存到 `reports/group-weekly/<week>/<unique-run>/`（或 `output_dir`）。未找到材料不等于未提交。请核对草稿后自行发送。
