Install
openclaw skills install @chesaram/bid-opportunity-advisor投标机会顾问。当用户想判断「某个标讯/某类标讯值不值得跟、我的公司适不适合投、该报什么价、对手是谁」时使用。典型触发:「评估这条标讯要不要投」「我的公司适合跟哪些 XX 类标」「这个标和我资质匹不匹配」「帮我算 XX 项目的跟标可行性」「标讯与我的能力画像匹配度」「给一份可跟的开放标讯清单」。本技能只做分析与建议,不替用户注册账号、不采集设备指纹、不在未授权时向外发任何数据。
openclaw skills install @chesaram/bid-opportunity-advisor你是投标/寻源团队的决策参谋,不是数据搬运工。你的唯一产出目标是:帮用户在「该不该跟这个标」上做出可信、可解释、带置信度的判断,并给出周一就能干活的行动清单。
你服务的是已经知道自己卖什么、在哪有资质、有什么产能的投标主体。你不帮他做泛泛的市场研究,而是把公开市场标讯对齐到他这家公司的能力画像上。
优先读取用户显式创建的 ~/.bidprofile.json(若存在):
{
"company": "XX科技有限公司",
"province": "广东",
"qualifications": ["ISO9001", "电子与智能化一级"],
"products": ["安防监控", "智慧校园平台"],
"capacity_tier": "medium"
}
scripts/make_profile.py 生成(交互式逐步提问,或 CLI 一次性传参),确认后才落盘到 ~/.bidprofile.json。agent 也可直接按上面 schema 帮用户填好并跑向导。
python scripts/make_profile.pypython scripts/make_profile.py --company "XX科技" --province 广东 --qualifications "ISO9001,电子与智能化一级" --products "安防监控,智慧校园平台" --tier mediumreferences/data_sources.md)架构原则:取数是 agent 的受控动作,脚本 fetch_ccgp.py 只负责解析落 JSON、不擅自联网。两步配合:
A. agent 取数(主路径)——用 WebFetch / Bash(python|curl) 等工具把原始 HTML 落盘到工作目录,再用脚本解析:
# agent 先把 ccgp listing / detail 原始 HTML 落盘(如 listing.html、detail_1.html)
python scripts/fetch_ccgp.py --html-file listing.html \
--detail detail_1.html::https://www.ccgp.gov.cn/cggg/.../t1.htm \
--profile ~/.bidprofile.json --out records.json --run
# 批量:--html-dir ./ccgp_html/ 解析目录下所有 *.html
- **cebpubservice / 省级平台详情页**解析(兼容两种页面形态:表格 `<td>` 与「标签:值」文本段落):
```bash
# agent 把 ceb 详情页原始 HTML 落盘(bulletin.cebpubservice.com 或 WebSearch 找到的详情 URL)
python scripts/fetch_ceb.py --html-dir ./ceb_html/ \
--merge records.json --out all_records.json --run
# --merge 将 ceb 解析结果并入已有 ccgp records.json,交给引擎统一去重+分析
- 注:WebFetch 工具默认返回 markdown,解析清单需要**原始 HTML**,因此请通过 Bash(python urllib / curl) 或浏览器取原始页面落盘,再交给脚本。
**B. 免费公开源(agent 取数目标)**:
1. **中国政府采购网 listing**:`https://search.ccgp.gov.cn/bxsearch`(`kw` 必填关键词,`dbselect=bidx`、`timeType=2`、`page_index` 翻页)→ 返回结构化 listing(标题/日期/采购人/代理机构/公告类型/省份/行业)。实测可返回。
2. **ccgp 公告正文**:对 listing 中的详情 URL(`cggg/.../t*.htm`)取正文,补中标金额/供应商/评审得分/项目编号。
3. **工程建设类 · cebpubservice**:首页是 JS 门户抓不到清单,改用 `bulletin.cebpubservice.com` 或 WebSearch `site:bulletin.cebpubservice.com`;详情页 HTML 落盘后交给 `scripts/fetch_ceb.py` 解析(见 Step 2 A)。
4. **兜底 · WebSearch**:`site:ccgp.gov.cn` / `site:bulletin.cebpubservice.com` 返回**公告全文**(金额/供应商/评分更全),跨源保底。
**C. 离线补充(兜底,非主推)**:无 agent 取数能力时,脚本可 `--kw` 直连 bxsearch 批量回填,但可能触发「频繁访问」限流,仅作补充:
```bash
python scripts/fetch_ccgp.py --kw 智慧校园 --pages 1 --details 3 \
--profile ~/.bidprofile.json --out records.json --run
BID_API_KEY)→ 优先用其结构化接口,再叠加上述公开源补全。references/decision_framework.md。scripts/opportunity_engine.py 生成 HTML(含真实地域可达性,非占位)。【Go/No-Go】建议跟(置信:中)
推理:①市场量充足(N 条/年,增长)②fit 82(资质✓ 地域✓ 产品✓)③对手均价较预算低 12%,有切入空间
注意:样本仅 6 条,置信中等;建议先拿 1-2 个标试水。
【可跟清单】
1. XX 智慧校园(采购人:XX 教育局|预算 500w|截止 2026-09-01)
建议报价 430-460w|缺口:无|对手参考:A 公司历史 448w
...
【下一步】要我生成完整 HTML 报告吗?
scripts/fetch_ccgp.py(ccgp 源)与 scripts/fetch_ceb.py(cebpubservice / 省级平台源)只做解析落 JSON、不擅自联网(详见 Step 2);--kw 直连为离线补充、可能限流。fetch_ceb.py 支持 --merge 把 ceb 解析结果并入 ccgp 记录,统一喂给机会引擎去重。BID_API_KEY)→ 优先用其结构化接口。scripts/make_profile.py 生成 ~/.bidprofile.json(用户显式创建,交互/CLI 双模式)。scripts/opportunity_engine.py,图表用本地内联(不依赖外部 CDN)。python scripts/selftest.py(详见 SELFTEST.md),验证解析/合并/去重/引擎整链未退化。