跳转到内容

5 分钟创建你的第一个 Agent

读完这一页,你会有一个真实的、可跑的、能在 Hashee app 里和你聊天的 Agent。 我们不绕弯,不讲架构,不讲加密细节——只跑通端到端。

想理解每一步背后到底发生了什么?最后一节”看看刚才发生了什么”会展开。

准备

你需要检查命令
Node.js 22 以上node --version
一个 Hashee 账号hashee.ai/download 下载 Mobile / Desktop
一个 LLM API(任意)OpenAI / Anthropic / 本地都行;本教程用 OpenAI

Step 1 — 在 Hashee app 里创建 Agent

打开 Hashee → 给系统 Agent Hashee 发一条消息:

帮我创建一个 Agent

Hashee 会用对话流程引导你完成命名、描述、连接模式选择,最后一步会发给你一张 “Agent 已创建”的卡片,里面有:

  • agent_id(UUID)
  • agent_tokenhsk_... 开头)
  • 两组密钥的备份(只显示一次,请立刻复制保存)

截图待补:Hashee Mobile app 中与系统 Agent “Hashee” 的对话窗口截图:顶部显示 Agent 名称和在线状态。屏幕中部从上到下三段交互——(1) 用户发送的文本气泡”帮我创建一个 Agent”;(2) 系统 Agent 回复的 Artifact 表单卡片,标题”创建你的 Agent”,三个字段”名称 / 描述 / 连接模式(WebSocket / Webhook 二选一)“,底部按钮”下一步”;(3) 提交后系统 Agent 返回”Agent 已创建”成功卡片,含 agent_id(UUID 文本)、agent_token(“hsk_xxxx…” 带复制按钮)、X25519 私钥备份和 Ed25519 私钥备份两个 Base64 字段(带”我已保存”确认按钮)。底部输入框可见占位文字”输入消息…”。

文字版步骤(视截图缺失也能跟着做):

  1. 主页 → 搜索 / 联系人栏输入 “Hashee” → 打开系统 Agent 会话。
  2. 发文本 “帮我创建一个 Agent”;系统 Agent 用 Artifact 表单卡片回应。
  3. 卡片填三项:名称(中文/英文皆可)/ 一句话描述 / 连接模式(默认 WebSocket)。提交。
  4. 系统 Agent 返回”Agent 已创建”卡片,包含 agent_idagent_token(仅显示一次)、两组私钥的 Base64 备份。
  5. 立刻复制 agent_token 与两个私钥;点”我已保存”关闭卡片。

详细流程:在 Hashee app 里创建 Agent

Step 2 — 装 SDK

在你的项目里(任意目录都行):

Terminal window
mkdir my-first-agent && cd my-first-agent
npm init -y
npm install @hasheeai/agent-sdk-ts openai
npm install --save-dev typescript tsx @types/node
echo '{"compilerOptions":{"target":"ES2022","module":"ESNext","moduleResolution":"bundler","strict":true}}' > tsconfig.json

设置环境变量(建议放 .env 或者直接 export):

Terminal window
export HASHEE_AGENT_ID="<step1 拿到的 UUID>"
export HASHEE_AGENT_TOKEN="<step1 拿到的 hsk_... token>"
export OPENAI_API_KEY="<你的 OpenAI key>"

Step 3 — 写一个 echo Agent

新建 src/index.ts

import { HasheeAgent } from "@hasheeai/agent-sdk-ts";
import OpenAI from "openai";
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const agent = await HasheeAgent.init({
agentId: process.env.HASHEE_AGENT_ID!,
token: process.env.HASHEE_AGENT_TOKEN!,
baseUrl: "https://api.hashee.ai",
connectionMode: "websocket",
});
agent.addMessageHandler(async (msg) => {
// SDK 已经自动解密 msg 的内容
if (msg.payload?.type !== "text") return;
// 让用户看到"对方正在输入"
await agent.typing(msg.conversation_id);
const completion = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: msg.payload.text }],
});
// SDK 会自动加密、签名、wrap CEK,再发出去
await agent.send(msg.conversation_id, {
type: "text",
text: completion.choices[0]?.message?.content ?? "(empty)",
});
});
agent.addStatusHandler((s) => console.log("[hashee] connection:", s));
console.log("[hashee] agent up; waiting for messages...");

Step 4 — 跑起来

Terminal window
npx tsx src/index.ts

控制台应该看到:

[hashee] connection: connected
[hashee] agent up; waiting for messages...

Step 5 — 在 Hashee app 里跟它聊天

打开 Hashee → 搜索你刚才创建的 Agent → 添加 → 点开会话 → 发一条 “你好”。

几秒内你应该看到 Agent 回复了。终端里也会打印:

[hashee] connection: connected
[hashee] connection: connected

恭喜——你的第一个 Hashee Agent 已经在线。

下面这段 32 秒的视频是一个架构演示——品牌动画 + 终端日志 + 端到端数据流图,告诉你刚才那一切究竟在哪一层发生了什么。视频里没有 fake app UI;真实模拟器里 Mobile 端的样子见上面 /docs/screenshots/ 那几张 Maestro 截图。

视频文字版逐节描述(无视频也能读完)
  • 0:00 – 0:04 — Brand intro。黑底中央 Hashee logo 渐入 + 标题「5 分钟跑通你的第一个 Agent」+ 副标题 “End-to-end encrypted · Hashee Agent SDK”。
  • 0:04 – 0:18 — Terminal scene。模拟开发者终端输出 6 行:$ npx tsx src/index.ts[hashee] connecting to api.hashee.ai ...[hashee] connection: connected(绿色字)→ [hashee] agent up; waiting for messages...[hashee] inbound text="你好" convo=h2a_01HZ...[hashee] reply sent in 187ms(绿色字)+ 闪烁光标。
  • 0:18 – 0:27 — Architecture diagram。三个节点横向排列,绿色箭头连接:用户 Mobile (iOS · Android)Hashee 后端 (盲管道 · 不解密)你的 Agent (SDK · WebSocket)。下方注脚说明加密栈:“内容用 AES-256-GCM 加密;CEK 用 X25519 wrap;签名 Ed25519”。
  • 0:27 – 0:32 — Outro。Hashee logo + 标题「你的 Agent 已经上线。」+ CTA hashee.ai/zh-cn/developers/first-agent

视频内容承诺:本视频仅由 brand intro + 模拟终端 + 端到端架构动画构成,不包含任何 Hashee Mobile / Desktop 产品 UI 的 mockup。Mobile 端的真实截图见 Artifact 章节OpenClaw Plugin 章节 嵌入的 Maestro 实拍 PNG。

Step 6 — 看看刚才发生了什么

你(Hashee app) Hashee 后端 你的 Agent 进程
│ │ │
│ 输入"你好" │ │
├────加密 + 签名─────────────► │
│ (CEK / 签名 / wrap) │ │
│ │ 路由 (盲管道,看不到内容) │
│ ├──────WebSocket frame────────►│
│ │ │ SDK 自动:
│ │ │ 1. 验证签名
│ │ │ 2. unwrap CEK
│ │ │ 3. 解密内容
│ │ │ → addMessageHandler({text:"你好"})
│ │ │
│ │ │ 你的代码:
│ │ │ → openai.chat.completions.create
│ │ │ → agent.send(...)
│ │ │
│ │ │ SDK 自动:
│ │ │ 1. 生成新 CEK
│ │ │ 2. AES-256-GCM 加密
│ │ │ 3. wrap CEK 给收件人公钥
│ │ │ 4. Ed25519 签名
│ │ │ 5. 通过 WS 发回
│ ◄──────WebSocket frame────────┤
│ │ │
│ │ 路由 (依然盲管道) │
◄─────加密 frame─────────────│ │
│ │ │
│ app 端解密 + 渲染 │ │
│ 显示 Agent 回复 │ │

每一条消息都用 6 层加密栈处理(Layer 1 内容 / Layer 2 wrap / Layer 3 签名 / Layer 4 Double Ratchet 前向保密 / Layer 5 X3DH / Layer 6 grant ledger), 全部由 SDK 在你的进程内完成,后端只看密文 + 元数据。

下一步