Skip to content

Local first human friendly agents toolkit for the browser and Nodejs

License

Notifications You must be signed in to change notification settings

synw/agent-smith

Repository files navigation

Agent Smith

An api to create local first human friendly agents in the browser or Nodejs

Agent Smith

📚 Read the documentation

Check the 💻 Starter template

What is an agent?

An agent is an anthropomorphic representation of a bot. It can:

  • Think: interact with some language model servers to perform inference queries
  • Interact: the agent can perform interactions with the user and get input and feedback
  • Work: manage long running jobs with multiple tasks, use custom terminal commands
  • Remember: use it's transient or semantic memory to store data

Packages

Version Name Description Nodejs Browser
pub package @agent-smith/body The body
pub package @agent-smith/brain The brain
pub package @agent-smith/jobs Jobs
pub package @agent-smith/tmem Transient memory
pub package @agent-smith/tmem-jobs Jobs transient memory
pub package @agent-smith/smem Semantic memory
pub package @agent-smith/tfm Templates for models
pub package @agent-smith/lmtask Yaml model task
pub package @agent-smith/cli Terminal client

FAQ

  • What local or remote inference servers can I use?

Actually it works with Llama.cpp, Koboldcpp and Ollama.

  • Can I use this with OpenAI or other big apis?

Sorry no: this library favours local first or private remote inference servers

Example

Terminal client

Generate a commit message in a git repository (using the @agent-smith/feat-cli plugin):

lm commit .

Nodejs

const expert = useLmExpert({
    name: "default",
    localLm: "koboldcpp",
    templateName: "mistral",
    onToken: (t) => process.stdout.write(t),
});
const brain = useAgentBrain([expert]);
// auto discover if expert's inference servers are up
await brain.discover();
// run an inference query
const _prompt = "list the planets of the solar sytem";
await brain.think(_prompt, { 
   temperature: 0.2, 
   min_p: 0.05 
});

Libraries

Powered by:

  • Nanostores for the state management and reactive variables
  • Locallm for the inference api servers management
  • Modprompt for the prompt templates management

About

Local first human friendly agents toolkit for the browser and Nodejs

Resources

License

Stars

Watchers

Forks