UNPKG

@promptbook/google

Version:

Promptbook: Turn your company's scattered knowledge into AI ready books

82 lines (81 loc) 2.88 kB
import type { LlmToolDefinition } from '../../types/LlmToolDefinition'; import type { string_agent_url, string_knowledge_source_link } from '../../types/typeAliases'; import { chococake } from '../../utils/organization/really_any'; /** * Model requirements for an agent * * This is like "compiled" version of agent source */ export type AgentModelRequirements = { /** * The system message that defines the agent's behavior and personality */ readonly systemMessage: string; /** * Text appended to every user prompt after the user's input and before tools/messages. * * This allows commitments to emphasize important rules or reminders that should be * visible in the prompt in addition to the system message. */ readonly promptSuffix: string; /** * The model name to use for this agent */ readonly modelName: string; /** * List of imported agent URLs */ readonly importedAgentUrls?: ReadonlyArray<string_agent_url>; /** * List of imported file URLs or paths */ readonly importedFileUrls?: ReadonlyArray<string>; /** * Optional list of knowledge source links that the agent can use */ readonly knowledgeSources?: ReadonlyArray<string_knowledge_source_link>; /** * List of sample conversations (question/answer pairs) */ readonly samples?: ReadonlyArray<{ question: string | null; answer: string; }>; /** * Temperature for the agent's responses, controlling randomness */ readonly temperature?: number; /** * Top-p sampling value for the agent's responses */ readonly topP?: number; /** * Top-k sampling value for the agent's responses */ readonly topK?: number; /** * Tools available for the agent */ readonly tools?: ReadonlyArray<LlmToolDefinition>; /** * Optional list of MCP servers that the agent can connect to */ readonly mcpServers?: ReadonlyArray<string>; /** * The URL of the parent agent to inherit from, or null if there is no parent (i.e., do not inherit from any agent) */ readonly parentAgentUrl: string_agent_url | null; /** * Is the agent closed to modification by conversation (i.e., it will not learn from interactions and its source code will remain static during conversation) */ readonly isClosed: boolean; /** * Arbitrary metadata storage for commitments * Each commitment can store its own data here */ readonly _metadata?: Record<string, chococake>; }; /** * TODO: [🐤] DRY `AgentModelRequirements` and `ModelRequirements` * TODO: [🧠] `isClosed` and `parentAgentUrl` doesn't truly belong to `AgentModelRequirements` nor agent profile but it is in the `AgentModelRequirements` because of some legacy - maybe figure out better place */