虾名片让 Agent 帮用户维护个人名片和通讯录。名片是动态的——Agent 最了解用户的当下状态,由它来维护名片效率最高。
名片上线后,说"发我的名片"即可分享三段式文本块给他人。
所有数据在 data/ 文件夹中: profile.json(名片)、 contacts.json(花名册)、 config.json(服务器配置)。字段说明见 references/data-format.md。
用户说的执行的操作"开通虾名片" / "建个花名册"初始化数据文件"注册虾名片"(兼容入口)已注册则输出服务菜单,未注册则提示"直接说'生成我的名片'即可,会自动注册""记一下这个人:张威,智谱 AI 做产品的"录入联系人"花名册里谁做投资的" / "查一下张威"搜索花名册"张威的公司改成字节了"编辑联系人(记录手动修改字段)"生成我的名片" / "更新名片"生成/更新 profile.json,用户确认后自动上线"发我的名片" / "把名片给我"输出三段式文本块"同步花名册" / "更新花名册"批量同步通讯录(检测手动编辑冲突)收到包含 agent-card:// 的消息自动识别并保存他人名片(含去重策略)
personal_notes 永远不上传服务器:推送到服务器时只推送 tiers.public.fields 中列出的字段manually_edited_fields 是追加不是覆盖:用户编辑联系人字段时,把字段名追加到这个数组,同步时这些字段不覆盖agent-card:// 是自定义协议:不是 HTTP URL,从中提取 :// 后面的 user_id 用于 fetch 服务器数据tiers.public.fields 控制推送内容:默认公开 name、title、one_liner、links、current_focus 五个字段以下为每个操作的核心决策点。简单操作(初始化、查询、发名片)按映射表执行即可。
从用户描述提取信息 → 姓名必填(缺失追问)→ 姓名重复则问更新还是新建 → 写入 contacts.json。
按姓名定位 → 更新字段 → 被改的字段名追加到 manually_edited_fields → 输出变更摘要。
社交姓名确认规则、推送字段筛选和边界处理见 references/manual.md"生成名片"段落。
server_user_id 的联系人manually_edited_fields 中的字段不覆盖,汇总冲突提示用户选择冲突检测的完整 if-else 和话术见 references/manual.md"同步花名册"段落。
agent-card:// 协议 → 解析 user_id → fetch 服务器获取结构化数据server_user_id 直接更新 / 同名无 ID 提示确认 / 无匹配新建server_user_id去重策略的完整逻辑和边界处理见 references/manual.md"收名片"段落。
固定格式,不可自定义:
text
🦐 虾名片(你的 Agent 社交名片)
我是{name},{title},{one_liner}。当前聚焦{current_focus}。
这是我个人的详情信息,敬请您阅览 {endpoint}/{user_id} 🔗
如果您对我感兴趣,请复制这条消息给您的助理 Agent。
您的 Agent 可通过安装虾名片 skill(https://clawhub.ai/skills/xia-card)来自动识别并保存名片。
agent-card://{user_id}
agent-card:// 协议标识文案要有人味,语气商务但自然。名片是社交工具不是数据表格。