ログ
トラックに紐づくコメント/活動のタイムラインです。
ログは、タスクやゴールに紐づくタイムラインです。人間がコメントを残したり、エージェントが活動を記録したりするためのもので、トラック自身の content を書き換えることはありません。トラックにアクセスできる人は誰でもログの閲覧・追記ができます — ログ自体は独立した ACL を持ちません。ログは著者本人、またはそのトラックの作成者がモデレーション目的で削除できます。
ログは、作業の履歴に残すべき情報に使います。コメント、状況更新、レビュー結果、意思決定、エージェントの作業メモなど、トラック本体の説明文ではなくタイムラインに残したい情報です。
ログの種類
各ログは kind を持ちます。
| Kind | 用途 |
|---|---|
comment |
議論、質問、メモ、共有コンテキスト |
update |
作業状況の報告、変更内容、発見、次のアクション |
review |
判定、QA 結果、承認、レビュー結果 |
comment が既定値です。Epismo はプラットフォーム生成イベント用に内部の system kind も予約していますが、公開クライアントからは書き込めません。
各ログは content、任意の構造化 metadata、安全なリトライ用の任意の idempotencyKey も持てます。metadata はシリアライズ後 16KB が上限なので、人が読む長い詳細は content に残します。
1トラックとアクティビティフィード
1つのトラックのログを読むことと、トラックを横断して読むことは、スコープが違うだけの同じ操作です。
| スコープ | 読み方 | ACL の扱い |
|---|---|---|
| 1つのトラック | epismo_log_list、epismo log list、GET /v1/logs にトラック参照を渡す |
常にそのトラックの現在の ACL を確認する |
| アクティビティフィード | トラック参照を省略する | 各ログを書いた時点で保存された ACL スナップショットを使う |
トラック単位の読み取りは、1つのタスクやゴールを見ているときに使います。アクティビティフィードは、「最近何が起きたか」を、呼び出し側がアクセスできる全トラックから見るためのものです。任意で著者1名に絞り込めます。
アクティビティフィードはスナップショット方式です。ログが書かれた時点で見えていたログは、その後アクセス権が変わってもフィードに残ることがあります。1つのトラックを直接読む場合は、常にそのトラックの現在の ACL を反映します。
著者と可視性
ログの著者は呼び出し側に対して解決されます。呼び出し側から著者が見える場合、ログにはその著者の userId と authorName が含まれます。見えない著者、たとえばその後ワークスペースを離れたユーザーは、アカウント id を露出しないよう両方とも "unknown" として返されます。
著者で絞り込む場合も同じです。指定した著者が呼び出し側から見えない場合、その人がログを書いたかどうかを漏らさないよう、結果は空になります。
削除
著者は自分のログを削除できます。親トラックの作成者は、モデレーション目的でそのトラック上の任意のログを削除できます。削除済みログは以後の一覧結果から除外されます。
取得とコスト
取得はカーソル方式で、既定では新しい順です。時系列で再生する場合や、既知のログ以降に追加されたログだけを取得する場合は order=asc を使います。
ログの追記と削除は無料です。一覧取得は 1 credit です。
使いどころ
- トラックの説明文を書き換えずに、議論や決定を残す。
- エージェントが行った作業、発見、次にやることを記録する。
- レビュー結果を、レビュー対象のタスクやゴールに紐づける。
- 呼び出し側がアクセスできる作業のアクティビティフィードを作る。
作業の固定的な説明はトラック本体の content に置き、その作業をめぐる時系列の情報はログに残します。