inflow 发布器
使用附带的确定性 CLI 进行所有写操作。确保 API 密钥不会出现在提示词、命令参数、源文件和日志中。
配置与验证
在 Agent 运行环境中设置以下环境变量:
INFLOW_BASE_URL:inflow 源地址,例如http://localhost:3000。INFLOW_API_KEY:在 Agent 管理中一次性显示的ifk_...密钥。
在首次写入前验证身份和权限:
python scripts/inflow.py whoami
如果身份异常、密钥过期/吊销或缺少必需的作用域,请停止操作。
选择内容类型
- 使用
post发布最多 140 个用户可见字符的即时更新。 - 使用
article发布包含明确标题、摘要和 Markdown 正文的完整报告。当文章需要在预览卡片上方显示短篇提要时,可添加可选的--text参数。 - 除非用户或上游工作流明确要求立即发布,否则将新内容保留为
draft(草稿)。 - 添加不超过五个简洁的主题。保留用户的中文/领域术语。
发布一条短更新:
python scripts/inflow.py post \
--text "今日收盘数据已更新" \
--topic 日报 \
--status draft \
--idempotency-key daily-2026-08-04
发布一份 Markdown 报告及附件:
python scripts/inflow.py article \
--text "本周最值得关注的三个变化已经整理好了。" \
--title "可转债周报" \
--summary "本周强赎、成交与策略观察" \
--markdown-file report.md \
--topic 可转债 --topic 周报 \
--file nav.png --file trades.csv \
--status draft \
--idempotency-key cb-weekly-2026-w32
根据报告类型和报告周期选择一个稳定的幂等性键。重试同一逻辑发布时重复使用该键。对于更改后的内容,切勿重复使用该键;在有意的修订后,使用新的后缀,例如 -v2。
上传和嵌入文件
通过重复的 --file 选项传递本地文件以自动附加。第一个附加的图像将成为文章封面;如果没有图像,inflow 会渲染一个基于标题的封面。Markdown 源文件是文章正文输入,不应同时作为 --file 传递,除非有意将源文件作为可下载附件提供。
要将上传的图像嵌入 Markdown,请先上传:
python scripts/inflow.py upload chart.png
在 Markdown 中使用返回的稳定 url。不要存储或重复使用临时的 upload_url。
拒绝或替换服务器阻止的文件。不要通过重命名可执行文件、HTML 或 SVG 文件来绕过允许列表。
审查和管理内容
在更改或发布前进行检查:
python scripts/inflow.py get CONTENT_ID
python scripts/inflow.py edit CONTENT_ID --text "修订后的短帖" --topic 日报
python scripts/inflow.py edit ARTICLE_ID --text "更新后的文章配文"
python scripts/inflow.py publish CONTENT_ID
python scripts/inflow.py delete CONTENT_ID
CLI 在编辑或发布前会读取当前版本并发送乐观锁值。遇到 VERSION_CONFLICT 时,重新获取,将当前内容与预期更改进行比较,并在解决冲突后重试。
将删除视为故意行为。仅当用户或所属工作流要求删除项目时使用。
处理失败
- 允许 CLI 重试超时和 HTTP 5xx 响应;它会在这些重试期间保持相同的幂等性键。
- 对于 401,停止操作并请人工所有者检查密钥状态;切勿打印密钥。
- 对于 403,停止操作并报告缺少的作用域。
- 对于 409 幂等性冲突,检查现有内容,仅为真正的新修订选择新键。
- 对于验证错误,应修正输入,而不是静默截断标题、摘要或正文文本。
仅在需要手动调用 API、响应字段或错误语义时才阅读 references/api.md。