SKILL.md
HIKE Seek (智探)
智探系统 CLI,用于与山行资本智探平台交互。与 hike 共用同一套认证体系(同一份 ~/.hike/config.json)。
About Seek (智探)
智探是山行资本的内部数据系统,覆盖人才网络等多个业务模块。本 skill 当前实现人才网络与会议两个模块,后续会逐步扩展其他模块。
seek_cli
CLI Script: scripts/seekcli.ts(相对本 skill 目录) API Reference: references/apireference.md
⚠️ 路径与工作目录(agent 必读):本文所有示例命令中的
scripts/seekcli.ts均为相对本 skill 目录(即本 SKILL.md 所在目录)的路径。执行前先确认当前工作目录是否为本 skill 目录;若不是,把示例中的scripts/seekcli.ts替换为绝对路径<本 skill 目录>/scripts/seekcli.ts再执行——否则会报error: Module not found "scripts/seekcli.ts"。npx skills add安装到项目.agents/skills/hike-seek的场景同理,用安装位置的绝对路径。
前置依赖: 本 skill 的 CLI 脚本依赖 bun 运行时。首次使用前确认已安装:
bun --version
未安装时执行(或提示用户执行):
curl -fsSL https://bun.sh/install | bash
安装后可能需要重开终端让 PATH 生效。若运行命令时报 bun: command not found,即未安装 bun。
Config File Location:
- 默认:
~/.hike/config.json(用户 home 目录下) - 若设置了环境变量
HIKECLICONFIGDIR,则使用$HIKECLICONFIGDIR/config.json(优先级更高,供各类 Agent 做隔离定制)
API Key Management
# 设置 API key(交互式输入,保存为 0600 权限)
bun run scripts/seek_cli.ts set-key
# 查看当前 key(脱敏显示)
bun run scripts/seek_cli.ts show-key
API key 从 https://seek.hikecapital.com/ 获取。设置一次后,hike-lightyear 与 hike-seek 共用,无需重复配置。
验证 key / 查看身份:
bun run scripts/seek_cli.ts whoami
调用共享的 /api-open/me 端点,显示当前 key 对应的用户身份(姓名、部门等)。这也是验证 key 是否有效的标准方式 -- 请求成功即代表 key 有效;返回 401 则 key 失效,CLI 会提示重新输入。
人才网络
人才网络 API base:https://seek.hikecapital.com/api-open/talent。Agent 主要关心自己负责的人才和搜索场景。
# 查看人才列表(默认 tab=all 全部; 看我负责的加 --tab mine)
bun run scripts/seek_cli.ts talent list
bun run scripts/seek_cli.ts talent list --tab mine
# 搜索人才(带 --search 自动走搜索模式,忽略 --tab)
bun run scripts/seek_cli.ts talent list --search "人工智能"
bun run scripts/seek_cli.ts talent list --search "高深远" --limit 5
# 其它分类: all(全部,按最近修改排序,默认) / latest(全部,按最近添加排序) / pending_rating(待评价) / pending_revisit(待回访)
# 注: all 与 latest 都是全部人才,仅排序不同
bun run scripts/seek_cli.ts talent list --tab all --limit 50 --offset 0
# 查看人才详情
bun run scripts/seek_cli.ts talent get 80
# 人才统计(全局 + 我负责的)
bun run scripts/seek_cli.ts talent stats
# 新增人才(name/domains/summary 必填;负责人按当前用户自动设置)
bun run scripts/seek_cli.ts talent add \
--name "张三" --domains "具身智能" --summary "某公司CTO,机器人方向" \
--role expert --city "北京" --companies "某公司"
# 多个学校/公司用英文逗号分隔(命名规范:学校中文全称、中国公司中文全称、外文公司英文名)
bun run scripts/seek_cli.ts talent add \
--name "李四" --domains "具身智能" --summary "机器人方向" \
--schools "清华大学,斯坦福大学" --companies "字节跳动,Google"
# 用完整 JSON 新增(覆盖所有 flag)
bun run scripts/seek_cli.ts talent add --data '{"name":"张三","domains":"具身智能","summary":"...","role":"expert"}'
# --data 传多学校/多公司: 数组或逗号字符串均可,CLI 会归一
bun run scripts/seek_cli.ts talent add --data '{"name":"李四","domains":"具身智能","summary":"...","schools":["清华大学","斯坦福大学"],"companies":["字节跳动","Google"]}'
# 更新人才(只传需要改的字段)
bun run scripts/seek_cli.ts talent update 80 --summary "更新后的简介" --city "上海"
# 将人才关联到光年公司/项目
# ⚠️ --company-id 必须是 lightyear list-projects 返回的 company_id 字段(光年公司 ID),
# 不是项目本身的 id——传成项目 id 会报 404。不确定时先跑 lightyear list-projects 核对字段
bun run scripts/seek_cli.ts talent link-company --talent-id 80 --company-id <光年company_id>
# 查看人才的访谈记录列表(按访谈日期倒序,含访谈人姓名;呈现给用户时提炼为简表:日期/访谈人/熟悉程度/简评)
bun run scripts/seek_cli.ts talent interview list 80
# 新增访谈记录(comment/familiarity 必填;--date 未传时默认当天[北京时间])
# ⚠️ familiarity 为精确要求字段:执行前先与用户确认是 不熟/聊过/深聊/私交 中哪一个,勿自行推断
bun run scripts/seek_cli.ts talent interview add 80 \
--date "2026-08-19" --comment "聊了机器人量产落地节奏,判断务实" --familiarity "深聊"
# 带 memo 文档链接(date 同样可省略)
bun run scripts/seek_cli.ts talent interview add 80 \
--comment "初次沟通,背景属实" --familiarity "聊过" \
--memo-url "https://wn55rtx1lc.feishu.cn/docx/xxxx"
# 编辑访谈记录(只传需要改的字段;仅创建人可编辑,改他人记录会被拒绝并提示)
bun run scripts/seek_cli.ts talent interview update 80 12 --comment "更新后的简评"
访谈记录录入规则(按用户提供的输入类型选择路径;--familiarity 缺失时先向用户确认、勿自行推断;--date 未明确给出时默认当天,相对表述如"上周三"先换算成具体日期再保存;先取已有简评、再生成增量简评——非生成后删重,见下方简评要求):
- 一小段文字(无飞书文档链接;判据:单一主题且约 200 字以内):对这段文字做适当格式化、修复明显错误后,直接作为简评保存(
--comment),不传--memo-url。 - 几大段文字(无飞书文档链接;判据:明显超过 200 字、多个主题或含要点列表):从当前环境中找到可新建飞书文档的 skill/工具,将用户输入格式化为 markdown 后新建一篇飞书文档,文档 URL 作为
--memo-url;同时按下方简评要求提炼一段文字较少的简评作为--comment,两者一并保存(无法新建文档时按下方飞书文档读写能力不足提示处理)。 - 单独的飞书访谈文档 URL:直接记为
--memo-url;并从当前环境中找到可读取飞书文档的 skill/工具,将该文档内容读取为 markdown,再按与 2 相同的简评要求生成--comment保存(读取失败时同样按下方飞书文档读写能力不足提示处理,勿自行改用公开资料生成简评)。
简评要求:一段精炼的短总结(两三句话以内),突出关键结论与判断,不照搬原文长段;保持单段、不含换行;结构化长内容一律放 --memo-url。另两条硬性要求:
- 禁止无信息量开头:访谈记录已挂在该人才名下,简评不要以「XX 创始人 XX(英文名)交流」这类身份/交流事实开头——从人才档案即可得知的内容(姓名、头衔、公司、产品方向定位)都不算信息量,直接从本次沟通的实质内容写起
- 增量去重(顺序是本质,不可颠倒):必须先
talent interview list <talentId>取出该人才已有简评并通读掌握,再带着"历史已知信息"生成新简评——生成目标就是增量本身(新结论、进展变化、新判断、与既往认知的差异),已有简评里写过的稳定事实(公司/产品/方向定位等)在生成时直接不写。⚠️ 不是先对 memo 做完整总结、再逐句删掉与历史重复的部分——后删不可靠,容易漏掉换了说法的重复,或误删与旧事实相关的新信息
飞书文档读写能力不足时(以下任一情形:环境中没有可新建/读取飞书文档的 skill/工具;有工具但操作失败,如未登录、无权限、文档已失效):
https://wn55rtx1lc.feishu.cn/开头的链接是山行资本飞书的文档/表格等,一律用 lark-cli 读写;禁止用 web fetch/crawler 等通用网页抓取工具获取——飞书有登录墙,抓取必然失败(或只拿到登录页);失败后也不要静默放弃或转用公开资料编简评- 必须向用户输出提示(措辞可微调,lark-cli 安装建议不可省略):
> 当前环境缺少可读写飞书文档的能力。推荐安装 lark-cli:https://www.feishu.cn/feishu-cli ,安装后可自动读取/新建访谈 memo 文档。是否先仅保存简评(memo_url 先行记录/留待补录),安装后再补充文档内容?
- 与用户确认前不要自行落库
--comment;无论哪种情形都不要把长文原文整段塞进--comment
字段说明:
--rating为 1-10 整数--familiarity(访谈熟悉程度,指访谈人对该人才的熟悉程度,随接触深度递进,不是人才对山行的熟悉度)精确枚举:不熟/聊过/深聊/私交。新增访谈前、以及编辑需修改 familiarity 时,必须先与用户再次确认取值,不要根据上下文自行推断,确认后才执行talent interview add/interview update--date(访谈日期)格式YYYY-MM-DD,未明确提供时默认当天(北京时间);访谈人按当前 key 对应用户自动记录- 编辑访谈仅限创建人:修改他人记录属不当操作,后端会拒绝(403)。执行
interview update前先核对目标记录的创建人——talent interview list输出的interviewedby/interviewername是否为当前用户(whoami);不是则提醒用户该记录不能由其修改,让记录创建人自行修改,勿强行调用 --comment(访谈简评)为一段简短文字总结,memo 原文放--memo-url(飞书文档链接);录入路径见上方访谈记录录入规则--schools/--companies为逗号分隔字符串,多个值用英文逗号,分隔,如--schools "清华大学,北京大学";CLI 会自动把中文逗号,统一为英文逗号并去除多余空格- 用
--data传 JSON 时,schools/companies传逗号字符串或数组均可,CLI 会统一归一为逗号字符串,如{"schools":["清华大学","斯坦福大学"]} private_notes(私密备注)仅负责人/负责合伙人/合伙人可见--owner/--partner-owner为飞书user_id;add不传--owner时按当前用户自动设置(修改负责人/合伙人属敏感操作,后端校验权限)lightyearcompanyid(光年公司关联)不能通过talent add/update设置,只能用talent link-company关联(后端会同步两侧,保证一致)link-company的--company-id用list-projects返回的company_id字段(光年公司 ID),不是项目本身的id——传成项目 id 会报 404(踩过坑)- 其余字段(
role/domains/summary/ 姓名 / 学校 / 公司 / 城市 /birth_date/avatar)的取值规范见下方数据录入规范
数据录入规范(写入时务必遵守,保持人才库一致):
- 姓名:
- name:优先用中文名 - english_name:中国人才用其真正的英文名(不要填汉语拼音,如 张亮 → Kevin,不是 Zhang Liang;无英文名则留空);海外人才可保留汉语拼音(国际通用写法,如 李飞飞 → Fei-Fei Li)
- 角色
role(枚举):founder=创始人 /expert=学者专家 /rookie=年轻人
- ⚠️ 学者专家若近期创业、创立了公司,归为 founder(而非 expert)
- 领域
domains(枚举单选):商业航天具身智能智能硬件消费出海AI应用大模型芯片算力前沿科技互联网其他(合法取值以seekcli.ts的VALIDDOMAINS为准,后端增减时同步更新) - 简介
summary:控制在 80 字以内、提炼关键背景、不提著作(论文/专著/专利)、不写毕业院校(教育经历用schools字段);学者型专家可酌情补充学术引用数(如「Google Scholar 引用 1.2 万」「h-index 45」)
- ✅ 具身智能方向,某机器人公司 CTO,前大厂运动控制负责人 - ❌ 2015 年起任某机器人公司 CTO,主导具身智能运动控制算法,曾在某大厂带领团队完成多款机器人产品的运动控制研发与量产落地,发表相关论文多篇……(过长、且提了著作)
- 学校
schools:教育机构经历(就读与任教)都放这里;一律中文全称(含国外大学);任教经历不放companies
- ✅ 清华大学 北京大学 麻省理工学院 斯坦福大学 卡内基梅隆大学 加州大学伯克利分校 - ❌ 清华 北大 MIT Stanford Tsinghua
- 公司
companies:公司经历(创立与曾就职)都放这里;中国公司用中文全称(非ByteDance、非简称),外国公司用英文/官方名(非中文译名);简称补全全称(字节→字节跳动)
- ✅ 字节跳动 阿里巴巴 腾讯 Google Meta OpenAI - ❌ ByteDance 字节 阿里 谷歌 脸书
- 城市
city:知名国内外城市用中文名
- ✅ 北京 上海 深圳 旧金山 纽约 伦敦 东京 - ❌ San Francisco New York London Tokyo
- 出生日期
birth_date:YYYY-MM-DD;仅知出生年份时按当年 1 月 1 日处理(如1985-01-01) - 头像
avatar:来源优先 个人站 > 官方/机构网站;URL 须可直接公开访问(无登录墙、未失效)
完整端点与字段定义见 [apireference.md](references/apireference.md)。
会议(列表 / 反馈 / 纪要 MEMO)
会议 API base:https://seek.hikecapital.com/api-open/meetings。会议列表展示已结束会议(按角色权限过滤:普通用户看自己参与/主持的)。
# 查看我的已结束会议(含 memo 链接/memo_status/参会人/保密/定稿状态)
bun run scripts/seek_cli.ts meeting list
# 筛选: 主持人姓名精确匹配 / 日期区间 / 标题摘要搜索;分页 --page-token --page-size
bun run scripts/seek_cli.ts meeting list --organizer "张三" --start-date 2026-08-01 --end-date 2026-08-31
bun run scripts/seek_cli.ts meeting list --search "机器人"
# 查看会议详情与全员反馈(每人一条,未提交者为只读的 no_feedback;meeting_info 含 memo_url/memo_status/finalized_at)
bun run scripts/seek_cli.ts meeting get <meetingId>
# 提交反馈(参会人可提交;重复提交为覆盖更新)
# ⚠️ --type 为精确要求字段:执行前先与用户确认是 has_feedback(填写了反馈,需 --content)/no_opinion(参加了,但无意见)/not_attended(未参加) 中哪一个,勿自行推断
bun run scripts/seek_cli.ts meeting feedback submit <meetingId> --type has_feedback --content "结论清晰,方向值得跟进"
bun run scripts/seek_cli.ts meeting feedback submit <meetingId> --type no_opinion
# 主持人提交反馈可带 memo 模板与主持人笔记(仅主持人可填,CLI 会先校验主持人身份,非主持人会被拒绝)
bun run scripts/seek_cli.ts meeting prompt list # 查看模板列表,拿到数字 ID(固定不返回模板正文)
bun run scripts/seek_cli.ts meeting feedback submit <meetingId> --type has_feedback \
--content "..." --template-id 3 --host-note "按项目会标准输出,重点写风险"
# 手动创建会议(补录线下/非飞书会议;host=当前用户,参会人仅自己)
bun run scripts/seek_cli.ts meeting create --topic "XX项目线下交流会" --end-time "2026-08-28T19:30"
# 生成会议纪要 MEMO(同步执行,可能长达 5 分钟;前置条件见下方规则)
bun run scripts/seek_cli.ts meeting memo generate <meetingId>
# 定稿: circulate=定稿并通知全体参会人 / archive=仅定稿归档不通知(均需主持人或合伙人)
bun run scripts/seek_cli.ts meeting memo circulate <meetingId>
bun run scripts/seek_cli.ts meeting memo archive <meetingId>
# 更新会议元数据(标题/一句话总结仅主持人;保密切换为主持人或合伙人)
bun run scripts/seek_cli.ts meeting update <meetingId> --title "新标题" --summary "一句话总结" --partner 1
# 添加参会人(主持人或合伙人;⚠️ 会给新增参会人发送飞书反馈邀请卡片,先与用户确认)
bun run scripts/seek_cli.ts meeting attendees add <meetingId> --users "<user_id1>,<user_id2>"
会议反馈提交前的确认路径(meeting feedback submit 执行前逐条过):
- 确认
--type:三值枚举先与用户确认,勿自行推断(含义见下方字段说明) - 判断当前用户是否该会议主持人:对照会议的
user_id(主持人 ID)与当前用户身份(whoami;会议信息一般已从 list/get 拿到,零成本判断) - 是主持人 → 主动收齐主持人专属字段:先
meeting prompt list拿模板 ID+名称供用户挑选,询问是否填写--host-note(主持人笔记)并选择--template-id;用户明确表示不填才可省略 - 不是主持人 → 不带
--host-note/--template-id(带了会被 CLI 硬校验拦截,但应在源头就不带)
会议纪要 vs 访谈 memo(先分清再动手):人才访谈的 memourl(talent interview add --memo-url)是人工挂载的飞书文档;会议纪要 MEMO 是系统按提示词模板自动生成的飞书文档,memourl / memostatus / finalizedat 由后端维护,不要人工构造或修改。两者关键词都叫 memo,处理会议相关请求时一律用上方 meeting 命令。
会议纪要生成与定稿规则:
- 生成前置条件(缺一不可):① 会议已有智能纪要链接(
smartsummaryurl,飞书妙记产生,一般由系统在会后自动补充);② 主持人已通过meeting feedback submit --template-id <id>提交过反馈(或会议已配置默认模板)。缺 ① 报 500(无智能纪要),缺 ② 报 404(缺模板)——先排查前置条件再考虑重试 memo generate是同步长请求(可能长达 5 分钟),执行前先告知用户需要等待;返回 409 表示正在生成中,用meeting get观察memo_status;请求超时(CLI 10 分钟上限,与服务端超时规则对齐)不代表失败,生成可能仍在服务端进行,先查meeting get再决定- ⚠️ 对已生成过 MEMO 的会议重试
memo generate会重新生成并删除旧纪要文档,且会清掉定稿状态——重试前先与用户确认 - 定稿二选一:
memo circulate(定稿+通知全体参会人+清除反馈任务)或memo archive(仅定稿归档,不打扰人);MEMO 文档标题含「草稿」时定稿会被拒绝,需先在飞书中去掉标题中的「草稿」再定稿 - 手动创建的会议(
meeting create)没有智能纪要链接,需先在智探网页端补充纪要/总结后才能生成 MEMO(CLI 暂不支持补充总结)
会议字段说明:
memostatus(CLI 解码字段):none未生成 /generating生成中 /success已生成(此时memourl即纪要文档链接)/failed生成失败finalized_at:null草稿 / unix 时间戳 已定稿分发 /1已归档(哨兵值;archive 响应里的finalizedAt是当前时间,库里存的是 1)organizer是主持人姓名(展示用);userid才是主持人 ID,判断"是否主持人"用meeting get的meetinginfo.user_id对比whoaminumberofdevices是参会人数量(字符串形态)meeting get输出的meetinginfo.attendeeidsCLI 已解析为数组(API 原始返回是 JSON 字符串)feedbacktype取值含义:hasfeedback(必填--content)/noopinion/notattended;nofeedback是只读状态,不能作为提交值。向用户展示时一律用中文说法,不要附英文枚举或括号原文:hasfeedback→「填写了反馈」、noopinion→「参加了,但无意见」、notattended→「未参加」、no_feedback→「尚未提交」;英文枚举值仅在--type参数中使用- 主持人专属字段:
--host-note(主持人笔记)与--template-id(memo 模板)只有主持人提交的反馈会被 memo 生成消费;CLI 会在提交前核对主持人身份,非主持人调用直接报错,不要尝试绕过 - 模板展示用名称、提交用 ID:
meeting get反馈行自带prompttemplateid+prompttemplatetitle(未选模板/未提交时均为 null),向用户展示模板用prompttemplatetitle,调用--template-id时才用数字 ID --users(添加参会人)用飞书userid(姓名映射见 hike-knowledge 的 teamdirectory)- 影响他人的操作先确认:
attendees add会发飞书卡片、memo circulate会通知全体参会人,执行前先与用户确认
Authentication Flow
- 确定配置位置:检查
$HIKECLICONFIG_DIR
- 已设置 -> 使用 $HIKECLICONFIG_DIR/config.json - 未设置 -> 使用 ~/.hike/config.json
- 首次使用:检查配置文件中是否已有 API key
- 缺少 key:提示用户输入,保存到配置文件
- 401 错误:提示 key 失效,重新输入后重试一次
- 成功:key 缓存在配置文件供后续使用
Gotchas
- 与 hike 共用认证:两个 skill 读写同一份
~/.hike/config.json,在任一 CLI 设置 key 即可。 - 认证模块同步:
seekcli.ts与lightyearcli.ts的认证模块是同一份代码的两个副本,修改时需两边同步(文件头部有 NOTE 提醒)。 - 会议 memo generate 是同步长请求:可能长达 5 分钟,CLI 设了 10 分钟超时;超时≠失败,先用
meeting get看memo_status再决定下一步。 - 开放 API 限流:
/api-open/*各端点共用每 key 60 次/分钟的限流预算(超限返回 429 并带Retry-After),批量操作注意节流。