An api to create local first human friendly agents in the browser or Nodejs
📚 Read the documentation
Check the 💻 Starter template
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
Version | Name | Description | Nodejs | Browser |
---|---|---|---|---|
@agent-smith/body | The body | ✅ | ✅ | |
@agent-smith/brain | The brain | ✅ | ✅ | |
@agent-smith/jobs | Jobs | ✅ | ✅ | |
@agent-smith/tmem | Transient memory | ❌ | ✅ | |
@agent-smith/tmem-jobs | Jobs transient memory | ❌ | ✅ | |
@agent-smith/smem | Semantic memory | ✅ | ❌ | |
@agent-smith/tfm | Templates for models | ✅ | ✅ | |
@agent-smith/lmtask | Yaml model task | ✅ | ✅ | |
@agent-smith/cli | Terminal client | ✅ | ❌ |
- 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
Generate a commit message in a git repository (using the @agent-smith/feat-cli
plugin):
lm commit .
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
});
Powered by:
- Nanostores for the state management and reactive variables
- Locallm for the inference api servers management
- Modprompt for the prompt templates management