返回首页
最新
我制作了这个小型Linux命令工具,旨在管理一些你想要记住的简单快速信息,比如密码、命令、想法等,这些信息可能需要在某个地方记录下来。
该工具的工作原理是允许你创建文件,这些文件就像类别一样,每个文件都有自己的一组记忆,每条记忆都有自己的关键词,这些关键词在你需要时用于搜索该记忆。
这个项目的产生有两个原因。首先,我个人需要一个工具来记住我偶尔使用的某些Linux命令。我知道我可以搜索一些类似功能的工具,但我希望通过这个项目学习Shell脚本,而不使用第三方库,因此它应该能够在大多数Linux发行版上原生运行。
我欢迎任何贡献,尤其是包含注释的贡献。
在这篇文章中,我们记录了一些实验结果,比较了基础的图形RAG(仅进行一次text2cypher转换)与路由代理图形RAG方法的效果,后者可以在调用text2cypher的同时使用向量搜索工具。路由代理利用大型语言模型(LLM)根据问题中识别的术语决定调用哪个向量搜索工具,并且效果相当不错。
结果显示,最近的前沿LLM,如`gpt-4.1`和可靠的工作马`gemini-2.0-flash`,在生成Cypher查询方面表现出色,且具有可靠性和可重复性,前提是进行了一些提示工程,以确保在text2cypher提示中图形模式格式良好。在一组包含10个中等复杂度的测试查询(需要从知识图谱中检索路径)中,`gpt-4.1`和`gemini-2.0-flash`在将路由代理添加到工作流程以增强基础图形RAG时,均通过了所有测试,生成了正确的答案。
提示工程使用BAML(一种编程语言,使得在所有实验中简单地提示LLM并从中获取结构化输出变得容易)。实际上,知识图谱本身就是使用BAML提示构建的,这些提示从非结构化数据中提取实体和关系。
这个工作流程的逻辑下一步是构建更复杂的代理循环,可以运行多步骤的Cypher查询,其结果可以整合以回答更难的问题(类似于人类的处理方式)。测试和评估的一般原则在这里同样适用。探索这些方法似乎很有前景!
我为 Tally 构建了一个 MCP 服务器,旨在弥补他们复杂 API 与简单自然语言命令之间的差距。
作为一个有 ADHD 的人,我之所以构建这个系统,是因为在文档、表单构建器和实际工作之间切换会破坏我的工作流程。现在我可以保持在一个对话中,只需描述我需要的内容。
有趣的技术挑战包括:
1. API 复杂性抽象
Tally 的 API 对于简单字段需要深层嵌套的对象。一个电子邮件字段需要大约 10 个带有 UUID 的嵌套对象。我构建了一个翻译层,用户只需用自然语言说“添加一个电子邮件字段”,服务器就能在后台处理复杂的结构。
2. 安全的批量操作
对于破坏性操作,我实现了预览-确认模式。服务器在预览时生成一个确认令牌,必须在执行时传回。这可以防止意外的大规模删除,同时保持对话的自然流畅。
3. 智能速率限制
服务器监控 API 响应并动态调整其行为。当达到速率限制时,它会自动减少批量大小并在请求之间添加延迟。还增加了随机化,以防多个实例同时访问 API。
4. 全面类型安全
使用 TypeScript 完整支持,并对 MCP 消息和 Tally API 响应进行运行时验证。这在开发过程中捕获了几个未记录的 API 特性。
性能说明:
- 批量创建 100 个表单:约 12 秒(使用批量操作)
- 单独创建 100 个表单:约 5 分钟(由于速率限制)
- 人工创建 100 个表单:可能需要一整周的重复点击
- 对 10,000 个响应的提交分析:约 3 秒
代码采用 ISC 许可证: [https://github.com/learnwithcc/tally-mcp](https://github.com/learnwithcc/tally-mcp)
这特别适合需要创建多个相似表单但又对重复任务感到厌烦的情况。我很好奇其他人是否也在构建 MCP 服务器,以及你们正在优化哪些工作流程。
我也对 MCP 与传统 CLI 工具的看法感兴趣。对于简单操作,交互式界面较慢,但对于复杂的多步骤任务则要好得多,因为在这些情况下你可能会忘记确切的语法。