@evolutese/agent-catalog
v0.2.6
Published
YAML agent registry and loader for Evolutese — includes 7 ready-to-use blueprints
Readme
@evolutese/agent-catalog
YAML agent registry and loader for the Evolutese platform. Ships with 7 ready-to-use blueprints that work out of the box with evolutese init.
Installation
npm install @evolutese/agent-catalogMost projects don't need to install this directly —
@evolutese/sdkloads the catalog automatically viaclient.init().
Included blueprints
| Agent | Description |
|-------|-------------|
| tasks | Create, list, and complete personal or work tasks |
| invoice | Draft and finalize invoices with line items, tax, and email delivery |
| customers | CRM — search and retrieve customer records |
| users | User management — look up user information |
| claim | Register and manage customer or internal claims |
| reconciliation | Match bank statements to ledger entries, generate reconciliation reports |
| workflow | Automate reporting and integrate siloed data |
Blueprints are copied into your project by evolutese init and are fully editable YAML — they are a starting point, not a locked dependency.
Agent YAML format
id: my-agent
name: My Agent
version: "1.0.0"
description: What this agent does
connectors: [mongo, mail]
actions:
- id: compose
connector: llm
params:
objective: Write a short email body.
intents:
- name: send_email
type: workflow
input_schema:
type: object
required: [email, name]
properties:
email: { type: string }
name: { type: string }
steps:
- id: s1
action: compose
params: { input: { name: "{{name}}" } }Intent types:
workflow— sequential steps executed by the runtimellm— a single LLM prompt that returns structured output
Validate any agent file before deploying:
evolutese validate agents/my-agent/agent.ymlDirect usage
If you're using @evolutese/runtime directly without the SDK:
import { AgentRegistry } from '@evolutese/agent-catalog';
import { setAgentResolver, bootstrapRuntime, type AgentResolver } from '@evolutese/runtime';
AgentRegistry.configure({ agentsDir: './agents' });
await AgentRegistry.loadFromRegistry();
setAgentResolver(AgentRegistry as unknown as AgentResolver);
await bootstrapRuntime({ connectors: { /* ... */ } });Programmatic registration (no YAML)
import { AgentRegistry } from '@evolutese/agent-catalog';
import type { AgentDefinition } from '@evolutese/runtime';
const definition: AgentDefinition = {
id: 'greeter',
name: 'Greeter',
version: '1.0.0',
actions: [{ id: 'send', connector: 'mail', params: { to: '{{email}}', subject: 'Hi!', body: '{{body}}' } }],
intents: [{ name: 'greet', type: 'workflow', steps: [{ id: 's1', action: 'send' }] }],
};
AgentRegistry.registerAgent(definition);Custom storage
Implement AgentStorage to load agents from a database or remote API instead of YAML files:
import { AgentStorage } from '@evolutese/agent-catalog';
import type { AgentDefinition } from '@evolutese/runtime';
class MyDbStorage implements AgentStorage {
async load(id: string, tenantId?: string): Promise<AgentDefinition | null> { /* ... */ }
async loadAll(tenantId?: string): Promise<AgentDefinition[]> { /* ... */ }
async save(id: string, def: AgentDefinition, tenantId?: string): Promise<void> { /* ... */ }
}
AgentRegistry.setStorage(new MyDbStorage());License
MIT
