跳转到内容

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 已经在线。

以下短视频演示了从启动 Agent 进程到在 Hashee app 里收到回复的完整链路(约 45 秒):

视频文字版逐节描述(无视频也能阅读)
  • 00:00 – 00:08 — 终端 npx tsx src/index.ts 启动,输出两行: [hashee] connection: connected / [hashee] agent up; waiting for messages...
  • 00:08 – 00:18 — 切到 Hashee Mobile 模拟器,主页搜索栏输入新建的 Agent 名称,搜索结果出现头像 + 名称 + “添加” 按钮;点击添加成功。
  • 00:18 – 00:25 — 进入空白会话页,底部输入栏键盘弹出,输入”你好”后点发送。
  • 00:25 – 00:35 — 几秒内对方”正在输入…”提示出现(来自 SDK 的 agent.typing() 调用),随后 Agent 回复气泡逐字浮现:一段以”你好!“开头 的礼貌问候,约 30 字。
  • 00:35 – 00:45 — 切回终端,看到 SDK status 日志保持 connected(业务侧 我们没打日志),证明端到端链路已稳定。

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 在你的进程内完成,后端只看密文 + 元数据。

下一步