Swiftide - 用Rust开发AI Agent
示例,用 ripgrep 搜索代码。
#[swiftide_macros::tool(
description = "Searches code",
param(name = "code_query", description = "The code query")
)]
async fn search_code(
context: &dyn AgentContext,
code_query: &str,
) -> Result<ToolOutput, ToolError> {
let command_output = context
.exec_cmd(&Command::shell(format!("rg '{code_query}'")))
.await?;
Ok(command_output.into())
}
agents::Agent::builder()
.llm(&openai)
.tools(vec![search_code()])
.build()?
.query("In what file can I find an example of a swiftide agent?").await?;
https://bosun.ai/posts/swiftide-0-16/
jnv - 超好用的json文件交互查阅工具
已收获近5k星。
https://github.com/ynqa/jnv
浏览器中的Lisp Interpreter
https://vishpat.github.io/lisp-rs-wasm/
TonboLite - 基于 Tonbo 的 SQLite 扩展
你好!我是 Tzu,来自 Tonbo 团队。
TonboLite:https://github.com/tonbo-io/tonbolite 是基于 Tonbo 的 SQLite 扩展:https://github.com/tonbo-io/tonbo。它使 SQLite 能够在目标平台(如 WebAssembly 浏览器)上创建适合分析处理的表格,并高效写入数据。表格中的数据组织为分层的 Apache Parquet 格式文件,按需存储在本地磁盘(使用 OPFS 作为本地 I/O)或对象存储服务(如 S3)上。你可以通过在常规 SQLite 中创建虚拟表来使用它。
TonboLite 从探索 Tonbo 应用开始。Tonbo 的目标是将用于分析处理的数据(例如日志处理、指标监控或文本搜索)写入 SQLite 或 PostgreSQL 中的无限远程存储。
我们选择 SQLite,是因为它是最受欢迎的边缘事务型数据库。SQLite 最被要求改进的一个特性是对追加写(如日志、时间序列数据)提供更好的支持,而这些是分析数据中常见的需求。追加写面临两个主要挑战:
SQLite3 使用 B 树作为存储结构。B 树对于随机访问性能良好,但在像日志结构数据库这样的追加写场景中,写入效率不高。
追加数据通常涉及大量写入量,这使得在单机环境中长期存储大量历史数据变得困难。
然而,Tonbo 很适合解决这两个问题:
Tonbo 将 Parquet 文件组织为 LSM 树,这是一种非常优化并发追加写的数据库结构。
Tonbo 支持在后台逐步将历史文件写入横向可扩展的存储服务(如 S3)。
这个项目仍处于非常早期的阶段。如果你对项目的目标和未来发展感兴趣,欢迎加入讨论:https://discord.gg/j27XVFVmJM。我们很乐意回答你可能有的任何问题。
https://github.com/tonbo-io/tonbolite
--
From 日报小组 Mike
社区学习交流平台订阅:
Rustcc论坛: 支持rss 微信公众号:Rust语言中文社区