add prompt reader

This commit is contained in:
锦恢 2025-06-20 18:19:20 +08:00
parent 7098382317
commit be641197b5
4 changed files with 61 additions and 19 deletions

View File

@ -783,4 +783,14 @@ export class TaskLoop {
settings: _settings settings: _settings
} }
} }
public async getPrompt(promptId: string, args: Record<string, any>) {
const prompt = await mcpClientAdapter.readPromptTemplate(promptId, args);
return prompt;
}
public async getResource(resourceUri: string) {
const resource = await mcpClientAdapter.readResource(resourceUri);
return resource;
}
} }

View File

@ -290,6 +290,16 @@ export class TaskLoop {
* @description Create single conversation context * @description Create single conversation context
*/ */
createStorage(settings?: ChatSetting): Promise<ChatStorage>; createStorage(settings?: ChatSetting): Promise<ChatStorage>;
/**
* @description Get prompt template from mcp server
*/
getPrompt(promptId: string, args: Record<string, any>): Promise<string>;
/**
* @description Get resource template from mcp server
*/
getResource(resourceUri: string): Promise<string>;
} }
export declare const getToolSchema: any; export declare const getToolSchema: any;

View File

@ -164,7 +164,8 @@ interface StdioMCPConfig {
[key: string]: string; [key: string]: string;
}; };
description?: string; description?: string;
prompt?: string; prompts?: string[];
resources?: string[];
} }
interface HttpMCPConfig { interface HttpMCPConfig {
@ -174,7 +175,8 @@ interface HttpMCPConfig {
[key: string]: string; [key: string]: string;
}; };
description?: string; description?: string;
prompt?: string; prompts?: string[];
resources?: string[];
} }
export interface OmAgentConfiguration { export interface OmAgentConfiguration {
@ -255,8 +257,7 @@ export class OmAgent {
* "OPENMEMORY_API_KEY": "YOUR_API_KEY", * "OPENMEMORY_API_KEY": "YOUR_API_KEY",
* "CLIENT_NAME": "openmemory" * "CLIENT_NAME": "openmemory"
* }, * },
* "description": "A MCP for long-term memory support", * "description": "A MCP for long-term memory support"
* "prompt": "You are a helpful assistant."
* } * }
* }, * },
* "defaultLLM": { * "defaultLLM": {
@ -287,7 +288,6 @@ export class OmAgent {
connectionType: 'STDIO', connectionType: 'STDIO',
env: mcpConfig.env, env: mcpConfig.env,
description: mcpConfig.description, description: mcpConfig.description,
prompt: mcpConfig.prompt,
}); });
} else { } else {
const connectionType: ConnectionType = mcpConfig.type === 'http' ? 'STREAMABLE_HTTP' : 'SSE'; const connectionType: ConnectionType = mcpConfig.type === 'http' ? 'STREAMABLE_HTTP' : 'SSE';
@ -296,12 +296,18 @@ export class OmAgent {
env: mcpConfig.env, env: mcpConfig.env,
connectionType, connectionType,
description: mcpConfig.description, description: mcpConfig.description,
prompt: mcpConfig.prompt,
}); });
} }
} }
} }
/**
* @description Add MCP server
*/
public addMcpServer(connectionArgs: IConnectionArgs) {
this._adapter.addMcp(connectionArgs);
}
private async getLoop(loopOption?: TaskLoopOptions) { private async getLoop(loopOption?: TaskLoopOptions) {
if (this._loop) { if (this._loop) {
return this._loop; return this._loop;
@ -324,6 +330,12 @@ export class OmAgent {
this._defaultLLM = option; this._defaultLLM = option;
} }
public async getPrompt(promptId: string, args: Record<string, any>) {
const loop = await this.getLoop();
const prompt = await loop.getPrompt(promptId, args);
return prompt;
}
/** /**
* @description Asynchronous invoking agent by string or messages * @description Asynchronous invoking agent by string or messages
* @param messages Chat message or string * @param messages Chat message or string

View File

@ -290,6 +290,16 @@ export class TaskLoop {
* @description Create single conversation context * @description Create single conversation context
*/ */
createStorage(settings?: ChatSetting): Promise<ChatStorage>; createStorage(settings?: ChatSetting): Promise<ChatStorage>;
/**
* @description Get prompt template from mcp server
*/
getPrompt(promptId: string, args: Record<string, any>): Promise<string>;
/**
* @description Get resource template from mcp server
*/
getResource(resourceUri: string): Promise<string>;
} }
export declare const getToolSchema: any; export declare const getToolSchema: any;