Daily notes
<aside>
ℹ️
I noted here stuff i did, questions i ask myself step by step, the answers from my initial questions and detailed feedbacks i have with an importance indicator
</aside>
- I started from the docs https://docs.recall.network/
- Start the Integration from scratch in our plugin:
- I prefer to start to integrate it into my existing project rather than do a clone of starter kit.
- Here i miss in the documentation for existing and it’s kind of complicated today as installing the plugin is not enough, there are extra code to add in several part
- Questions i asked myself:
- Which part exactly is onchain? ⇒ dataset, credit system, access control
- Does the onchain part impact the delay of the agent action? ⇒ no
- What are the benefits for my existing agent? ⇒ analytics/debug of passed cot, share trading decision/data analysis with others, learn from past decisions
- Why external storage rather than local? ⇒ easier to share, easier to audit, more transparent
- How can i estimate the cost of it? ⇒ I still don’t know
- Can i use Recall to store all the CoT and then train a tensorFlow model on them? ⇒ yes, need to store for long term, need to include into the data the context of the decision and the result itself.
- Doc feedbacks
- 🟡 It would help in initial intro / concepts to compare with well-knows pattern/concept used in AI like RAG, CAG. Is it similar ? is it complementary?
- 🟡 “The core data storage primitive is a bucket, which is a key-value store for arbitrary data is represented as a blob.” need to remove the ‘is’ in the second part of sentence ?
- 🟠 It seems there is no plugin-recall-storage repository or package, so i have no way to install it simply in my existing project
- 🟠 The plugin itself is good, but what i need to integrate it to an existing project seems to be mainly the service. I don’t want actions on my logs, don’t want that to be public, and i don’t want the default providers.
- 🔴 The plugin itself alone don’t work as it’s based on an upgrade of the existing log table.
- I would suggest it’s better to move that into the plugin itself, into an adapters folders and then instantiate the migration inside the service.
- You can check this as an exemple: packages/plugin-tee-log/src/adapters/sqliteDAO.ts
- Another approach idea:
- The update of logs table means that every log need to be update and marked as synced. An other approach could be to use the cache table from the core of eliza and store a recall/last-synced-at key/value pair. Then use it to request unsynced call. Also it would be less work to create an adapter for each database type. Here only the select last logs function will need to be created.
- 🔴 getUnsyncedLogs sqlite adapter don’t return type, so the code then can’t work actually
- 🟠 Perf improvement: filtering on log.type = "chain-of-thought” should be done in SQL query rather than JS
- 🟠 Postregres adapter here probably is not working, missing migration, missing agentId into logs table
- 🔴 syncLogsToRecall got an issue causing the batch to be empty. We fixed it in our PR.
- The reading of past COT log is kind of slow, few seconds to get access to data.
- At this moment, it can’t be dynamically included inside decision making to achieve a stateful vision of the agent for the trading part.
- COT default storage got a 24 hours TTL, this is good for short term memory. Would be good to have this easily configurable.
- Questions i asked myself:
- now that i got data, how can i replay my llm calls and compare chain of thoughts?
What did we build during our tests?
- Integrate Recall directly inside our autonomous trading plugin
- PR here: https://github.com/traidersdotfun/agents/pull/12/files
- Import your service
- Update it to not have requirement for database update
- directly query sqlite inside the service (here could be improved to manage more database types with switch condition on db instance)
- use cacheManager to store last synced timestamp
- Log the chain of thoughts only for our trading decision making here
- bucket public address: 0x0BeEB4696f3c1E1387FbD40Dd7cC81FBA07f977E
Specific Feedback Requested
- How easy is it to get started based on the provided documentation and starter kits?
- What tools or interfaces would make the development experience better?