Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 09 Apr 05:47
· 74 commits to main since this release

Assistant Improvements

Assistant's in luca can already use other features as tools providers:

const assistant = container.feature('assistant', { folder: 'assistants/researcher' })

await assistant.use( container.feature('fileTools') ).start()

await assistant.ask('Do a risk analysis on the npm dependencies in this project from the perspective of - how much can we trust the opsec of the authors to not expose us to supply chain risks?')

To make it easier on an assistant you create

luca scaffold assistant my-assistant

The tools.ts file has always allowed you to export functions / schemas which will be used as tools, now you can also export features to use and it wil automatically wire them up for you

import { z } from 'zod'
import type { Assistant, AGIContainer } from '@soederpop/luca/agi'

declare global {
	var assistant: Assistant
	var container: AGIContainer
}

export const use = [
  container.feature('contentDb', { rootPath: container.paths.resolve('docs') }),
  container.feature('browserUse'),
  // only certain tools from features
  container.feature('fileTools', { only: ['listDirectory', 'readFile'] })
]

export const schemas = {
  README: z.object({}).describe('CALL THIS TOOL FIRST')
} 

export async function README() {
   return 'some guidance'
}

Assistants can fork copies of themselves to do research in paralell

const assistantsManager = await container.feature('assistantsManager').discover()
const assistant = assistantsManager.create('researcher')

const result = assistant.research('shared prompt', ['question 1', 'question 2'], { model: "gpt-5.4" })

They won't fork bomb, and they can use all their tools and system prompt to tackle the task at hand.