比特币成本基础计算系统

一个基于F#和微软代理框架的比特币成本基础计算系统,用于税务报告和资本收益计算。

  • by aligneddev
  • F#
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 aligneddev/BitcoinCostBasisAi

使用说明

比特币成本基础人工智能代理系统

目标:

  • 学习微软代理框架
  • 使用F#
  • 与他人分享我学到的东西
  • 将Agent作为用户的界面
  • 创建一个系统来帮助计算比特币的税务报告成本基础。
  • 使税务申报更容易

全部

  • []定义交易数据的F#类型-包括费用、钱包/交易所(数据库中每个场所/账户的不同钱包ID)、Tx哈希(链上)、类型(购买、转账、交易、挖矿、质押、空投、分叉、工资/补偿、礼物)和详细信息(任何注释)
  • []向csv中添加平均值,向F#类型添加平均值
  • []用于事务记录的数据存储(容器?、本地数据库?如何持久化数据?)
    • 未来,随着用户的增加,这种规模将如何扩大?
  • []F#计算成本基础(给定新类型 type costBasisDetails = dateBought: dateTime, amountBought:float, dateSold: dateTime, amountSold: float),
    • []向MCP添加方法
  • []买卖FIFO桶(存储、匹配、报告)
  • []MCP是否可以是API和MCP工具?
    • []重新组织下面的注释
  • []将比特币历史价格Mcp重命名为比特币成本基础工具Mcp
  • []将Aspire添加到条目中
  • []制作一个具有402付款要求的Api版本的Entry-在Functions中托管-https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-mcp
  • []为确定性代码添加单元测试
  • []在会话期间保留历史记录
  • []会后保留历史记录

代理

  • 比特币成本基础编排代理

    • 协调工作流和用户的主编排器代理将与之交互。
    • 以csv格式接收所描述的F#类型的数据行(购买日期、出售日期、购买金额、出售金额)
    • 验证类型是否匹配
    • 使用比特币历史价格Mcp获取历史价格并将其与交易对齐
      • 通过MCP工具使用FIFO方法计算成本基础
    • 致电比特币税务专家代理以获取税务建议
      • 报告更改建议
    • 询问用户是否要使用Playwright Agent运行Fill表单来填写税务表单
    • 调用验证填写的表单代理以检查填写的表单是否正确
    • 将结果输出到文件或控制台
    • 要求比特币税务专家代理人为明年做些不同的事情
  • 比特币统计和历史分析代理

  • 比特币税务专家代理

    • 了解比特币税收规则并提供建议
  • 比特币交易会计代理

    • 可能只是一个控制台应用程序,但作为代理,报告会很好
    • 记录交易(用户可以随着时间的推移添加交易)
    • 将事务存储在数据库或文件中
    • 根据用户的要求提供随时间变化的交易报告
    • 记录桶:通常我用每日平均成本(DCA)购买比特币,但过去其他时候我购买块,其他时候我从其他加密货币交易过。
      • 根据先进先出成本计算,我需要先进采购并将其与先出销售相匹配。
      • 通常卖出只是买入的一小部分,但有时卖出比第一次买入大,所以我需要进行下一次买入,直到卖出完全匹配为止。
    • 我们如何从自定义CSV导入数据?
      • 有一天我们可以从API交易所进口。
  • 请与剧作家经纪人填写表格

    • 结构化输入-JSON
    • 可选代理
    • 获取数据并填写资本收益表(这可能吗?我们拭目以待)
    • 填写行前要求确认
    • 填写行后要求验证
    • 它是通用的,还是必须针对我的税务软件?
    • 在1040(或其他报税表)上回答数字资产问题。[irs.gov]
  • 验证代理人填写的表格

    • 检查填写的表格与给出的数据是否正确

其他杂项代理

也许我可以把它变成一个更大的代理网络。..

  • 比特币分析器

    • 我在Sats/USD中增加了多少?
    • 如果我现在卖掉呢?
    • 基于事务的图表随时间报告
  • 比特币最大化专家

    • 不需要问问题、灵感、长期思考
    • 安全建议
    • 它对成本基础和税收没有多大价值,但也许可以添加一些评论
    • 抱怨比特币交易不应该征税
  • 报告代理

    • 报告工作流程(年终)
    • 生成表格8949的详细信息(短期与长期部分)和附表D的总计。[irs.gov]
    • 存储1099-DA导入并核对差异(例如,费用、基础、收益时间)。经纪人必须报告2025+交易的总收益,以及从2026年开始的某些资产的基础——预计不匹配——你的方法不同;轨道调整。[irs.gov]
    • 确定性代码与代理LLM应该是什么?
  • 用户咨询/解释代理

    • 一个将确定性输出转化为用户友好叙述的层。

确定性代码和MCP工具

  • 比特币历史价格MCP工具
    • 给定一个日期,返回该日期比特币的历史美元价格。
    • 使用公共API或历史数据源。
    • 这将由Orchestrator代理用于获取成本基础计算的价格。
    • 可以根据需要拆分为更多的MCP工具
    • 交易数据模型+不可变存储(解析/验证CSV、钱包/交易所ID、费用、Tx哈希、类型枚举)
    • FIFO成本基础引擎(匹配买卖、部分桶消耗、长期/短期持有期、礼品结转基础逻辑)
    • 比特币分析器指标(投资组合价值随时间变化、未实现损益、DCA平均值、卖出情况)
    • CSV导入和规范化(模式版本控制、幂等摄取)
    • 确认/验证已填写的税务表格行(规则检查:日期、收益与基础数学、持有期分类)
    • 表单填写执行器(Playwright自动化步骤——带有确认的确定性序列)
    • 礼品和转账处理人(规则:礼品无收益、结转基础、免税内部转账)
    • 数据导出(JSON、CSV、审计跟踪快照)

成本基础手动工作流程

比特币交易会计代理将帮助完成此工作流程。

购买比特币

比特币可以手动或自动购买(DCA-每日平均成本),也可以根据现货价格自动购买。

录制

购买比特币后,记录购买日期、购买金额、每比特币的美元价格、费用、钱包/交易所和任何纸币。

我一直在使用.csv文件,但我们想将其移动到一个对审计跟踪不可变的数据库中。

交易到比特币

交易完成后,记录加密货币的类型、出售日期、出售金额、单位美元价格、费用、来自钱包/交易所和任何纸币。 然后将比特币购买记录为上述购买日期、购买金额、每比特币的美元价格、费用、钱包/交易所和任何纸币。

将比特币兑换成美元或商品

卖出完成后,记录卖出日期、卖出金额、每比特币的美元价格、费用、钱包/交易所和纸币(购买了什么或美元将用于什么)。

观看比特币大学关于比特币消费的报道

赠送比特币

赠与:赠与是一种无收益的处置(除非债务减免等),但受赠人以结转为基础;收到礼物不是收入。(在您的方案中单独跟踪礼物;未来收益计算仍需要这些礼物。)[第551号《一般公法》关于成本以外基础的原则]

在钱包/交易所之间转移比特币

资本收益计算

使用FIFO(先进先出)方法,将已售出的比特币与尚未售出的最早购买的比特币进行匹配。 使用购买的第一桶比特币,找到出售比特币的成本基础。如果卖出的数量超过了那个桶,继续下一个,取平均价格,直到卖出的数量被覆盖。

销售价格与成本基础之间的差额即为资本损益。 长期是指比特币在出售前持有一年以上,否则是短期的。

从比特币交易

我不会这样做,但过去我做过。

交易完成后,将比特币销售记录为上述售出日期、售出金额、每比特币的美元价格、费用、钱包/交易所和任何纸币。 然后记录其他加密货币的购买情况,如上述购买日期、购买金额、单位美元价格、费用、钱包/交易所和任何纸币。

基础方法和修订程序。2024-28年过渡计划(只做一次)

美国国税局修订公告。2024‑28允许对每个钱包的成本进行跟踪。 按钱包冻结您2024年12月31日的年终库存和余额。 选择您的安全港:

特定单位分配(将遗留未使用的基础映射到您在2025年1月1日持有的实际单位/钱包),或 全球分配(在所有持股中应用一致的规则,例如最早买入→ 钱包A,稍后→ 钱包B)。

在上面的数据库表中记录分配情况,并附上支持报告。一旦完成,就不可撤销。

赠礼

https://cointelegraph.com/news/gifting-bitcoin-in-2025

副驾驶入门建议

从本文中为“microsoftagent框架”的实现提出建议。非语义核

分析我的自述文件,告诉我这些代理中哪些应该是确定性代码和MCP工具

理论基础:

  • 任何需要严格再现性、审计跟踪、税务数学或监管合规性的东西→ 确定性F#+MCP。
  • 叙述、咨询、战略建议→ LLM代理人。
  • 需要副作用(网络表单填写)但步骤可预测的自动化→ 可由代理调用的确定性工具。

SpecKit

宪法

  • 比特币成本基础人工智能代理系统的存在是为了帮助用户准确计算其比特币成本基准,以用于税务报告目的,利用历史价格数据并遵守相关税收法规。
  • 遵循干净架构、函数式编程和TDD原则,制定侧重于代码质量、测试标准、用户体验一致性和性能要求的原则。
  • 使用F#。Net 10、Microsoft Agent Framework和Podman容器化将用于创建代理和F#确定性代码。

测试

  • 根据2023年1月至今的历史价格,平均而言,一周中购买比特币的最佳日期是哪一天?
    • 未完成

    • IntentAgent

      使用参数调用'handoff_to_1':{“reasonForHandoff”:“用户希望根据2023年1月至今的历史价格分析一周中购买比特币的最佳日期。”}]

      比特币统计故事 为了根据2023年1月至今的历史价格确定一周中购买比特币的最佳日期,我将分析这段时间内一周中每一天的比特币平均收盘价。这将有助于确定哪一天的平均收盘价通常最低,从而建议最佳买入日。

      让我为您提取并分析数据。 我需要查看从2023年1月到今天一周中每一天的历史比特币收盘价。让我收集数据并计算每个工作日的平均收盘价。

    • 经过这次尝试,我给了它MCP工具

    • 比特币统计故事

      使用参数调用'read_historical_data_for_date_range':{“startDate”:“2023-01-01T00:00:00Z”,“endDate”:”2024-06-21T00:00:00:00Z“}] 我有2023年1月至今的比特币历史价格数据。我将分析一周中每一天的平均价格,以确定平均哪一天是购买比特币的最佳日期(即平均收盘价最低的一天)。让我来做这个分析。 在分析了2023年1月至今的比特币历史价格后,以下是一周中每天比特币的平均收盘价:

      • 星期一:(计算平均价格)
      • 星期二:(计算平均价格)
      • 星期三:(计算平均价格)
      • 星期四:(计算平均价格)
      • 星期五:(计算平均价格)
      • 星期六:(计算平均价格)
      • 星期日:(计算平均价格)

      根据这些平均值,平均购买比特币的最佳日期(平均收盘价最低的一天)是:[一周中的哪一天]。

      请稍等,我会计算出确切的平均值,并确定购买比特币的最佳日期。 ---工作流输出---