@ emcy/agent-sdk
在您的应用程序中使用Emcy代理。
此软件包现在有一个用于自定义产品集成的公共模型: App Agent.
安装
npm install @emcy/agent-sdk包装表面
@emcy/agent-sdk
低级运行时:
EmcyAgent- 核心身份验证助手
- 岩芯运输和类型
@emcy/agent-sdk/app
框架无关的代理体验助手:
createAppAgentAppAgentController- 消息/工具推导助手
- 简历/待定轮次/格式化助手
@emcy/agent-sdk/react
React应用程序集成:
useAppAgentAppAgentProvideruseAppAgentContext
@emcy/agent-sdk/react-native
React Native应用程序集成:
useAppAgentAppAgentProvideruseAppAgentContext
@emcy/agent-sdk/react-embed
插入式web小部件:
EmcyChat
从这里开始
1.插入网页嵌入
import { EmcyChat } from "@emcy/agent-sdk/react-embed";
export function App() {
return (
);
}2.自定义React应用程序UI
import { useAppAgent } from "@emcy/agent-sdk/react";
export function CustomAssistant() {
const agent = useAppAgent({
apiKey: "emcy_sk_xxxx",
agentId: "ag_xxxxx",
appSessionKey: session.id,
userIdentity: {
subject: session.user.id,
email: session.user.email,
organizationId: session.organizationId,
},
clientTools,
appContext,
});
return null;
}3.自定义React原生UI
import { useAppAgent } from "@emcy/agent-sdk/react-native";
export function AssistantShell() {
const agent = useAppAgent({
apiKey: "emcy_sk_xxxx",
agentId: "ag_xxxxx",
appSessionKey: session.id,
userIdentity: {
subject: session.user.id,
email: session.user.email,
organizationId: session.organizationId,
},
clientTools,
appContext,
platform,
});
const toolMessages = agent.conversation.toolMessages;
return null;
}4.原始运行时间
import { EmcyAgent } from "@emcy/agent-sdk";
const agent = new EmcyAgent({
apiKey: "emcy_sk_xxxx",
agentId: "ag_xxxxx",
authSessionKey: session.id,
});
await agent.init();
await agent.sendMessage("Hello");麦克风转动检测
麦克风语音结束检测由SDK拥有,适用于嵌入式和 无头集成。默认情况下,SDK监听真实语音,适应 然后在短暂的停顿后发出话语。 应用程序可以在不实现自己的VAD的情况下调整行为:
const agent = new EmcyAgent({
apiKey: "emcy_sk_xxxx",
agentId: "ag_xxxxx",
audioInput: {
turnDetection: {
silenceDurationMs: 850,
minSpeechDurationMs: 180,
noSpeechTimeoutMs: 12000,
autoSubmit: true,
},
},
});核心应用程序代理配置
apiKey
您的Emcy API密钥。
agentId
要运行的代理。
appSessionKey
您的主机应用程序的当前登录会话边界。
传递此消息,这样持久的MCP身份验证和恢复的对话就不会在注销/登录周期中泄漏。
userIdentity
已登录的主机用户:
userIdentity: {
subject: session.user.id,
email: session.user.email,
organizationId: session.organizationId,
}clientTools
代理可以在本地调用应用程序拥有的函数进行UI工作或主机编排。
appContext
代理的额外主机上下文或策略说明。
OAuth
如果MCP服务器需要用户范围的OAuth:
- 通过
userIdentity - 默认情况下,让Emcy管理弹出流
- 用以下方式覆盖
onAuthRequired仅当您需要自定义主机身份验证UX时
本地主机默认值
当 serviceUrl 指向localhost,弹出助手URL默认为:
http://localhost:3100/oauth/callbackhttp://localhost:3100/.well-known/oauth-client-metadata.json
一句话
使用 react-embed 获取最快的托管小部件,并使用 react 或 react-native 当助手成为你产品的一部分时。
许可证
麻省理工学院
