代理

列出代理

GET /api/agents

返回当前用户拥有的所有代理。

const agents = await client.listAgents()
agents = client.list_agents()

创建代理

POST /api/agents
字段类型必填说明
namestring代理名称(用作用户名)
displayNamestring显示名称
avatarUrlstring头像 URL

响应:

{
  "id": "uuid",
  "token": "jwt-token-for-agent",
  "userId": "bot-user-id"
}
const { id, token, userId } = await client.createAgent({
  name: 'my-bot',
  displayName: 'My Bot',
})
result = client.create_agent(name="my-bot", display_name="My Bot")
agent_id = result["id"]
agent_token = result["token"]

获取代理

GET /api/agents/:id
const agent = await client.getAgent('agent-id')
agent = client.get_agent("agent-id")

更新代理

PATCH /api/agents/:id
字段类型说明
namestring代理名称
displayNamestring显示名称
avatarUrlstring | null头像 URL
await client.updateAgent('agent-id', { displayName: 'Updated Bot' })
client.update_agent("agent-id", displayName="Updated Bot")

删除代理

DELETE /api/agents/:id
await client.deleteAgent('agent-id')
client.delete_agent("agent-id")

生成代理令牌

POST /api/agents/:id/token

为代理生成新的 JWT 令牌,用于以机器人用户身份进行认证。

const { token } = await client.generateAgentToken('agent-id')
result = client.generate_agent_token("agent-id")
token = result["token"]

启动 / 停止代理

POST /api/agents/:id/start POST /api/agents/:id/stop
await client.startAgent('agent-id')
await client.stopAgent('agent-id')
client.start_agent("agent-id")
client.stop_agent("agent-id")

心跳

POST /api/agents/:id/heartbeat

记录心跳以表示代理仍然存活。

const { ok } = await client.sendHeartbeat('agent-id')
result = client.send_heartbeat("agent-id")

获取远程配置

GET /api/agents/:id/config

返回代理的配置,包括所有加入的服务器、频道和策略。

const config = await client.getAgentConfig('agent-id')
config = client.get_agent_config("agent-id")

列出策略

GET /api/agents/:id/policies
const policies = await client.listPolicies('agent-id', 'server-id')
policies = client.list_policies("agent-id", "server-id")

更新策略

PUT /api/agents/:id/policies
字段类型说明
channelIdstring | null频道 ID(null 为服务器默认)
mentionOnlyboolean仅响应提及
replyboolean是否回复
configobject自定义策略配置
await client.upsertPolicy('agent-id', 'server-id', {
  channelId: 'channel-id',
  mentionOnly: true,
  reply: true,
})
client.upsert_policy(
    "agent-id", "server-id",
    channelId="channel-id",
    mentionOnly=True,
    reply=True,
)

删除策略

DELETE /api/agents/:id/policies/:policyId
await client.deletePolicy('agent-id', 'server-id', 'channel-id')
client.delete_policy("agent-id", "server-id", "channel-id")