ernesto
v0.1.12
Published
A Context System for Agent-Assisted Organizations
Readme
Ernesto
Ernesto is a skill-oriented context system for organizational agents.
Model
Ernesto uses two operations:
ask(query)
- Discover relevant skills and indexed resources.
get(routes)
- Execute tools or load skill instructions/resources.
Addressing
skill
- Returns the skill instruction and available tools.
skill:tool
- Executes a specific tool.
skill://resources/path
- Loads indexed resource content.
Skill Structure
A skill contains:
- Metadata (
name,description, optionalversion,tags,triggers). - Instruction text (static or dynamic).
- Tools (
SkillTool[]). - Optional resource extractors.
- Optional scope requirements.
Design Principles
- Uniformly discoverable tools.
- Server-side execution and validation.
- Workflow guidance through suggestions.
- Scope-aware discovery and execution.
Quick Example
const skill = createSkill({
name: 'warehouse',
description: 'Analytics workflows',
instruction: 'Use investigate tools first, then specialized tools as needed.',
tools: [investigateOrdersTool, queryOrdersTool],
});await ask('orders yesterday');
await get([{ route: 'warehouse:investigate-orders', params: { day: '2026-02-18' } }]);Status
This repo now documents and implements the skill model directly.
Troubleshooting builds
When switching between the legacy flat-file output (dist/route.cjs) and the
current per-route directory layout (dist/route/), stale artifacts from the
previous shape can shadow the new ones and surface as cryptic resolver errors.
Always wipe dist/ before rebuilding: rm -rf dist && pnpm build.
