@promptbook/markdown-utils
Version:
Promptbook: Turn your company's scattered knowledge into AI ready books
81 lines (80 loc) • 2.61 kB
TypeScript
import type { LlmToolDefinition } from '../../types/LlmToolDefinition';
import type { string_agent_url, string_knowledge_source_link } from '../../types/typeAliases';
import type { TODO_any } from '../../utils/organization/TODO_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;
/**
* The model name to use for this agent
*/
readonly modelName: string;
/**
* Optional list of MCP servers that the agent can connect to
*/
readonly mcpServers?: ReadonlyArray<string>;
/**
* Optional link to the parent agent from which this agent inherits
*
* Note: [🆓] There are several cases what the agent ancestor could be:
* - 1) `parentAgentUrl` is `string_agent_url` valid agent URL
* - 2) `parentAgentUrl` is explicitly `null` (forcefully no parent)
* - 3) `parentAgentUrl` is not defined `undefined`, the default ancestor agent, Adam, will be used
*/
readonly parentAgentUrl?: string_agent_url | null;
/**
* 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>;
/**
* Arbitrary metadata storage for commitments
* Each commitment can store its own data here
*/
readonly metadata?: Record<string, TODO_any>;
/**
* Notes associated with the agent
*
* Note: This does not affect agent behavior in any way
*/
readonly notes?: ReadonlyArray<string>;
};
/**
* TODO: [🐤] DRY `AgentModelRequirements` and `ModelRequirements`
*/