tsx-agent-interleaved-thinking-demo
v1.0.0
Published
Demo of EasyAgent with Interleaved Thinking Planner plugin
Readme
TsxAgent - Interleaved Thinking Demo
Demo independiente de EasyAgent con plugin personalizado de Interleaved Thinking Planner.
📁 Estructura del Proyecto
TsxAgent/
├── tools/ # Herramientas modulares
│ ├── weather.tool.ts
│ ├── pokedex.tool.ts
│ ├── math.tool.ts
│ └── index.ts
├── planners/ # Estrategias de planificación
│ ├── InterleavedThinkingPlanner.ts
│ └── index.ts
├── config/ # Configuración centralizada
│ ├── provider.config.ts
│ ├── agent.config.ts
│ └── index.ts
├── example.ts # Demo interactivo
├── test-interleaved.ts # Test automatizado
└── package.json🚀 Instalación
npm install▶️ Ejecución
Ejemplo Interactivo
npm startInicia una consola conversacional donde puedes interactuar con el agente.
Test de Demostración
npm testEjecuta una prueba automatizada con un problema matemático multi-paso.
📦 Características
- ✅ Arquitectura modular - Código organizado en módulos reutilizables
- ✅ Independiente - No depende del código fuente de EasyAgent
- 🔌 Plugin externo -
InterleavedThinkingPlannerdemostración de extensibilidad - 🧠 Interleaved Thinking - Alterna entre razonamiento y acción
- 🛠️ Tools separadas - Cada herramienta en su propio archivo
- ⚙️ Config centralizada - Configuración en módulos dedicados
🛠️ Herramientas Disponibles
Weather Tool
Consulta información del clima para una ubicación.
Pokedex Tool
Obtiene información de Pokemon desde PokeAPI.
Math Tool
Operaciones matemáticas: suma, resta, multiplicación, división.
🎯 Ejemplo de Uso
import { createAgent } from './config';
const agent = createAgent();
const result = await agent.run('What is the weather in Tokyo?');🔧 Personalización
Agregar una nueva herramienta
- Crea
tools/my-tool.tool.ts:
import { createFunction } from '@destroyerdarkness/easy-agent';
import { z } from 'zod';
export const myTool = {
name: 'my_tool',
functions: [
createFunction(
'my_function',
'Description',
z.object({ param: z.string() }),
async ({ param }) => {
// Implementation
return { result: 'something' };
}
)
]
};- Exporta en
tools/index.ts:
export { myTool } from './my-tool.tool';
export const allTools = [..., myTool];Cambiar el planificador
En config/agent.config.ts:
import { UniversalPlanner } from '@destroyerdarkness/easy-agent';
// Cambiar de InterleavedThinkingPlanner a UniversalPlanner
planner: new UniversalPlanner({ format: 'json' })📚 Documentación
Para más información sobre EasyAgent:
