Coder Social home page Coder Social logo

agent_chatroom's People

Contributors

cameronsweeney avatar lizthedeveloper avatar yellowspots avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

agent_chatroom's Issues

Add a database for persistence

Right now users are stored in memory and there is no persistence to chat.

  • Add a free database like thin.dev to the chat server
  • Persist users
  • Persist chats
  • Store list of chatrooms

Stretch and Water Agent, meds reminders, food reminder

This is an instance of ScheduledAgent which should:

  • Remind users in a public channel to regularly stretch, drink water, and take their meds in the morning
  • Remind users privately for custom settings to be scoped later

ADHD Coach Agent

  • Agent that asks you socratic questions
  • Probably an instance of ScheduledAgent
  • Need to find an ADHD coaching framework

DBAgent

Queries a database that it has access to and gives you data (maybe for a chatroom, this is a read-only database)

AgentClient: Throttling

Prevent agents from being overly aggressive with replies. Don't have them respond on emit only.
Some agents will respond on a timer, some agents will respond after x messages, some agents will respond only when directly addressed.

Agent Throttling should allow for agents to only respond every N messages if there are new messages that need a reply.

PointsBot

Points bot allows users to award each other points
We'll define and scope what this really means later

Pomodoro Agent

A sub-type of ScheduledAgent that you give your current task to, and then it pings you every 15 mins to ask if it's done, and then when it is, it tells you to take a break.

TaskBot Agent

TaskBot - given a list of tasks, actually creates the tasks in your favorite task manager.
A sub-type of the mention-agent, which listens to chatrooms for mentions, and executes tasks based on them.
Students will want to fork this bot, and then set it up for themselves, connected to their favorite actual task manager they want to use.

ChannelSummary Agent

Summarizes a channel by day, week, or month, or since a given time period.
Might need to use Gemini or another long-context-window AI.
A sub-type of the message-summarizer.

user-configurable details

Add arbitrary fields on a user that the user can set after having logged in with a slash command:

/user-config fieldname value

AgentClient: Message Summarizer Pattern

Prevent agents from being overly aggressive with replies. Don't have them respond on emit only.
Some agents will respond on a timer, some agents will respond after x messages, some agents will respond only when directly addressed.

Add an agentClient that responds after X messages have been sent.

Users can do /login

Users can do /login in a dm with the server and the server will identify the websocket as that user.
Credentials are stored in the client, so that if the client needs to reconnect, the user is auto-logged-in.

Server supports DMs

We need a way for users to have private conversations with each other, and for the server to have a private dm with the anonymous user so they can get logged in.

AgentClient: Address by Name

Prevent agents from being overly aggressive with replies. Don't have them respond on emit only.
Some agents will respond on a timer, some agents will respond after x messages, some agents will respond only when directly addressed.

If an agent should only respond when spoken to, it should listen for it's name and an @
Add an AddressableAgent Client that invokes the agent only when it's mentioned.

AgentClient: ScheduledAgent

Prevent agents from being overly aggressive with replies. Don't have them respond on emit only.
Some agents will respond on a timer, some agents will respond after x messages, some agents will respond only when directly addressed.

Create a ScheduledAgent, which activated on a cron job, at specified intervals.

Need a way for users to be authorized to a channel

A list of private channels the user can access should be stored with the user
Need an /invite command that will add users to the allow list, and a /kick command that will remove them, also a channel_admins field to give /invite and /kick and maybe even /promote

Server can register and login users

Let's add really simple login through the server- just dming your username and password should work. Anonymous users should be in a DM with the server by default to get logged in. We can revisit more secure logins soon, this is mostly to get stable user identification up.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.