ログ

トラックに紐づくコメント/活動のタイムラインです。


ログは、タスクやゴールに紐づくタイムラインです。人間がコメントを残したり、エージェントが活動を記録したりするためのもので、トラック自身の content を書き換えることはありません。トラックにアクセスできる人は誰でもログの閲覧・追記ができます — ログ自体は独立した ACL を持ちません。ログは著者本人、またはそのトラックの作成者がモデレーション目的で削除できます。

ログは、作業の履歴に残すべき情報に使います。コメント、状況更新、レビュー結果、意思決定、エージェントの作業メモなど、トラック本体の説明文ではなくタイムラインに残したい情報です。

ログの種類

各ログは kind を持ちます。

Kind 用途
comment 議論、質問、メモ、共有コンテキスト
update 作業状況の報告、変更内容、発見、次のアクション
review 判定、QA 結果、承認、レビュー結果

comment が既定値です。Epismo はプラットフォーム生成イベント用に内部の system kind も予約していますが、公開クライアントからは書き込めません。

各ログは content、任意の構造化 metadata、安全なリトライ用の任意の idempotencyKey も持てます。metadata はシリアライズ後 16KB が上限なので、人が読む長い詳細は content に残します。

1トラックとアクティビティフィード

1つのトラックのログを読むことと、トラックを横断して読むことは、スコープが違うだけの同じ操作です。

スコープ 読み方 ACL の扱い
1つのトラック epismo_log_listepismo log listGET /v1/logs にトラック参照を渡す 常にそのトラックの現在の ACL を確認する
アクティビティフィード トラック参照を省略する 各ログを書いた時点で保存された ACL スナップショットを使う

トラック単位の読み取りは、1つのタスクやゴールを見ているときに使います。アクティビティフィードは、「最近何が起きたか」を、呼び出し側がアクセスできる全トラックから見るためのものです。任意で著者1名に絞り込めます。

アクティビティフィードはスナップショット方式です。ログが書かれた時点で見えていたログは、その後アクセス権が変わってもフィードに残ることがあります。1つのトラックを直接読む場合は、常にそのトラックの現在の ACL を反映します。

著者と可視性

ログの著者は呼び出し側に対して解決されます。呼び出し側から著者が見える場合、ログにはその著者の userIdauthorName が含まれます。見えない著者、たとえばその後ワークスペースを離れたユーザーは、アカウント id を露出しないよう両方とも "unknown" として返されます。

著者で絞り込む場合も同じです。指定した著者が呼び出し側から見えない場合、その人がログを書いたかどうかを漏らさないよう、結果は空になります。

削除

著者は自分のログを削除できます。親トラックの作成者は、モデレーション目的でそのトラック上の任意のログを削除できます。削除済みログは以後の一覧結果から除外されます。

取得とコスト

取得はカーソル方式で、既定では新しい順です。時系列で再生する場合や、既知のログ以降に追加されたログだけを取得する場合は order=asc を使います。

ログの追記と削除は無料です。一覧取得は 1 credit です。

使いどころ

  • トラックの説明文を書き換えずに、議論や決定を残す。
  • エージェントが行った作業、発見、次にやることを記録する。
  • レビュー結果を、レビュー対象のタスクやゴールに紐づける。
  • 呼び出し側がアクセスできる作業のアクティビティフィードを作る。

作業の固定的な説明はトラック本体の content に置き、その作業をめぐる時系列の情報はログに残します。